jekyll-toc 0.7.1 → 0.8.0.beta1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a98fa015f2cd16b45d6ea73f70f520f75270c27e4ca3a79258c817a475c573dc
4
- data.tar.gz: a4274d04f1f0fe73d5e02e3f910d91012e21d0bd2911e6af8b78db1850888dfa
3
+ metadata.gz: d596d99053aad35a05c81278de0edfad519bd76727ff60d9b01b70e71008e987
4
+ data.tar.gz: 331da3befd626489ff0a39d9d70837abbd902bf8cb17548b219b10e7e24b876a
5
5
  SHA512:
6
- metadata.gz: 5c4c08e4c22c891df141d3a12c9a2c46127b07b3afadd5a68cdf81d1f59fd9f17b35c8f8013e461f4a466c1a561539f010ec8433104867c2a6d90397ecd61fbd
7
- data.tar.gz: b20a95d26d6435f55d874f740f8c4560cc139ae3b44073fe46911f5289fe7cb9b874642554318b7ad7ad6ba4bcd2471e49d3ef97473d554fba32ce22c1d5f99e
6
+ metadata.gz: ec2c4e4cba02a4205b05249997746a4acab870876e89368b54f601e0082908e42ea3e08098483b3e12b0eb691cbf24a60da81c86db8717525336486d1deb083c
7
+ data.tar.gz: 577d24958e189a1f69feafb48e8f1a937cfdbb966ba5186773fe693641bd958575145186dc7d5e7d13be26b633437a06146d9c73c179c46ecbc5065568a57e7e
data/README.md CHANGED
@@ -133,6 +133,26 @@ toc:
133
133
 
134
134
  The default level range is `<h1>` to `<h6>`.
135
135
 
136
+ ### Ignore within
137
+
138
+ It can be configured to ignore elements within a selector:
139
+
140
+ ```yml
141
+ toc:
142
+ ignore_within: .exclude
143
+ ```
144
+
145
+ ```html
146
+ <h1>h1</h1>
147
+ <div class="exclude">
148
+ <h2>h2</h2>
149
+ <h3>h3</h3>
150
+ </div>
151
+ <h4>h4</h4>
152
+ ```
153
+
154
+ Which would result in only the `<h1>` & `<h4>` within the example being included in the TOC.
155
+
136
156
  ### CSS Styling
137
157
 
138
158
  The toc can be modified with CSS. The sample CSS is the following.
@@ -14,7 +14,8 @@ module Jekyll
14
14
  def initialize(html, options = {})
15
15
  @doc = Nokogiri::HTML::DocumentFragment.parse(html)
16
16
  options = generate_option_hash(options)
17
- @toc_levels = options['min_level']..options['max_level']
17
+ @toc_levels = options["min_level"]..options["max_level"]
18
+ @ignore_within = options["ignore_within"]
18
19
  @entries = parse_content
19
20
  end
20
21
 
@@ -42,6 +43,10 @@ module Jekyll
42
43
  entries = []
43
44
  headers = Hash.new(0)
44
45
 
46
+ if @ignore_within
47
+ @doc.css(@ignore_within).remove
48
+ end
49
+
45
50
  # TODO: Use kramdown auto ids
46
51
  @doc.css(toc_headings).reject { |n| n.classes.include?('no_toc') }.each do |node|
47
52
  text = node.text
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module JekyllToc
2
- VERSION = '0.7.1'.freeze
2
+ VERSION = '0.8.0.beta1'.freeze
3
3
  end
@@ -245,6 +245,42 @@ class TestVariousTocHtml < Minitest::Test
245
245
  HTML
246
246
  actual = doc.css('ul.section-nav').to_s
247
247
 
248
+ assert_equal(expected, actual)
249
+ end
250
+
251
+ TEST_HTML_IGNORE = <<-HTML
252
+ <h1>h1</h1>
253
+ <div class="exclude">
254
+ <h2>h2</h2>
255
+ </div>
256
+ <h3>h3</h3>
257
+ <div class="exclude">
258
+ <h4>h4</h4>
259
+ <h4>h5</h4>
260
+ </div>
261
+ <h6>h6</h6>
262
+ HTML
263
+
264
+ def test_nested_toc_with_ignore_within_option
265
+ parser = Jekyll::TableOfContents::Parser.new(TEST_HTML_IGNORE, { "ignore_within" => '.exclude'})
266
+ doc = Nokogiri::HTML(parser.toc)
267
+ expected = <<-HTML
268
+ <ul class="section-nav">
269
+ <li class="toc-entry toc-h1">
270
+ <a href="#h1">h1</a>
271
+ <ul>
272
+ <li class="toc-entry toc-h3">
273
+ <a href="#h3">h3</a>
274
+ <ul>
275
+ <li class="toc-entry toc-h6"><a href="#h6">h6</a></li>
276
+ </ul>
277
+ </li>
278
+ </ul>
279
+ </li>
280
+ </ul>
281
+ HTML
282
+ actual = doc.css('ul.section-nav').to_s
283
+
248
284
  assert_equal(expected, actual)
249
285
  end
250
286
  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.7.1
4
+ version: 0.8.0.beta1
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-09-30 00:00:00.000000000 Z
12
+ date: 2018-10-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -153,9 +153,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
153
153
  version: 2.2.2
154
154
  required_rubygems_version: !ruby/object:Gem::Requirement
155
155
  requirements:
156
- - - ">="
156
+ - - ">"
157
157
  - !ruby/object:Gem::Version
158
- version: '0'
158
+ version: 1.3.1
159
159
  requirements: []
160
160
  rubyforge_project:
161
161
  rubygems_version: 2.7.6