jekyll-toc 0.10.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/Appraisals +0 -4
- data/jekyll-toc.gemspec +2 -1
- data/lib/table_of_contents/parser.rb +6 -9
- data/lib/version.rb +1 -1
- data/test/{test_inject_anchors_filter.rb → parser/test_inject_anchors_filter.rb} +1 -1
- data/test/{test_option_error.rb → parser/test_option_error.rb} +0 -0
- data/test/{test_toc_filter.rb → parser/test_toc_filter.rb} +1 -1
- data/test/{test_toc_only_filter.rb → parser/test_toc_only_filter.rb} +0 -0
- data/test/{test_various_toc_html.rb → parser/test_various_toc_html.rb} +24 -3
- data/test/test_helper.rb +3 -0
- metadata +28 -15
- data/gemfiles/jekyll_3.5.gemfile +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: afa3ea6b7c656558ab8ac87171d113867f0c720a5917d4a057b7754c0f2b1516
|
4
|
+
data.tar.gz: 5309a5224a0e925d3993024736821e29d2605fc74c003e9e412ab0af9a26c869
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a51b5ea083c92d3cf6842f4d4ab5ec41c8da3425ec8f64c1938933f2e43514eaebd9731a59742bac191990e47318bd72104b92cf8611a97d3858d21c390db74
|
7
|
+
data.tar.gz: 34b863397e58393a41d567a412a84676ac125fa5ad3465a509114ad0b965f3d440ef3a730f81d96313b6f76beb3c8529a610702ca667489fa012fd4dfd76125d
|
data/.travis.yml
CHANGED
@@ -7,12 +7,12 @@ rvm:
|
|
7
7
|
- 2.3.7
|
8
8
|
- 2.4.4
|
9
9
|
- 2.5.1
|
10
|
+
- 2.6.2
|
10
11
|
# gemfile is generated by appraisal
|
11
12
|
gemfile:
|
12
13
|
- gemfiles/jekyll_3.8.gemfile
|
13
14
|
- gemfiles/jekyll_3.7.gemfile
|
14
15
|
- gemfiles/jekyll_3.6.gemfile
|
15
|
-
- gemfiles/jekyll_3.5.gemfile
|
16
16
|
before_script:
|
17
17
|
# Download cc-test-reporter
|
18
18
|
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
data/Appraisals
CHANGED
data/jekyll-toc.gemspec
CHANGED
@@ -21,7 +21,8 @@ Gem::Specification.new do |spec|
|
|
21
21
|
|
22
22
|
spec.add_development_dependency 'appraisal'
|
23
23
|
spec.add_development_dependency 'jekyll', '>= 3.5'
|
24
|
-
spec.add_development_dependency 'minitest', '~> 5.
|
24
|
+
spec.add_development_dependency 'minitest', '~> 5.11'
|
25
|
+
spec.add_development_dependency 'minitest-reporters'
|
25
26
|
spec.add_development_dependency 'pry'
|
26
27
|
spec.add_development_dependency 'rake'
|
27
28
|
spec.add_development_dependency 'rubocop'
|
@@ -39,8 +39,8 @@ module Jekyll
|
|
39
39
|
|
40
40
|
def inject_anchors_into_html
|
41
41
|
@entries.each do |entry|
|
42
|
-
entry[:
|
43
|
-
%(<a
|
42
|
+
entry[:header_content].add_previous_sibling(
|
43
|
+
%(<a class="anchor" href="##{entry[:id]}" aria-hidden="true"><span class="octicon octicon-link"></span></a>)
|
44
44
|
)
|
45
45
|
end
|
46
46
|
|
@@ -63,17 +63,14 @@ module Jekyll
|
|
63
63
|
.gsub(PUNCTUATION_REGEXP, '') # remove punctuation
|
64
64
|
.tr(' ', '-') # replace spaces with dash
|
65
65
|
|
66
|
-
|
66
|
+
suffix_num = headers[id]
|
67
67
|
headers[id] += 1
|
68
|
-
header_content = node.children.first
|
69
|
-
next entries unless header_content
|
70
68
|
|
71
69
|
entries << {
|
72
|
-
id: id,
|
73
|
-
uniq: uniq,
|
70
|
+
id: suffix_num.zero? ? id : "#{id}-#{suffix_num}",
|
74
71
|
text: CGI.escapeHTML(text),
|
75
72
|
node_name: node.name,
|
76
|
-
|
73
|
+
header_content: node.children.first,
|
77
74
|
h_num: node.name.delete('h').to_i
|
78
75
|
}
|
79
76
|
end
|
@@ -89,7 +86,7 @@ module Jekyll
|
|
89
86
|
entry = entries[i]
|
90
87
|
if entry[:h_num] == min_h_num
|
91
88
|
# If the current entry should not be indented in the list, add the entry to the list
|
92
|
-
toc_list << %(<li class="#{@item_class} #{@item_prefix}#{entry[:node_name]}"><a href="##{entry[:id]}
|
89
|
+
toc_list << %(<li class="#{@item_class} #{@item_prefix}#{entry[:node_name]}"><a href="##{entry[:id]}">#{entry[:text]}</a>)
|
93
90
|
# If the next entry should be indented in the list, generate a sublist
|
94
91
|
next_i = i + 1
|
95
92
|
if next_i < entries.count && entries[next_i][:h_num] > min_h_num
|
data/lib/version.rb
CHANGED
@@ -12,7 +12,7 @@ class TestInjectAnchorsFilter < Minitest::Test
|
|
12
12
|
def test_injects_anchors_into_content
|
13
13
|
html = @parser.inject_anchors_into_html
|
14
14
|
|
15
|
-
assert_match(%r{<a
|
15
|
+
assert_match(%r{<a class="anchor" href="#simple-h1" aria-hidden="true"><span.*span></a>Simple H1}, html)
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_does_not_inject_toc
|
File without changes
|
@@ -12,7 +12,7 @@ class TestTOCFilter < Minitest::Test
|
|
12
12
|
def test_injects_anchors
|
13
13
|
html = @parser.toc
|
14
14
|
|
15
|
-
assert_match(%r{<a
|
15
|
+
assert_match(%r{<a class="anchor" href="#simple-h1" aria-hidden="true"><span.*span></a>Simple H1}, html)
|
16
16
|
end
|
17
17
|
|
18
18
|
def test_nested_toc
|
File without changes
|
@@ -391,9 +391,30 @@ class TestVariousTocHtml < Minitest::Test
|
|
391
391
|
assert_equal(expected, actual)
|
392
392
|
|
393
393
|
html = parser.inject_anchors_into_html
|
394
|
-
assert_includes(html, %(<a
|
395
|
-
assert_includes(html, %(<a
|
396
|
-
assert_includes(html, %(<a
|
394
|
+
assert_includes(html, %(<a class="anchor" href="#h1" aria-hidden="true">))
|
395
|
+
assert_includes(html, %(<a class="anchor" href="#second" aria-hidden="true">))
|
396
|
+
assert_includes(html, %(<a class="anchor" href="#third" aria-hidden="true">))
|
397
|
+
end
|
398
|
+
|
399
|
+
|
400
|
+
TEST_UNIQ_ID = <<~HTML
|
401
|
+
<h1>h1</h1>
|
402
|
+
<h1>h1</h1>
|
403
|
+
<h1>h1</h1>
|
404
|
+
HTML
|
405
|
+
|
406
|
+
def test_anchor_is_uniq
|
407
|
+
parser = Jekyll::TableOfContents::Parser.new(TEST_UNIQ_ID)
|
408
|
+
doc = Nokogiri::HTML(parser.toc)
|
409
|
+
expected = <<~HTML
|
410
|
+
<ul class="section-nav">
|
411
|
+
<li class="toc-entry toc-h1"><a href="#h1">h1</a></li>
|
412
|
+
<li class="toc-entry toc-h1"><a href="#h1-1">h1</a></li>
|
413
|
+
<li class="toc-entry toc-h1"><a href="#h1-2">h1</a></li>
|
414
|
+
</ul>
|
415
|
+
HTML
|
416
|
+
actual = doc.css('ul.section-nav').to_s
|
417
|
+
assert_equal(expected, actual)
|
397
418
|
end
|
398
419
|
|
399
420
|
def test_custom_css_classes
|
data/test/test_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-toc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- toshimaru
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-03-
|
12
|
+
date: 2019-03-24 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -59,14 +59,28 @@ dependencies:
|
|
59
59
|
requirements:
|
60
60
|
- - "~>"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version: '5.
|
62
|
+
version: '5.11'
|
63
63
|
type: :development
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
66
66
|
requirements:
|
67
67
|
- - "~>"
|
68
68
|
- !ruby/object:Gem::Version
|
69
|
-
version: '5.
|
69
|
+
version: '5.11'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: minitest-reporters
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: '0'
|
70
84
|
- !ruby/object:Gem::Dependency
|
71
85
|
name: pry
|
72
86
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,7 +152,6 @@ files:
|
|
138
152
|
- LICENSE.md
|
139
153
|
- README.md
|
140
154
|
- Rakefile
|
141
|
-
- gemfiles/jekyll_3.5.gemfile
|
142
155
|
- gemfiles/jekyll_3.6.gemfile
|
143
156
|
- gemfiles/jekyll_3.7.gemfile
|
144
157
|
- gemfiles/jekyll_3.8.gemfile
|
@@ -146,14 +159,14 @@ files:
|
|
146
159
|
- lib/jekyll-toc.rb
|
147
160
|
- lib/table_of_contents/parser.rb
|
148
161
|
- lib/version.rb
|
162
|
+
- test/parser/test_inject_anchors_filter.rb
|
163
|
+
- test/parser/test_option_error.rb
|
164
|
+
- test/parser/test_toc_filter.rb
|
165
|
+
- test/parser/test_toc_only_filter.rb
|
166
|
+
- test/parser/test_various_toc_html.rb
|
149
167
|
- test/test_helper.rb
|
150
|
-
- test/test_inject_anchors_filter.rb
|
151
168
|
- test/test_jekyll-toc.rb
|
152
169
|
- test/test_kramdown_list.rb
|
153
|
-
- test/test_option_error.rb
|
154
|
-
- test/test_toc_filter.rb
|
155
|
-
- test/test_toc_only_filter.rb
|
156
|
-
- test/test_various_toc_html.rb
|
157
170
|
homepage: https://github.com/toshimaru/jekyll-toc
|
158
171
|
licenses:
|
159
172
|
- MIT
|
@@ -178,11 +191,11 @@ signing_key:
|
|
178
191
|
specification_version: 4
|
179
192
|
summary: Jekyll Table of Contents plugin
|
180
193
|
test_files:
|
194
|
+
- test/parser/test_inject_anchors_filter.rb
|
195
|
+
- test/parser/test_option_error.rb
|
196
|
+
- test/parser/test_toc_filter.rb
|
197
|
+
- test/parser/test_toc_only_filter.rb
|
198
|
+
- test/parser/test_various_toc_html.rb
|
181
199
|
- test/test_helper.rb
|
182
|
-
- test/test_inject_anchors_filter.rb
|
183
200
|
- test/test_jekyll-toc.rb
|
184
201
|
- test/test_kramdown_list.rb
|
185
|
-
- test/test_option_error.rb
|
186
|
-
- test/test_toc_filter.rb
|
187
|
-
- test/test_toc_only_filter.rb
|
188
|
-
- test/test_various_toc_html.rb
|