jekyll_outline 1.0.2 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9d31ca01b4964fe4a2f449ae0af3e9c62778378dbcfd2e093aea52bf5bd4cc5
4
- data.tar.gz: 0c9eefb3062c192bbc31c9dc972e363c3c62ff9ad1bbe92479337cf46f0f1a75
3
+ metadata.gz: 464b66396b0abd3369669875ca6b2be97b51e7823e31d5fa163b4248afc0dc50
4
+ data.tar.gz: 1253ef8b8218d0c4f76cb66d5f79ef0bc4fef48cec8d057ef33b0af0411e352f
5
5
  SHA512:
6
- metadata.gz: d60b91075f29d828182822dea631af65b31e436a2301ff505fb29febdf1554b8b8e0a85879c472f30a309daaa204b8869d8dcf4be38771088cf644c2399832bf
7
- data.tar.gz: a0dfba650a90e1c34ba3bffaaf95cf31552a0f7a4589086f4debba869fed0fcc819438057ab201f2b78913f0feb0fb5bce965b8686d6aa2da5555ea8610609b4
6
+ metadata.gz: 96bf42bd9e24050bf05fc9c5d1a2094383f2dd3853c301da97ce5e8276969de31ddc98cc5102f3288e46cb84ae9032a2e8c40813993445d837a5a60ffd4b0559
7
+ data.tar.gz: 56facfe2c9305b0945ad1d315018b078f1a0402b1c91655ea01a2741f9f39d2975bce5de31eb84490126f4b19700e98a617a84d61a17fbc27a225cc750b941ba
data/.rubocop.yml CHANGED
@@ -1,6 +1,8 @@
1
1
  require:
2
- - rubocop-rspec
2
+ - rubocop-md
3
+ - rubocop-performance
3
4
  - rubocop-rake
5
+ - rubocop-rspec
4
6
 
5
7
  AllCops:
6
8
  Exclude:
@@ -17,7 +19,8 @@ Gemspec/RequireMFA:
17
19
  Enabled: false
18
20
 
19
21
  Layout/HashAlignment:
20
- Enabled: false
22
+ EnforcedColonStyle: table
23
+ EnforcedHashRocketStyle: table
21
24
 
22
25
  Layout/LineLength:
23
26
  Max: 150
@@ -25,7 +28,7 @@ Layout/LineLength:
25
28
  Metrics/BlockLength:
26
29
  Exclude:
27
30
  - jekyll_outline.gemspec
28
- Max: 30
31
+ Max: 40
29
32
 
30
33
  Metrics/MethodLength:
31
34
  Max: 30
data/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 1.1.1 / 2023-04-02
2
+ * Added [`attribution` support](https://github.com/mslinn/jekyll_plugin_support#subclass-attribution).
3
+
4
+ ## 1.1.0 / 2023-03-14
5
+ * `outline_js` tag added, for including Javascript necessary to position images relating to the outline.
6
+ * Now generates a series of divs, instead of one big div.
7
+ * Now interprets numbers as decimal instead of octal.
8
+ * CSS documented and new `post_title` class defined.
9
+
1
10
  ## 1.0.2 / 2023-02-16
2
11
  * Updated to `jekyll_plugin_support` v0.5.1
3
12
 
@@ -5,4 +14,4 @@
5
14
  * Now dependent upon `jekyll_plugin_support`
6
15
 
7
16
  ## 1.0.0 / 2022-04-02
8
- * Initial version
17
+ * Initial version, this Jekyll plugin defines a block tag called `outline`.
data/README.md CHANGED
@@ -6,11 +6,12 @@
6
6
 
7
7
 
8
8
  ## Installation
9
-
10
- Add this line to your application's Gemfile:
9
+ Add the following line to your Jekyll project's Gemfile, within the `jekyll_plugins` group:
11
10
 
12
11
  ```ruby
13
- gem 'jekyll_outline'
12
+ group :jekyll_plugins do
13
+ gem 'jekyll_outline'
14
+ end
14
15
  ```
15
16
 
16
17
  And then execute:
@@ -18,21 +19,118 @@ And then execute:
18
19
  $ bundle install
19
20
 
20
21
 
21
- ## Additional Information
22
- More information is available on
23
- [Mike Slinn’s website](https://www.mslinn.com/jekyll/3000-jekyll-plugins.html#outline).
22
+ ### CSS
23
+ The CSS used for the demo website should be copied to your project.
24
+ See the section of `demo/assets/css/styles.css` as shown:
24
25
 
26
+ ```css
27
+ /* Start of jekyll_outline css */
28
+ ... copy this portion ...
29
+ /* End of jekyll_outline css */
30
+ ```
25
31
 
26
- ## Development
32
+ ### JavaScript
33
+ This project's `outline_js` tag returns the Javascript necessary to position images relating to the outline. If used without parameters it just returns the JavaScript:
34
+
35
+ ```html
36
+ <script>
37
+ {%= outline_js %}
38
+ </script>
39
+ ```
27
40
 
28
- After checking out the repo, run `bin/setup` to install dependencies.
29
- You can also run `bin/console` for an interactive prompt that will allow you to experiment.
41
+ If passed the `wrap_in_script_tag` parameter, it wraps the JavaScript in `<script></script>`:
30
42
 
31
- Install development dependencies like this:
43
+ ```html
44
+ {% outline_js wrap_in_script_tag %}
32
45
  ```
33
- $ BUNDLE_WITH="development" bundle install
46
+
47
+
48
+ ## Explanation
49
+ Given an outline that looks like this:
50
+ ```html
51
+ {% outline stuff %}
52
+ 000: Topic 0..19
53
+ 020: Topic 20..39
54
+ 040: Topic 40..
55
+ {% endoutline %}
56
+ ```
57
+
58
+ ...and given pages in the `stuff` collection with the following names:
59
+
60
+ - 010-published.html has title **Published Stuff Post 010**
61
+ - 020-unpublished.html has title **Unpublished Post 020**
62
+ - 030-unpublished.html has title **Unpublished Post 030**
63
+
64
+ Then links to the pages in the `stuff` collection's pages are interleaved into the generated outline like this:
65
+ ```html
66
+ <div class="outer_posts">
67
+ <h3 class='post_title clear' id="title_0">Topic 0..19</h3>
68
+ <div id='posts_wrapper_0' class='clearfix'>
69
+ <div id='posts_0' class='posts'>
70
+ <span>2022-04-01</span> <span><a href='/stuff/010-published.html'>Published Stuff Post 010</a></span>
71
+ <span>2022-04-17</span> <span><a href='/stuff/020-unpublished.html'>Unpublished Post 020</a> <i class='jekyll_draft'>Draft</i></span>
72
+ </div>
73
+ </div>
74
+ <h3 class='post_title clear' id="title_20">Topic 20..39</h3>
75
+ <div id='posts_wrapper_20' class='clearfix'>
76
+ <div id='posts_20' class='posts'>
77
+ <span>2022-04-17</span> <span><a href='/stuff/030-unpublished.html'>Unpublished Post 030</a> <i class='jekyll_draft'>Draft</i></span>
78
+ </div>
79
+ </div>
80
+ </div>
34
81
  ```
35
82
 
83
+ The JavaScript searches for images in the current page that were created by the [`img`](https://github.com/mslinn/jekyll_img) tag plugin,
84
+ and have `id`s that correspond to outline sections.
85
+
86
+ Each of following image's `id`s have a `outline_` prefix, followed by a number, which corresponds to one of the sections.
87
+ Note that leading zeros in the first column above are not present in the `id`s below.
88
+
89
+ The images are wrapped within an invisible `div` so the web page does not jump around as the images are loaded.
90
+ ```html
91
+ <div style="display: none;">
92
+ {% img align="right"
93
+ id="outline_0"
94
+ size="quartersize"
95
+ src="/assets/images/porcelain_washbasin.webp"
96
+ style="margin-top: 0"
97
+ wrapper_class="clear"
98
+ %}
99
+ {% img align="right"
100
+ id="outline_20"
101
+ size="quartersize"
102
+ src="/assets/images/pipes.webp"
103
+ style="margin-top: 0"
104
+ wrapper_class="clear"
105
+ %}
106
+ {% img align="right"
107
+ id="outline_40"
108
+ size="quartersize"
109
+ src="/assets/images/libgit2.webp"
110
+ style="margin-top: 0"
111
+ wrapper_class="clear"
112
+ %}
113
+ </div>
114
+ ```
115
+ The JavaScript identifies the images and repositions them in the DOM such that they follow the appropriate heading.
116
+ If no image corresponds to a heading, no error or warning is generated.
117
+ The images can be located anywhere on the page; they will be relocated appropriately.
118
+ If an image does not correspond to a heading, it is deleted.
119
+
120
+
121
+ ## Attribution
122
+ See [`jekyll_plugin_support` for `attribution`](https://github.com/mslinn/jekyll_plugin_support#subclass-attribution)
123
+
124
+
125
+ ## Additional Information
126
+ More information is available on
127
+ [Mike Slinn&rsquo;s website](https://www.mslinn.com/jekyll/3000-jekyll-plugins.html#outline).
128
+
129
+
130
+ ## Development
131
+ After checking out the repo, run `bin/setup` to install development dependencies.
132
+ Then you can run `bin/console` for an interactive prompt that will allow you to experiment with `irb`.
133
+
36
134
  To build and install this gem onto your local machine, run:
37
135
  ```shell
38
136
  $ bundle exec rake install
@@ -54,16 +152,28 @@ jekyll_outline (0.1.0)
54
152
  ```
55
153
 
56
154
 
57
- ## Test
58
- A test website is provided in the `demo` directory.
59
- 1. Set breakpoints.
155
+ ## Demo
156
+ A demo / test website is provided in the `demo` directory.
157
+ It can be used to debug the plugin or to run freely.
158
+
159
+ ### Run Freely
160
+ 1. Run from the command line:
161
+ ```shell
162
+ $ demo/_bin/debug -r
163
+ ```
164
+
165
+ 2. View the generated website at [`http://localhost:4444`](http://localhost:4444)
166
+
167
+ ### Plugin Debugging
168
+ 1. Set breakpoints in Visual Studio Code.
60
169
 
61
170
  2. Initiate a debug session from the command line:
62
171
  ```shell
63
- $ bin/attach demo
172
+ $ demo/_bin/debug
64
173
  ```
65
174
 
66
- 3. Once the `Fast Debugger` signon appears, launch the Visual Studio Code launch configuration called `Attach rdebug-ide`.
175
+ 3. Once the `Fast Debugger` signon appears, launch the Visual Studio Code launch
176
+ configuration called `Attach rdebug-ide`.
67
177
 
68
178
  4. View the generated website at [`http://localhost:4444`](http://localhost:4444)
69
179
 
@@ -82,10 +192,8 @@ To release a new version,
82
192
 
83
193
 
84
194
  ## Contributing
85
-
86
195
  Bug reports and pull requests are welcome on GitHub at https://github.com/mslinn/jekyll_outline.
87
196
 
88
197
 
89
198
  ## License
90
-
91
199
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -0,0 +1,31 @@
1
+ // jekyll_img generates picture tags wrapped within divs
2
+ // We move the entire div, not just the picture tag
3
+ // If an image does not correspond to a heading, delete it
4
+ function position_outline_image(picture, before_id) {
5
+ var img = picture.parentElement;
6
+ var before_element = document.getElementById(before_id);
7
+ if (before_element) {
8
+ var parent = before_element.parentElement;
9
+ parent.insertBefore(img, before_element);
10
+ } else {
11
+ img.remove();
12
+ }
13
+ }
14
+
15
+ function getElementsByIdPrefix(selectorTag, prefix) {
16
+ var items = [];
17
+ var myPosts = document.getElementsByTagName(selectorTag);
18
+ for (var i = 0; i < myPosts.length; i++) {
19
+ //omitting undefined null check for brevity
20
+ if (myPosts[i].id.lastIndexOf(prefix, 0) === 0)
21
+ items.push(myPosts[i]);
22
+ }
23
+ return items;
24
+ }
25
+
26
+ window.onload = (event) => {
27
+ getElementsByIdPrefix("picture", "outline_").forEach(picture => {
28
+ num = picture.id.substring("outline_".length)
29
+ position_outline_image(picture, `posts_wrapper_${num}`)
30
+ });
31
+ }
@@ -9,8 +9,11 @@ Gem::Specification.new do |spec|
9
9
  Jekyll tag plugin that creates a clickable table of contents.
10
10
  END_OF_DESC
11
11
  spec.email = ['mslinn@mslinn.com']
12
- spec.files = Dir['.rubocop.yml', 'LICENSE.*', 'Rakefile', '{lib,spec}/**/*', '*.gemspec', '*.md']
13
- spec.homepage = 'https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#outline'
12
+ spec.files = Dir[
13
+ '.rubocop.yml', 'LICENSE.*', 'Rakefile', '{lib,spec}/**/*', '*.gemspec', '*.md',
14
+ 'demo/assets/js/jekyll_outline.js'
15
+ ]
16
+ spec.homepage = 'https://www.mslinn.com/jekyll/3000-jekyll-plugins.html#outline'
14
17
  spec.license = 'MIT'
15
18
  spec.metadata = {
16
19
  'allowed_push_host' => 'https://rubygems.org',
@@ -32,6 +35,6 @@ Gem::Specification.new do |spec|
32
35
  spec.version = JekyllOutlineVersion::VERSION
33
36
 
34
37
  spec.add_dependency 'jekyll', '>= 3.5.0'
35
- spec.add_dependency 'jekyll_draft', '~> 1.1.1'
36
- spec.add_dependency 'jekyll_plugin_support', '~> 0.5.1'
38
+ spec.add_dependency 'jekyll_draft', '~> 1.1.0'
39
+ spec.add_dependency 'jekyll_plugin_support', '~> 0.6.0'
37
40
  end
@@ -1,3 +1,3 @@
1
1
  module JekyllOutlineVersion
2
- VERSION = '1.0.2'.freeze
2
+ VERSION = '1.1.1'.freeze
3
3
  end
@@ -1,112 +1,7 @@
1
- # @author Copyright 2022 {https://www.mslinn.com Michael Slinn}
2
-
3
- require 'jekyll_draft'
4
- require 'jekyll_plugin_logger'
5
- require 'jekyll_plugin_support'
6
- require 'yaml'
7
- require_relative 'jekyll_outline/version'
1
+ require_relative './outline_js'
2
+ require_relative './outline_tag'
8
3
 
9
4
  module Outline
10
- PLUGIN_NAME = 'outline'.freeze
11
-
12
- # Interleaves with docs
13
- class Header
14
- attr_accessor :order, :title
15
-
16
- def initialize(yaml)
17
- @order = yaml[0]
18
- @published = true
19
- @title = yaml[1]
20
- end
21
-
22
- def to_s
23
- <<~END_STR
24
- <h3 id="title_#{order}">#{title}</h3>
25
- END_STR
26
- end
27
- end
28
-
29
- class OutlineTag < JekyllSupport::JekyllBlock
30
- include JekyllOutlineVersion
31
-
32
- FIXNUM_MAX = (2**((0.size * 8) - 2)) - 1
33
-
34
- def render_impl(text)
35
- @collection_name = argument_string.strip
36
- abort 'OutlineTag: collection_name was not specified' unless @collection_name
37
-
38
- headers = make_headers(super) # Process the block content.
39
- collection = headers + obtain_docs(@collection_name)
40
- <<~HEREDOC
41
- <div class="posts">
42
- #{make_entries(collection).join("\n")}
43
- </div>
44
- HEREDOC
45
- end
46
-
47
- private
48
-
49
- def header?(variable)
50
- variable.instance_of?(Header)
51
- end
52
-
53
- def make_headers(content)
54
- yaml = YAML.safe_load content
55
- yaml.map { |entry| Header.new entry }
56
- end
57
-
58
- def make_entries(collection)
59
- sorted = collection.sort_by(&obtain_order)
60
- pruned = remove_empty_headers(sorted)
61
- pruned.map do |entry|
62
- if entry.instance_of? Header
63
- <<~END_ENTRY
64
- <span></span> <span>#{entry}</span>
65
- END_ENTRY
66
- else
67
- date = entry.data['last_modified_at'] # "%Y-%m-%d"
68
- draft = Jekyll::Draft.draft_html(entry)
69
- <<~END_ENTRY
70
- <span>#{date}</span> <span><a href="#{entry.url}">#{entry.data['title']}</a>#{draft}</span>
71
- END_ENTRY
72
- end
73
- end
74
- end
75
-
76
- # Ignores files called index.html
77
- def obtain_docs(collection_name)
78
- abort "#{@collection_name} is not a valid collection." unless @site.collections.key? @collection_name
79
- @site
80
- .collections[collection_name]
81
- .docs
82
- .reject { |doc| doc.path.end_with? 'index.html' }
83
- end
84
-
85
- # Sort entries without an order property at the end
86
- def obtain_order
87
- proc do |entry|
88
- if entry.respond_to? :data
89
- entry.data.key?('order') ? entry.data['order'] : FIXNUM_MAX
90
- else
91
- entry.order
92
- end
93
- end
94
- end
95
-
96
- def remove_empty_headers(array)
97
- i = 0
98
- while i < array.length - 1
99
- if header?(array[i]) && header?(array[i + 1])
100
- array.delete_at(i)
101
- else
102
- i += 1
103
- end
104
- end
105
-
106
- array.delete_at(array.length - 1) if header?(array.last)
107
- array
108
- end
109
-
110
- JekyllPluginHelper.register(self, PLUGIN_NAME)
111
- end
5
+ include OutlineTag
6
+ include OutlineJsTag
112
7
  end
data/lib/outline_js.rb ADDED
@@ -0,0 +1,40 @@
1
+ require 'jekyll_plugin_support'
2
+ require_relative 'jekyll_outline/version'
3
+
4
+ module OutlineJsTag
5
+ PLUGIN_JS_NAME = 'outline_js'.freeze
6
+
7
+ class OutlineJsTag < JekyllSupport::JekyllTag
8
+ include JekyllOutlineVersion
9
+
10
+ def render_impl
11
+ wrap_in_script_tag = @helper.parameter_specified?('wrap_in_script_tag')
12
+
13
+ gem_path = Gem::Specification.find_by_name('jekyll_outline').full_gem_path
14
+ js_path = File.join(gem_path, 'demo/assets/js/jekyll_outline.js')
15
+ js = File.read(js_path)
16
+
17
+ if wrap_in_script_tag
18
+ <<~END_JS
19
+ <script>
20
+ #{indent(js)}
21
+ </script>
22
+ END_JS
23
+ else
24
+ js
25
+ end
26
+ end
27
+
28
+ private
29
+
30
+ def indent(multiline)
31
+ multiline
32
+ .strip
33
+ .split("\n")
34
+ .map { |x| " #{x}" }
35
+ .join("\n")
36
+ end
37
+
38
+ JekyllPluginHelper.register(self, PLUGIN_JS_NAME)
39
+ end
40
+ end
@@ -0,0 +1,135 @@
1
+ # @author Copyright 2022 {https://www.mslinn.com Michael Slinn}
2
+
3
+ require 'jekyll_draft'
4
+ require 'jekyll_plugin_logger'
5
+ require 'jekyll_plugin_support'
6
+ require 'yaml'
7
+ require_relative 'jekyll_outline/version'
8
+
9
+ module OutlineTag
10
+ PLUGIN_NAME = 'outline'.freeze
11
+
12
+ # Interleaves with docs
13
+ class Header
14
+ attr_accessor :order, :title
15
+
16
+ def initialize(yaml)
17
+ @order = yaml[0]
18
+ @published = true
19
+ @title = yaml[1]
20
+ end
21
+
22
+ def to_s
23
+ " <h3 class='post_title clear' id=\"title_#{@order}\">#{@title}</h3>"
24
+ end
25
+ end
26
+
27
+ class OutlineTag < JekyllSupport::JekyllBlock
28
+ include JekyllOutlineVersion
29
+
30
+ FIXNUM_MAX = (2**((0.size * 8) - 2)) - 1
31
+
32
+ def render_impl(text)
33
+ headers = make_headers(super) # Process the block content.
34
+
35
+ @helper.gem_file __FILE__
36
+ @collection_name = @helper.remaining_markup
37
+ abort 'OutlineTag: collection_name was not specified' unless @collection_name
38
+
39
+ collection = headers + obtain_docs(@collection_name)
40
+ <<~HEREDOC
41
+ <div class="outer_posts">
42
+ #{make_entries(collection)&.join("\n")}
43
+ </div>
44
+ #{@helper.attribute if @helper.attribution}
45
+ HEREDOC
46
+ end
47
+
48
+ private
49
+
50
+ def header?(variable)
51
+ variable.instance_of?(Header)
52
+ end
53
+
54
+ def make_headers(content)
55
+ yaml = YAML.safe_load(remove_leading_zeros(content))
56
+ yaml.map { |entry| Header.new entry }
57
+ end
58
+
59
+ # @section_state can have values: :head, :in_body
60
+ # @param collection Array of Jekyll::Document and Outline::Header
61
+ # @return Array of String
62
+ def make_entries(collection) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
63
+ sorted = collection.sort_by(&obtain_order)
64
+ pruned = remove_empty_headers(sorted)
65
+ @section_state = :head
66
+ @section_id = 0
67
+ result = pruned.map do |entry|
68
+ if entry.instance_of? Header
69
+ @header_order = entry.order
70
+ section_end = " </div>\n" if @section_state == :in_body
71
+ @section_state = :head
72
+ entry = section_end + entry.to_s if section_end
73
+ entry
74
+ else
75
+ if @section_state == :head
76
+ section_start = "<div id='posts_wrapper_#{@header_order}' class='clearfix'>\n " \
77
+ "<div id='posts_#{@header_order}' class='posts'>\n"
78
+ end
79
+ @section_state = :in_body
80
+ date = entry.data['last_modified_at'] # "%Y-%m-%d"
81
+ draft = Jekyll::Draft.draft_html(entry)
82
+ result = " <span>#{date}</span> <span><a href='#{entry.url}'>#{entry.data['title']}</a>#{draft}</span>"
83
+ result = section_start + result if section_start
84
+ result
85
+ end
86
+ end
87
+ result << " </div>\n </div>" if @section_state == :in_body
88
+ result
89
+ end
90
+
91
+ # Ignores files called index.html
92
+ def obtain_docs(collection_name)
93
+ abort "#{@collection_name} is not a valid collection." unless @site.collections.key? @collection_name
94
+ @site
95
+ .collections[collection_name]
96
+ .docs
97
+ .reject { |doc| doc.path.end_with? 'index.html' }
98
+ end
99
+
100
+ # Sort entries without an order property at the end
101
+ def obtain_order
102
+ proc do |entry|
103
+ if entry.respond_to? :data
104
+ entry.data.key?('order') ? entry.data['order'] : FIXNUM_MAX
105
+ else
106
+ entry.order
107
+ end
108
+ end
109
+ end
110
+
111
+ def remove_empty_headers(array)
112
+ i = 0
113
+ while i < array.length - 1
114
+ if header?(array[i]) && header?(array[i + 1])
115
+ array.delete_at(i)
116
+ else
117
+ i += 1
118
+ end
119
+ end
120
+
121
+ array.delete_at(array.length - 1) if header?(array.last)
122
+ array
123
+ end
124
+
125
+ def remove_leading_zeros(multiline)
126
+ multiline
127
+ .strip
128
+ .split("\n")
129
+ .map { |x| x.gsub(/(?<= |\A)0+(?=\d)/, '') }
130
+ .join("\n")
131
+ end
132
+
133
+ JekyllPluginHelper.register(self, PLUGIN_NAME)
134
+ end
135
+ end
@@ -0,0 +1,3 @@
1
+ example_id | status | run_time |
2
+ ---------------------------------- | ------ | --------------- |
3
+ ./spec/jekyll_outline_spec.rb[1:1] | passed | 0.00023 seconds |
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll_outline
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mike Slinn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-02-17 00:00:00.000000000 Z
11
+ date: 2023-04-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -30,28 +30,28 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 1.1.1
33
+ version: 1.1.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 1.1.1
40
+ version: 1.1.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: jekyll_plugin_support
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.1
47
+ version: 0.6.0
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.1
54
+ version: 0.6.0
55
55
  description: 'Jekyll tag plugin that creates a clickable table of contents.
56
56
 
57
57
  '
@@ -66,19 +66,23 @@ files:
66
66
  - LICENSE.txt
67
67
  - README.md
68
68
  - Rakefile
69
+ - demo/assets/js/jekyll_outline.js
69
70
  - jekyll_outline.gemspec
70
71
  - lib/jekyll_outline.rb
71
72
  - lib/jekyll_outline/version.rb
73
+ - lib/outline_js.rb
74
+ - lib/outline_tag.rb
72
75
  - spec/outline_spec.rb
73
76
  - spec/spec_helper.rb
74
- homepage: https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#outline
77
+ - spec/status_persistence.txt
78
+ homepage: https://www.mslinn.com/jekyll/3000-jekyll-plugins.html#outline
75
79
  licenses:
76
80
  - MIT
77
81
  metadata:
78
82
  allowed_push_host: https://rubygems.org
79
83
  bug_tracker_uri: https://github.com/mslinn/jekyll_outline/issues
80
84
  changelog_uri: https://github.com/mslinn/jekyll_outline/CHANGELOG.md
81
- homepage_uri: https://www.mslinn.com/blog/2020/10/03/jekyll-plugins.html#outline
85
+ homepage_uri: https://www.mslinn.com/jekyll/3000-jekyll-plugins.html#outline
82
86
  source_code_uri: https://github.com/mslinn/jekyll_outline
83
87
  post_install_message: |2+
84
88
 
@@ -105,4 +109,5 @@ summary: Jekyll tag plugin that creates a clickable table of contents.
105
109
  test_files:
106
110
  - spec/outline_spec.rb
107
111
  - spec/spec_helper.rb
112
+ - spec/status_persistence.txt
108
113
  ...