jekyll-toc 0.9.0 → 0.9.1
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/.rubocop.yml +8 -3
- data/.travis.yml +9 -3
- data/README.md +10 -0
- data/jekyll-toc.gemspec +1 -1
- data/lib/jekyll-toc.rb +1 -0
- data/lib/table_of_contents/parser.rb +9 -1
- data/lib/version.rb +1 -1
- data/test/test_various_toc_html.rb +46 -3
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 705551195e11b692852b8515218169cd4c9c338824817b13591f5427d9921da2
|
4
|
+
data.tar.gz: 497a38ad31db5eddca9c7f7723cb65310732ad8dc07946fa08686258b1aa18c4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bfad59fcefb5a35f2c332ba948d16e3db883178eb413cc6729ab2c088e6efdc79c26c8f459b676b7ba9cd8ff27a17cfe637f20c87023187418f22cd9445dbdf9
|
7
|
+
data.tar.gz: d6d020c0adc84111b1e9dd4919412b65a5d60d4f913e0eec4fcebc85acdc04c6da9bc535b0d096c9d1a69848553f3fb5f7079e08b8eac5c2c8b6b232c6de5788
|
data/.rubocop.yml
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
AllCops:
|
2
2
|
TargetRubyVersion: 2.3
|
3
3
|
Exclude:
|
4
|
+
- '*.gemspec'
|
4
5
|
- 'gemfiles/*'
|
6
|
+
- Rakefile
|
7
|
+
- Gemfile
|
5
8
|
|
6
9
|
Metrics/LineLength:
|
7
|
-
|
8
|
-
Exclude:
|
9
|
-
- 'test/**/*'
|
10
|
+
Enabled: false
|
10
11
|
|
11
12
|
Metrics/MethodLength:
|
12
13
|
Enabled: false
|
@@ -16,3 +17,7 @@ Metrics/AbcSize:
|
|
16
17
|
|
17
18
|
Metrics/ClassLength:
|
18
19
|
Enabled: false
|
20
|
+
|
21
|
+
Style/FileName:
|
22
|
+
Enabled: false
|
23
|
+
|
data/.travis.yml
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
language: ruby
|
2
2
|
cache: bundler
|
3
|
+
env:
|
4
|
+
global:
|
5
|
+
- CC_TEST_REPORTER_ID=6b81e393ea6ad38560386f650ea2fb0e57a7beb5e20f8c8364fabee30d5bff07
|
3
6
|
rvm:
|
4
7
|
- 2.3.7
|
5
8
|
- 2.4.4
|
@@ -10,8 +13,11 @@ gemfile:
|
|
10
13
|
- gemfiles/jekyll_3.7.gemfile
|
11
14
|
- gemfiles/jekyll_3.6.gemfile
|
12
15
|
- gemfiles/jekyll_3.5.gemfile
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
+
before_script:
|
17
|
+
# Download cc-test-reporter
|
18
|
+
- curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
|
19
|
+
- chmod +x ./cc-test-reporter
|
20
|
+
- ./cc-test-reporter before-build
|
16
21
|
after_success:
|
22
|
+
- ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
|
17
23
|
- bundle exec codeclimate-test-reporter
|
data/README.md
CHANGED
@@ -144,6 +144,16 @@ toc:
|
|
144
144
|
no_toc_section_class: exclude # default: no_toc_section
|
145
145
|
```
|
146
146
|
|
147
|
+
Configuring mutiple classes are allowed:
|
148
|
+
|
149
|
+
```yml
|
150
|
+
toc:
|
151
|
+
no_toc_section_class:
|
152
|
+
- no_toc_section
|
153
|
+
- exclude
|
154
|
+
- your_custom_skip_class_name
|
155
|
+
```
|
156
|
+
|
147
157
|
#### TOC levels
|
148
158
|
|
149
159
|
The toc levels can be configured on `_config.yml`:
|
data/jekyll-toc.gemspec
CHANGED
@@ -20,10 +20,10 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.add_runtime_dependency 'nokogiri', '~> 1.8'
|
21
21
|
|
22
22
|
spec.add_development_dependency 'appraisal'
|
23
|
-
spec.add_development_dependency 'codeclimate-test-reporter', '~> 1.0'
|
24
23
|
spec.add_development_dependency 'jekyll', '>= 3.5'
|
25
24
|
spec.add_development_dependency 'minitest', '~> 5.0'
|
26
25
|
spec.add_development_dependency 'pry'
|
27
26
|
spec.add_development_dependency 'rake'
|
28
27
|
spec.add_development_dependency 'rubocop'
|
28
|
+
spec.add_development_dependency 'simplecov'
|
29
29
|
end
|
data/lib/jekyll-toc.rb
CHANGED
@@ -127,7 +127,15 @@ module Jekyll
|
|
127
127
|
end
|
128
128
|
|
129
129
|
def toc_headings_in_no_toc_section
|
130
|
-
|
130
|
+
if @no_toc_section_class.is_a? Array
|
131
|
+
@no_toc_section_class.map { |cls| toc_headings_within(cls) }.join(',')
|
132
|
+
else
|
133
|
+
toc_headings_within(@no_toc_section_class)
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
def toc_headings_within(class_name)
|
138
|
+
@toc_levels.map { |level| ".#{class_name} h#{level}" }.join(',')
|
131
139
|
end
|
132
140
|
|
133
141
|
def generate_option_hash(options)
|
data/lib/version.rb
CHANGED
@@ -86,7 +86,7 @@ class TestVariousTocHtml < Minitest::Test
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def test_nested_toc_with_min_and_max
|
89
|
-
parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_1,
|
89
|
+
parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_1, 'min_level' => 2, 'max_level' => 5)
|
90
90
|
doc = Nokogiri::HTML(parser.toc)
|
91
91
|
expected = <<~HTML
|
92
92
|
<ul class="section-nav">
|
@@ -299,7 +299,50 @@ class TestVariousTocHtml < Minitest::Test
|
|
299
299
|
HTML
|
300
300
|
|
301
301
|
def test_nested_toc_with_no_toc_section_class_option
|
302
|
-
parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_IGNORE_2,
|
302
|
+
parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_IGNORE_2, 'no_toc_section_class' => 'exclude')
|
303
|
+
doc = Nokogiri::HTML(parser.toc)
|
304
|
+
expected = <<~HTML
|
305
|
+
<ul class="section-nav">
|
306
|
+
<li class="toc-entry toc-h1">
|
307
|
+
<a href="#h1">h1</a>
|
308
|
+
<ul>
|
309
|
+
<li class="toc-entry toc-h3">
|
310
|
+
<a href="#h3">h3</a>
|
311
|
+
<ul>
|
312
|
+
<li class="toc-entry toc-h6"><a href="#h6">h6</a></li>
|
313
|
+
</ul>
|
314
|
+
</li>
|
315
|
+
</ul>
|
316
|
+
</li>
|
317
|
+
</ul>
|
318
|
+
HTML
|
319
|
+
actual = doc.css('ul.section-nav').to_s
|
320
|
+
assert_equal(expected, actual)
|
321
|
+
|
322
|
+
html = parser.inject_anchors_into_html
|
323
|
+
assert_match(%r{<h1>.+</h1>}m, html)
|
324
|
+
assert_match(%r{<h3>.+</h3>}m, html)
|
325
|
+
assert_match(%r{<h6>.+</h6>}m, html)
|
326
|
+
assert_includes(html, '<h2>h2</h2>')
|
327
|
+
assert_includes(html, '<h4>h4</h4>')
|
328
|
+
assert_includes(html, '<h5>h5</h5>')
|
329
|
+
end
|
330
|
+
|
331
|
+
TEST_HTML_IGNORE_3 = <<~HTML
|
332
|
+
<h1>h1</h1>
|
333
|
+
<div class="no_toc_section">
|
334
|
+
<h2>h2</h2>
|
335
|
+
</div>
|
336
|
+
<h3>h3</h3>
|
337
|
+
<div class="exclude">
|
338
|
+
<h4>h4</h4>
|
339
|
+
<h5>h5</h5>
|
340
|
+
</div>
|
341
|
+
<h6>h6</h6>
|
342
|
+
HTML
|
343
|
+
|
344
|
+
def test_multiple_no_toc_section_classes
|
345
|
+
parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_IGNORE_3, 'no_toc_section_class' => ['no_toc_section', 'exclude'])
|
303
346
|
doc = Nokogiri::HTML(parser.toc)
|
304
347
|
expected = <<~HTML
|
305
348
|
<ul class="section-nav">
|
@@ -356,7 +399,7 @@ class TestVariousTocHtml < Minitest::Test
|
|
356
399
|
def test_custom_css_classes
|
357
400
|
parser = Jekyll::TableOfContents::Parser.new(
|
358
401
|
TEST_HTML_1,
|
359
|
-
|
402
|
+
'item_class' => 'custom-item', 'list_class' => 'custom-list', 'sublist_class' => 'custom-sublist', 'item_prefix' => 'custom-prefix-'
|
360
403
|
)
|
361
404
|
doc = Nokogiri::HTML(parser.toc)
|
362
405
|
expected = <<~HTML
|
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.9.
|
4
|
+
version: 0.9.1
|
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: 2018-
|
12
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -39,20 +39,6 @@ dependencies:
|
|
39
39
|
- - ">="
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: '0'
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: codeclimate-test-reporter
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - "~>"
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '1.0'
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - "~>"
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '1.0'
|
56
42
|
- !ruby/object:Gem::Dependency
|
57
43
|
name: jekyll
|
58
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +109,20 @@ dependencies:
|
|
123
109
|
- - ">="
|
124
110
|
- !ruby/object:Gem::Version
|
125
111
|
version: '0'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: simplecov
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ">="
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '0'
|
119
|
+
type: :development
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ">="
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
126
126
|
description: A liquid filter plugin for Jekyll which generates a table of contents.
|
127
127
|
email: me@toshimaru.net
|
128
128
|
executables: []
|