asciidoctor-multipage 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|