asciidoctor-multipage 0.0.4 → 0.0.5
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/lib/asciidoctor-multipage.rb +20 -15
- 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: 557c3f908096a0d6e1bfdb3b82422183e9708af6097b2c39f489ad2136fe8b68
|
4
|
+
data.tar.gz: 5974c191d6ef90f4508d6c7820146cc29572b4f8cbb639577266742c66f7affb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab80168a4b679c5ec5eeda2ece115e06231d70aaa915c774054a9ada32b74a7eaa9b8607afde449c235562592a60cdcb894418c03d1f8ed3de3392aefaea498f
|
7
|
+
data.tar.gz: 4921cf700bd8f640a13b882d92d3f645d001b8cf7bfd441d5741bd7115cbb935c8924e98c30d9a97d15bc7399e410da32d9e3cd53b02c6803f67b34ee4698d7c
|
@@ -17,6 +17,7 @@ class Asciidoctor::AbstractNode
|
|
17
17
|
node_tree << current
|
18
18
|
current = current.parent
|
19
19
|
end
|
20
|
+
node_tree << current
|
20
21
|
if node_tree.include?(self) ||
|
21
22
|
node_tree.include?(self.parent)
|
22
23
|
return true
|
@@ -120,7 +121,8 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
120
121
|
# Process Document (either the original full document or a processed page)
|
121
122
|
def convert_document(node)
|
122
123
|
if node.processed
|
123
|
-
# This node can now be handled by
|
124
|
+
# This node (an individual page) can now be handled by
|
125
|
+
# Html5Converter.
|
124
126
|
super
|
125
127
|
else
|
126
128
|
# This node is the original full document which has not yet been
|
@@ -146,6 +148,7 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
146
148
|
# Set multipage chunk types
|
147
149
|
set_multipage_attrs(node)
|
148
150
|
|
151
|
+
# FIXME: This can result in a duplicate ID without a warning.
|
149
152
|
# Set the "id" attribute for the Document, using the "docname", which is
|
150
153
|
# based on the file name. Then register the document ID using the
|
151
154
|
# document title. This allows cross-references to refer to (1) the
|
@@ -195,12 +198,13 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
195
198
|
# processed page)
|
196
199
|
def convert_embedded(node)
|
197
200
|
if node.processed
|
198
|
-
# This node can now be handled by
|
201
|
+
# This node (an individual page) can now be handled by
|
202
|
+
# Html5Converter.
|
199
203
|
super
|
200
204
|
else
|
201
205
|
# This node is the original full document which has not yet been
|
202
|
-
# processed; it can be handled by
|
203
|
-
|
206
|
+
# processed; it can be handled by convert_document().
|
207
|
+
convert_document(node)
|
204
208
|
end
|
205
209
|
end
|
206
210
|
|
@@ -216,7 +220,8 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
216
220
|
previous_page = pages[page_index-1]
|
217
221
|
parent_page = page.parent
|
218
222
|
home_page = doc
|
219
|
-
# NOTE
|
223
|
+
# NOTE: There are some non-breaking spaces (U+00A0) below, in
|
224
|
+
# the "links <<" lines and "links.join" line.
|
220
225
|
if previous_page != parent_page
|
221
226
|
links << %(← Previous: <<#{previous_page.id}>>)
|
222
227
|
end
|
@@ -237,12 +242,11 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
237
242
|
end
|
238
243
|
|
239
244
|
# Generate the actual HTML outline for the TOC. This method is analogous to
|
240
|
-
# Html5Converter
|
245
|
+
# Html5Converter convert_outline().
|
241
246
|
def generate_outline(node, opts = {})
|
242
|
-
# This is the same as Html5Converter outline()
|
243
247
|
return unless node.sections?
|
244
|
-
sectnumlevels = opts[:sectnumlevels] || (node.document.
|
245
|
-
toclevels = opts[:toclevels] || (node.document.
|
248
|
+
sectnumlevels = opts[:sectnumlevels] || (node.document.attributes['sectnumlevels'] || 3).to_i
|
249
|
+
toclevels = opts[:toclevels] || (node.document.attributes['toclevels'] || 2).to_i
|
246
250
|
sections = node.sections
|
247
251
|
result = [%(<ul class="sectlevel#{sections[0].level}">)]
|
248
252
|
sections.each do |section|
|
@@ -277,12 +281,12 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
277
281
|
end
|
278
282
|
result << %(<li><a href="#{link}">#{stitle}</a>)
|
279
283
|
|
280
|
-
# Finish in a manner similar to Html5Converter
|
284
|
+
# Finish in a manner similar to Html5Converter convert_outline()
|
281
285
|
if slevel < toclevels &&
|
282
286
|
(child_toc_level = generate_outline section,
|
283
|
-
|
284
|
-
|
285
|
-
|
287
|
+
toclevels: toclevels,
|
288
|
+
secnumlevels: sectnumlevels,
|
289
|
+
page_id: opts[:page_id])
|
286
290
|
result << child_toc_level
|
287
291
|
end
|
288
292
|
result << '</li>'
|
@@ -374,7 +378,8 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
374
378
|
return new_document
|
375
379
|
end
|
376
380
|
|
377
|
-
# Override Html5Converter
|
381
|
+
# Override Html5Converter convert_outline() to return a custom TOC
|
382
|
+
# outline.
|
378
383
|
def convert_outline(node, opts = {})
|
379
384
|
doc = node.document
|
380
385
|
# Find this node in the @@full_outline skeleton document
|
@@ -495,7 +500,7 @@ class MultipageHtml5Converter < Asciidoctor::Converter::Html5Converter
|
|
495
500
|
%(section cannot be less than the parent section value)
|
496
501
|
section.set_attr('multipage-level', nil)
|
497
502
|
end
|
498
|
-
#
|
503
|
+
# Propagate custom multipage-level value to child node
|
499
504
|
if !section.attr?('multipage-level', nil, false) &&
|
500
505
|
node.attr('multipage-level') != doc.attr('multipage-level')
|
501
506
|
section.set_attr('multipage-level', node.attr('multipage-level'))
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor-multipage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Owen T. Heisler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-02-
|
11
|
+
date: 2021-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: appraisal
|