jekyll-toc 0.12.0.rc2 → 0.12.0.rc3
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/README.md +1 -1
- data/lib/jekyll-toc.rb +7 -5
- data/lib/version.rb +1 -1
- data/test/test_jekyll-toc.rb +33 -6
- data/test/test_toc_tag.rb +5 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cbc830ae67f7d9cf7420ededcdd81373c0384544c3622690ba731669cdfd115b
|
4
|
+
data.tar.gz: ce7987e81662a5b84b5fba251755c66abef34d78d02ccd1dd5d1f2e7d0e65ceb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc532b059cde9864f956b2f17cea00dcb3c82d51d16377e75ca8a7dff9102b369f77e5b86632d598002893e3ad016f65a52fbf9c165305a64a75baeec5803bb3
|
7
|
+
data.tar.gz: 80c83f7eb2bd69be980483560f367f4ae500c37b7321fe7ffaef7e0e947eac6cb40d23bf2346a5f1f5850222e69628f4a946e542ade81c5d8efa46cec3ede0ff
|
data/README.md
CHANGED
@@ -67,7 +67,7 @@ If you'd like separated TOC and content, you can use `toc_only` and `inject_anch
|
|
67
67
|
|
68
68
|
#### ~~`toc_only` filter~~
|
69
69
|
|
70
|
-
⚠️ Please use `{% toc %}` instead of `{{
|
70
|
+
⚠️ Please use `{% toc %}` instead of `{{ content | toc_only }}`.
|
71
71
|
|
72
72
|
Generates the TOC itself as described [below](#generated-html).
|
73
73
|
Mostly useful in cases where the TOC should _not_ be placed immediately
|
data/lib/jekyll-toc.rb
CHANGED
@@ -10,31 +10,33 @@ module Jekyll
|
|
10
10
|
def render(context)
|
11
11
|
return '' unless context.registers[:page]['toc']
|
12
12
|
|
13
|
-
content_html = context.registers[:page]
|
14
|
-
|
13
|
+
content_html = context.registers[:page]['content']
|
14
|
+
toc_config = context.registers[:site].config['toc'] || {}
|
15
|
+
TableOfContents::Parser.new(content_html, toc_config).build_toc
|
15
16
|
end
|
16
17
|
end
|
17
18
|
|
18
19
|
# Jekyll Table of Contents filter plugin
|
19
20
|
module TableOfContentsFilter
|
21
|
+
# Deprecated method. Removed in v1.0.
|
20
22
|
def toc_only(html)
|
21
23
|
Jekyll.logger.warn 'Deprecation: toc_only filter is deprecated and will be remove in jekyll-toc v1.0.',
|
22
24
|
'Use `{% toc %}` instead of `{{ contents | toc_only }}`.'
|
23
25
|
return '' unless toc_enabled?
|
24
26
|
|
25
|
-
|
27
|
+
TableOfContents::Parser.new(html, toc_config).build_toc
|
26
28
|
end
|
27
29
|
|
28
30
|
def inject_anchors(html)
|
29
31
|
return html unless toc_enabled?
|
30
32
|
|
31
|
-
|
33
|
+
TableOfContents::Parser.new(html, toc_config).inject_anchors_into_html
|
32
34
|
end
|
33
35
|
|
34
36
|
def toc(html)
|
35
37
|
return html unless toc_enabled?
|
36
38
|
|
37
|
-
|
39
|
+
TableOfContents::Parser.new(html, toc_config).toc
|
38
40
|
end
|
39
41
|
|
40
42
|
private
|
data/lib/version.rb
CHANGED
data/test/test_jekyll-toc.rb
CHANGED
@@ -7,19 +7,46 @@ class TestTableOfContentsFilter < Minitest::Test
|
|
7
7
|
|
8
8
|
DUMMY_HTML = '<div>Dummy HTML Content</div>'
|
9
9
|
|
10
|
-
def setup
|
11
|
-
@context = Struct.new(:registers).new(page: { "toc" => false })
|
12
|
-
end
|
13
|
-
|
14
10
|
def test_toc_only
|
11
|
+
@context = disable_toc_context
|
15
12
|
assert_empty toc_only(DUMMY_HTML)
|
16
13
|
end
|
17
14
|
|
18
15
|
def test_inject_anchors
|
19
|
-
|
16
|
+
@context = disable_toc_context
|
17
|
+
assert_equal DUMMY_HTML, inject_anchors(DUMMY_HTML)
|
20
18
|
end
|
21
19
|
|
22
20
|
def test_toc
|
23
|
-
|
21
|
+
@context = disable_toc_context
|
22
|
+
assert_equal DUMMY_HTML, toc(DUMMY_HTML)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_toc_only2
|
26
|
+
@context = enable_toc_context
|
27
|
+
assert_equal "<ul class=\"section-nav\">\n</ul>", toc_only(DUMMY_HTML)
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_inject_anchors2
|
31
|
+
@context = enable_toc_context
|
32
|
+
assert_equal DUMMY_HTML, inject_anchors(DUMMY_HTML)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_toc2
|
36
|
+
@context = enable_toc_context
|
37
|
+
assert_equal "<ul class=\"section-nav\">\n</ul>#{DUMMY_HTML}", toc(DUMMY_HTML)
|
38
|
+
end
|
39
|
+
|
40
|
+
private
|
41
|
+
|
42
|
+
def disable_toc_context
|
43
|
+
Struct.new(:registers).new(page: { 'toc' => false })
|
44
|
+
end
|
45
|
+
|
46
|
+
def enable_toc_context
|
47
|
+
Struct.new(:registers).new(
|
48
|
+
page: { 'toc' => true },
|
49
|
+
site: Struct.new(:config).new({ 'toc' => false })
|
50
|
+
)
|
24
51
|
end
|
25
52
|
end
|
data/test/test_toc_tag.rb
CHANGED
@@ -7,11 +7,15 @@ class TestTableOfContentsTag < Minitest::Test
|
|
7
7
|
|
8
8
|
def setup
|
9
9
|
@stubbed_context = Struct.new(:registers)
|
10
|
+
@stubbed_context1 = Struct.new(:config)
|
10
11
|
@stubbed_context2 = Struct.new(:toc, :content)
|
11
12
|
end
|
12
13
|
|
13
14
|
def test_toc_tag
|
14
|
-
context = @stubbed_context.new(
|
15
|
+
context = @stubbed_context.new(
|
16
|
+
page: @stubbed_context2.new({ 'toc' => false }, '<h1>test</h1>'),
|
17
|
+
site: @stubbed_context1.new({ 'toc' => nil })
|
18
|
+
)
|
15
19
|
tag = Jekyll::TocTag.parse('toc_tag', '', Tokenizer.new(''), ParseContext.new)
|
16
20
|
assert_equal tag.render(context), "<ul class=\"section-nav\">\n<li class=\"toc-entry toc-h1\"><a href=\"#test\">test</a></li>\n</ul>"
|
17
21
|
end
|
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.12.0.
|
4
|
+
version: 0.12.0.rc3
|
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-31 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|