asciidoctor 2.0.14 → 2.0.15
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/CHANGELOG.adoc +34 -10
- data/README-de.adoc +2 -2
- data/README-fr.adoc +2 -2
- data/README-jp.adoc +2 -2
- data/README-zh_CN.adoc +2 -2
- data/README.adoc +9 -3
- data/lib/asciidoctor/attribute_list.rb +1 -1
- data/lib/asciidoctor/converter/docbook5.rb +24 -3
- data/lib/asciidoctor/converter/html5.rb +17 -7
- data/lib/asciidoctor/converter/manpage.rb +7 -11
- data/lib/asciidoctor/reader.rb +2 -0
- data/lib/asciidoctor/substitutors.rb +9 -7
- data/lib/asciidoctor/version.rb +1 -1
- data/man/asciidoctor.1 +4 -4
- data/man/asciidoctor.adoc +1 -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: cb27f87c48be418263b4f94e5b63f95c9615e03226a3cd093d4eab7f6dd02804
|
4
|
+
data.tar.gz: 9d562c732b689e19dfbba66195568c373a44a5ca5402a3310bb172f88ccf16bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5cade3f312ab79d06ce6cbce0376c03a5c2fc6f44c02a46273aba40ecb49a15735785a66dbf6381e61f30265f45456c1c434b9f88a4cc6487624a3f4129b4e1c
|
7
|
+
data.tar.gz: d1e9b950be47affa3459f5685efb442f6a2a6ece9485ce961f1aca232e27c0fbdcd8bd2f92983d831fec7176e3fe8996cf952f3e38d6a56c9eb77de8e2a1bad7
|
data/CHANGELOG.adoc
CHANGED
@@ -11,9 +11,32 @@ endif::[]
|
|
11
11
|
{uri-asciidoctor}[Asciidoctor] is a _fast_, open source text processor and publishing toolchain for converting {uri-asciidoc}[AsciiDoc] content into HTML 5, DocBook 5, and other formats.
|
12
12
|
|
13
13
|
This document provides a high-level view of the changes introduced in Asciidoctor by release.
|
14
|
-
For
|
14
|
+
For an even more detailed look at what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
|
15
|
+
|
16
|
+
This project utilizes semantic versioning.
|
15
17
|
|
16
18
|
// tag::compact[]
|
19
|
+
== 2.0.15 (2021-04-27) - @mojavelinux
|
20
|
+
|
21
|
+
Bug Fixes::
|
22
|
+
|
23
|
+
* Don't include trailing period, question mark, or exclamation point in target (URL) of autolink (#3860)
|
24
|
+
* Don't assign nil value to named attribute mapped to absent positional attribute when parsing attrlist (#4033)
|
25
|
+
* Remove leading and trailing spaces around role on inline phrase (#4035)
|
26
|
+
* Ignore empty role on inline phrase defined using legacy syntax and followed by comma (#4035)
|
27
|
+
* Use xreftext on document as fallback link text in HTML output for inter-document xref that resolves to current document when no link text is provided (#4032)
|
28
|
+
* Use xreftext on document as fallback link text in HTML output for internal xref with empty fragment when no link text is provided (#4032)
|
29
|
+
* Use document ID as linkend in DocBook output for internal xref with empty fragment; auto-generating one if necessary (#4032)
|
30
|
+
|
31
|
+
Improvements::
|
32
|
+
|
33
|
+
* Format keyboard references in monospace in manpage output
|
34
|
+
|
35
|
+
Build / Infrastructure::
|
36
|
+
|
37
|
+
* Get remaining invoker tests working on JRuby 9.1 for Windows
|
38
|
+
|
39
|
+
// end::compact[]
|
17
40
|
== 2.0.14 (2021-04-19) - @mojavelinux
|
18
41
|
|
19
42
|
Bug Fixes::
|
@@ -36,7 +59,6 @@ Build / Infrastructure::
|
|
36
59
|
|
37
60
|
* Run tests on JRuby for Windows (#3550)
|
38
61
|
|
39
|
-
// end::compact[]
|
40
62
|
== 2.0.13 (2021-04-10) - @mojavelinux
|
41
63
|
|
42
64
|
Bug Fixes::
|
@@ -140,6 +162,7 @@ Bug Fixes::
|
|
140
162
|
|
141
163
|
Compliance::
|
142
164
|
|
165
|
+
* Account for empty positional attribute when parsing attrlist (#3813)
|
143
166
|
* Add support for muted option to self-hosted video (#3408)
|
144
167
|
* Move style tag for convert-time syntax highlighters (coderay, rouge, pygments) into head (#3462)
|
145
168
|
* Move style tag for client-side syntax highlighters (highlight.js, prettify) into head (#3503)
|
@@ -232,7 +255,7 @@ Also see https://github.com/asciidoctor/asciidoctor/milestone/33?closed=1[issues
|
|
232
255
|
|
233
256
|
Bug Fixes::
|
234
257
|
|
235
|
-
* assume implicit AsciiDoc extension on
|
258
|
+
* assume implicit AsciiDoc extension on inter-document xref macro target with no extension (e.g., `document#`); restores 1.5.x behavior (#3231)
|
236
259
|
* don't fail to load application if call to Dir.home fails; use a rescue with fallback values (#3238)
|
237
260
|
* Helpers.rootname should only consider final path segment when dropping file extension
|
238
261
|
|
@@ -345,7 +368,7 @@ Enhancements / Compliance::
|
|
345
368
|
* change default value of third argument to Abstractnode#attr / AbstractNode#attr? to nil so attribute doesn't inherit by default (#3059)
|
346
369
|
* look for table-frame, table-grid, and table-stripes attributes on document as fallback for frame, grid, and stripes attributes on table (#3059)
|
347
370
|
* add support for hover mode for table stripes (stripes=hover) (#3110)
|
348
|
-
* always assume the target of a shorthand
|
371
|
+
* always assume the target of a shorthand inter-document xref is a reference to an AsciiDoc document (source-to-source) (#3021)
|
349
372
|
* if the target of a formal xref macro has a file extension, assume it's a path reference (#3021)
|
350
373
|
* never assume target of a formal xref macro is a path reference unless a file extension or fragment is present (#3021)
|
351
374
|
* encode characters in URI to comply with RFC-3986
|
@@ -384,6 +407,7 @@ Enhancements / Compliance::
|
|
384
407
|
* require space after semi-colon that separates multiple authors (#2441)
|
385
408
|
* catalog inline anchors at start of callout list items (#2818) (*@owenh000*)
|
386
409
|
* add parse_attributes helper method to base extension Processor class (#2134)
|
410
|
+
* require at least one character in the term position of a description list (#2766)
|
387
411
|
|
388
412
|
Improvements::
|
389
413
|
|
@@ -582,11 +606,11 @@ Enhancements::
|
|
582
606
|
|
583
607
|
* BREAKING: drop XML tags, character refs, and non-word characters (except hyphen, dot, and space) when auto-generating section IDs (#794)
|
584
608
|
** hyphen, dot, and space are replaced with value of idseparator, if set; otherwise, spaces are dropped
|
585
|
-
* BREAKING: disable
|
609
|
+
* BREAKING: disable inter-document xrefs in compat mode (#2740)
|
586
610
|
* BREAKING: automatically parse attributes in link macro if equals is present, ignoring linkattrs (except in compat mode) (#2059)
|
587
611
|
* pass non-AsciiDoc file extensions in target of xref through unprocessed (#2740)
|
588
|
-
* process any known AsciiDoc file extension in target of shorthand
|
589
|
-
* only allow .adoc to be used in target of formal xref macro to create an
|
612
|
+
* process any known AsciiDoc file extension in target of shorthand inter-document xref if hash is also present (e.g., `<<target.asciidoc#,text>>`) (#2740)
|
613
|
+
* only allow .adoc to be used in target of formal xref macro to create an inter-document xref (with or without a hash) (#2740)
|
590
614
|
* allow attribute names to contain any word character defined by Unicode (#2376, PR #2393)
|
591
615
|
* do not recognize attribute entry line if name contains a colon (PR #2377)
|
592
616
|
* route all processor messages through a logger instead of using Kernel#warn (#44, PR #2660)
|
@@ -598,9 +622,9 @@ Enhancements::
|
|
598
622
|
* add `--failure-level=LEVEL` option to CLI to force non-zero exit code if specified logging level is reached (#2003, PR #2674)
|
599
623
|
* parse text of xref macro as attributes if attribute signature found (equal sign) (#2381)
|
600
624
|
* allow xrefstyle to be specified per xref by assigning the xrefstyle attribute on the xref macro (#2365)
|
601
|
-
* recognize target with .adoc extension in xref macro as an
|
625
|
+
* recognize target with .adoc extension in xref macro as an inter-document xref
|
602
626
|
* resolve nested includes in remote documents relative to URI (#2506, PR #2511)
|
603
|
-
* allow `relfilesuffix` attribute to control file extension used for
|
627
|
+
* allow `relfilesuffix` attribute to control file extension used for inter-document xrefs (#1273)
|
604
628
|
* support `!name@` (preferred), `!name=@`, `name!@`, and `name!=@` syntax to soft unset attribute from API or CLI (#642, PR #2649)
|
605
629
|
* allow modifier to be placed at end of name to soft set an attribute (e.g., `icons@=font`) (#642, PR #2649)
|
606
630
|
* interpret `false` attribute value defined using API as a soft unset (#642, PR #2649)
|
@@ -714,7 +738,7 @@ Improvements / Refactoring::
|
|
714
738
|
* add methods to read results from timings (#2578, PR #2580)
|
715
739
|
* collapse bottom margin of last block in AsciiDoc table cell (#2568, PR #2593)
|
716
740
|
* set authorcount to 0 if there are no authors (#2519, PR #2520)
|
717
|
-
* validate fragment of
|
741
|
+
* validate fragment of inter-document xref that resolves to current doc (#2448, PR #2449)
|
718
742
|
* put id attribute on tag around phrase instead of preceding anchor (#2445, PR #2446)
|
719
743
|
* add .plist extension to XML circumfix comment family (#2430, PR #2431) (*@akosma*)
|
720
744
|
* alias Document#title method to no args Document#doctitle method (#2429, PR #2432)
|
data/README-de.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
3
|
-
v2.0.
|
3
|
+
v2.0.15, 2021-04-27
|
4
4
|
// settings:
|
5
5
|
:idprefix:
|
6
6
|
:idseparator: -
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
17
17
|
:warning-caption: :warning:
|
18
18
|
endif::[]
|
19
19
|
// Variables:
|
20
|
-
:release-version: 2.0.
|
20
|
+
:release-version: 2.0.15
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-fr.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
3
|
-
v2.0.
|
3
|
+
v2.0.15, 2021-04-27
|
4
4
|
// settings:
|
5
5
|
:idprefix:
|
6
6
|
:idseparator: -
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
17
17
|
:warning-caption: :warning:
|
18
18
|
endif::[]
|
19
19
|
// Variables:
|
20
|
-
:release-version: 2.0.
|
20
|
+
:release-version: 2.0.15
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-jp.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
3
|
-
v2.0.
|
3
|
+
v2.0.15, 2021-04-27
|
4
4
|
// settings:
|
5
5
|
:idprefix:
|
6
6
|
:idseparator: -
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
17
17
|
:warning-caption: :warning:
|
18
18
|
endif::[]
|
19
19
|
// Variables:
|
20
|
-
:release-version: 2.0.
|
20
|
+
:release-version: 2.0.15
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
data/README-zh_CN.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
3
|
-
v2.0.
|
3
|
+
v2.0.15, 2021-04-27
|
4
4
|
// settings:
|
5
5
|
:page-layout: base
|
6
6
|
:idprefix:
|
@@ -18,7 +18,7 @@ ifdef::env-github[]
|
|
18
18
|
:warning-caption: :warning:
|
19
19
|
endif::[]
|
20
20
|
// Variables:
|
21
|
-
:release-version: 2.0.
|
21
|
+
:release-version: 2.0.15
|
22
22
|
// URIs:
|
23
23
|
:uri-org: https://github.com/asciidoctor
|
24
24
|
:uri-repo: {uri-org}/asciidoctor
|
data/README.adoc
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
= Asciidoctor
|
2
2
|
Dan Allen <https://github.com/mojavelinux[@mojavelinux]>; Sarah White <https://github.com/graphitefriction[@graphitefriction]>; Ryan Waldron <https://github.com/erebor[@erebor]>
|
3
|
-
v2.0.
|
3
|
+
v2.0.15, 2021-04-27
|
4
4
|
// settings:
|
5
5
|
:idprefix:
|
6
6
|
:idseparator: -
|
@@ -17,7 +17,7 @@ ifdef::env-github[]
|
|
17
17
|
:warning-caption: :warning:
|
18
18
|
endif::[]
|
19
19
|
// Variables:
|
20
|
-
:release-version: 2.0.
|
20
|
+
:release-version: 2.0.15
|
21
21
|
// URLs:
|
22
22
|
:url-org: https://github.com/asciidoctor
|
23
23
|
:url-repo: {url-org}/asciidoctor
|
@@ -321,7 +321,7 @@ You should see information about the Asciidoctor version and your Ruby environme
|
|
321
321
|
[.output,subs=attributes+]
|
322
322
|
....
|
323
323
|
Asciidoctor {release-version} [https://asciidoctor.org]
|
324
|
-
Runtime Environment (ruby
|
324
|
+
Runtime Environment (ruby 3.0.1p64 [x86_64-linux]) (lc:UTF-8 fs:UTF-8 in:UTF-8 ex:UTF-8)
|
325
325
|
....
|
326
326
|
|
327
327
|
=== Command line interface (CLI)
|
@@ -456,6 +456,12 @@ The core Asciidoctor project is governed by the https://github.com/asciidoctor/.
|
|
456
456
|
By participating, you're agreeing to honor this code.
|
457
457
|
Let's work together to make this a welcoming, professional, inclusive, and safe environment for everyone.
|
458
458
|
|
459
|
+
== Versioning and Release Policy
|
460
|
+
|
461
|
+
This project adheres to semantic versioning (*major.minor.patch*).
|
462
|
+
Typically, patch releases are only made for the current minor release.
|
463
|
+
However, exceptions are made on a case-by-case basis to address security vulnerabilities and other high-priority issues.
|
464
|
+
|
459
465
|
== Copyright and License
|
460
466
|
|
461
467
|
Copyright (C) 2012-present Dan Allen, Sarah White, Ryan Waldron, and the individual contributors to Asciidoctor.
|
@@ -173,7 +173,7 @@ class AttributeList
|
|
173
173
|
end
|
174
174
|
else
|
175
175
|
name = @block.apply_subs name if single_quoted && @block
|
176
|
-
if (positional_attr_name = positional_attrs[index])
|
176
|
+
if (positional_attr_name = positional_attrs[index]) && name
|
177
177
|
@attributes[positional_attr_name] = name
|
178
178
|
end
|
179
179
|
# QUESTION should we assign the positional key even when it's claimed by a positional attribute?
|
@@ -41,7 +41,8 @@ class Converter::DocBook5Converter < Converter::Base
|
|
41
41
|
if (root_tag_name = node.doctype) == 'manpage'
|
42
42
|
root_tag_name = 'refentry'
|
43
43
|
end
|
44
|
-
|
44
|
+
root_tag_idx = result.size
|
45
|
+
id = node.id
|
45
46
|
result << (document_info_tag node) unless node.noheader
|
46
47
|
unless (docinfo_content = node.docinfo :header).empty?
|
47
48
|
result << docinfo_content
|
@@ -50,6 +51,9 @@ class Converter::DocBook5Converter < Converter::Base
|
|
50
51
|
unless (docinfo_content = node.docinfo :footer).empty?
|
51
52
|
result << docinfo_content
|
52
53
|
end
|
54
|
+
id, node.id = node.id, nil unless id
|
55
|
+
# defer adding root tag in case document ID is auto-generated on demand
|
56
|
+
result.insert root_tag_idx, %(<#{root_tag_name} xmlns="http://docbook.org/ns/docbook" xmlns:xl="http://www.w3.org/1999/xlink" version="5.0"#{lang_attribute}#{common_attributes id}>)
|
53
57
|
result << %(</#{root_tag_name}>)
|
54
58
|
result.join LF
|
55
59
|
end
|
@@ -474,10 +478,16 @@ class Converter::DocBook5Converter < Converter::Base
|
|
474
478
|
%(<anchor#{common_attributes((id = node.id), nil, node.reftext || %([#{id}]))}/>)
|
475
479
|
when :xref
|
476
480
|
if (path = node.attributes['path'])
|
477
|
-
# QUESTION should we use refid as fallback text instead? (like the html5 backend?)
|
478
481
|
%(<link xl:href="#{node.target}">#{node.text || path}</link>)
|
479
482
|
else
|
480
|
-
linkend = node.attributes['
|
483
|
+
if (linkend = node.attributes['refid']).nil_or_empty?
|
484
|
+
root_doc = get_root_document node
|
485
|
+
# Q: should we warn instead of generating a document ID on demand?
|
486
|
+
linkend = (root_doc.id ||= generate_document_id root_doc)
|
487
|
+
end
|
488
|
+
# NOTE the xref tag in DocBook does not support explicit link text, so the link tag must be used instead
|
489
|
+
# The section at http://www.sagehill.net/docbookxsl/CrossRefs.html#IdrefLinks gives an explanation for this choice
|
490
|
+
# "link - a cross reference where you supply the text of the reference as the content of the link element."
|
481
491
|
(text = node.text) ? %(<link linkend="#{linkend}">#{text}</link>) : %(<xref linkend="#{linkend}"/>)
|
482
492
|
end
|
483
493
|
when :link
|
@@ -710,6 +720,17 @@ class Converter::DocBook5Converter < Converter::Base
|
|
710
720
|
result.join LF
|
711
721
|
end
|
712
722
|
|
723
|
+
def get_root_document node
|
724
|
+
while (node = node.document).nested?
|
725
|
+
node = node.parent_document
|
726
|
+
end
|
727
|
+
node
|
728
|
+
end
|
729
|
+
|
730
|
+
def generate_document_id doc
|
731
|
+
%(__#{doc.doctype}-root__)
|
732
|
+
end
|
733
|
+
|
713
734
|
# FIXME this should be handled through a template mechanism
|
714
735
|
def enclose_content node
|
715
736
|
node.content_model == :compound ? node.content : %(<simpara>#{node.content}</simpara>)
|
@@ -1111,14 +1111,17 @@ Your browser does not support the video tag.
|
|
1111
1111
|
else
|
1112
1112
|
attrs = node.role ? %( class="#{node.role}") : ''
|
1113
1113
|
unless (text = node.text)
|
1114
|
-
refid = node.attributes['refid']
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1118
|
-
|
1119
|
-
|
1114
|
+
if AbstractNode === (ref = (@refs ||= node.document.catalog[:refs])[refid = node.attributes['refid']] || (refid.nil_or_empty? ? (top = get_root_document node) : nil))
|
1115
|
+
if (@resolving_xref ||= (outer = true)) && outer
|
1116
|
+
if (text = ref.xreftext node.attr 'xrefstyle', nil, true)
|
1117
|
+
text = text.gsub DropAnchorRx, '' if text.include? '<a'
|
1118
|
+
else
|
1119
|
+
text = top ? '[^top]' : %([#{refid}])
|
1120
|
+
end
|
1121
|
+
@resolving_xref = nil
|
1122
|
+
else
|
1123
|
+
text = top ? '[^top]' : %([#{refid}])
|
1120
1124
|
end
|
1121
|
-
@resolving_xref = nil
|
1122
1125
|
else
|
1123
1126
|
text = %([#{refid}])
|
1124
1127
|
end
|
@@ -1314,6 +1317,13 @@ Your browser does not support the video tag.
|
|
1314
1317
|
</div>)
|
1315
1318
|
end
|
1316
1319
|
|
1320
|
+
def get_root_document node
|
1321
|
+
while (node = node.document).nested?
|
1322
|
+
node = node.parent_document
|
1323
|
+
end
|
1324
|
+
node
|
1325
|
+
end
|
1326
|
+
|
1317
1327
|
# NOTE adapt to older converters that relied on unprefixed method names
|
1318
1328
|
def method_missing id, *params
|
1319
1329
|
!((name = id.to_s).start_with? 'convert_') && (handles? name) ? (send %(convert_#{name}), *params) : super
|
@@ -605,11 +605,11 @@ allbox tab(:);'
|
|
605
605
|
end
|
606
606
|
|
607
607
|
def convert_inline_button node
|
608
|
-
%(
|
608
|
+
%(<#{ESC_BS}fB>[#{ESC_BS}0#{node.text}#{ESC_BS}0]</#{ESC_BS}fP>)
|
609
609
|
end
|
610
610
|
|
611
611
|
def convert_inline_callout node
|
612
|
-
%(
|
612
|
+
%(<#{ESC_BS}fB>(#{node.text})<#{ESC_BS}fP>)
|
613
613
|
end
|
614
614
|
|
615
615
|
def convert_inline_footnote node
|
@@ -629,23 +629,19 @@ allbox tab(:);'
|
|
629
629
|
end
|
630
630
|
|
631
631
|
def convert_inline_kbd node
|
632
|
-
|
633
|
-
keys[0]
|
634
|
-
else
|
635
|
-
keys.join %(#{ESC_BS}0+#{ESC_BS}0)
|
636
|
-
end
|
632
|
+
%[<#{ESC_BS}f(CR>#{(keys = node.attr 'keys').size == 1 ? keys[0] : (keys.join "#{ESC_BS}0+#{ESC_BS}0")}</#{ESC_BS}fP>]
|
637
633
|
end
|
638
634
|
|
639
635
|
def convert_inline_menu node
|
640
636
|
caret = %[#{ESC_BS}0#{ESC_BS}(fc#{ESC_BS}0]
|
641
637
|
menu = node.attr 'menu'
|
642
638
|
if !(submenus = node.attr 'submenus').empty?
|
643
|
-
submenu_path = submenus.map {|item| %(
|
644
|
-
%(
|
639
|
+
submenu_path = submenus.map {|item| %(<#{ESC_BS}fI>#{item}</#{ESC_BS}fP>) }.join caret
|
640
|
+
%(<#{ESC_BS}fI>#{menu}</#{ESC_BS}fP>#{caret}#{submenu_path}#{caret}<#{ESC_BS}fI>#{node.attr 'menuitem'}</#{ESC_BS}fP>)
|
645
641
|
elsif (menuitem = node.attr 'menuitem')
|
646
|
-
%(
|
642
|
+
%(<#{ESC_BS}fI>#{menu}#{caret}#{menuitem}</#{ESC_BS}fP>)
|
647
643
|
else
|
648
|
-
%(
|
644
|
+
%(<#{ESC_BS}fI>#{menu}</#{ESC_BS}fP>)
|
649
645
|
end
|
650
646
|
end
|
651
647
|
|
data/lib/asciidoctor/reader.rb
CHANGED
@@ -690,6 +690,7 @@ class PreprocessorReader < Reader
|
|
690
690
|
@path = (path ||= ::File.basename file)
|
691
691
|
# only process lines in AsciiDoc files
|
692
692
|
if (@process_lines = file.end_with?(*ASCIIDOC_EXTENSIONS.keys))
|
693
|
+
# NOTE registering the include with a nil value tracks it while not making it visible to interdocument xrefs
|
693
694
|
@includes[path.slice 0, (path.rindex '.')] = attributes['partial-option'] ? nil : true
|
694
695
|
end
|
695
696
|
else
|
@@ -697,6 +698,7 @@ class PreprocessorReader < Reader
|
|
697
698
|
# we don't know what file type we have, so assume AsciiDoc
|
698
699
|
@process_lines = true
|
699
700
|
if (@path = path)
|
701
|
+
# NOTE registering the include with a nil value tracks it while not making it visible to interdocument xrefs
|
700
702
|
@includes[Helpers.rootname path] = attributes['partial-option'] ? nil : true
|
701
703
|
else
|
702
704
|
@path = '<stdin>'
|
@@ -555,10 +555,12 @@ module Substitutors
|
|
555
555
|
end
|
556
556
|
text = ''
|
557
557
|
case $3
|
558
|
-
when ')'
|
559
|
-
# move trailing ) out of URL
|
558
|
+
when ')', '?', '!'
|
560
559
|
target = target.chop
|
561
|
-
suffix = ')'
|
560
|
+
if (suffix = $3) == ')' && (target.end_with? '.', '?', '!')
|
561
|
+
suffix = target[-1] + suffix
|
562
|
+
target = target.chop
|
563
|
+
end
|
562
564
|
# NOTE handle case when modified target is a URI scheme (e.g., http://)
|
563
565
|
next $& if target.end_with? '://'
|
564
566
|
when ';'
|
@@ -800,7 +802,7 @@ module Substitutors
|
|
800
802
|
refid, path, target = nil, nil, '#'
|
801
803
|
end
|
802
804
|
else
|
803
|
-
refid, path = path, %(#{doc.attributes['relfileprefix']}#{path}#{src2src ? (doc.attributes.fetch 'relfilesuffix', doc.outfilesuffix) : ''})
|
805
|
+
refid, path = path, %(#{doc.attributes['relfileprefix'] || ''}#{path}#{src2src ? (doc.attributes.fetch 'relfilesuffix', doc.outfilesuffix) : ''})
|
804
806
|
if fragment
|
805
807
|
refid, target = %(#{refid}##{fragment}), %(#{path}##{fragment})
|
806
808
|
else
|
@@ -1472,13 +1474,13 @@ module Substitutors
|
|
1472
1474
|
#
|
1473
1475
|
# Returns a Hash of attributes (role and id only)
|
1474
1476
|
def parse_quoted_text_attributes str
|
1475
|
-
return {} if (str = str.rstrip).empty?
|
1476
1477
|
# NOTE attributes are typically resolved after quoted text, so substitute eagerly
|
1477
1478
|
str = sub_attributes str if str.include? ATTR_REF_HEAD
|
1478
1479
|
# for compliance, only consider first positional attribute (very unlikely)
|
1479
1480
|
str = str.slice 0, (str.index ',') if str.include? ','
|
1480
|
-
|
1481
|
-
|
1481
|
+
if (str = str.strip).empty?
|
1482
|
+
{}
|
1483
|
+
elsif (str.start_with? '.', '#') && Compliance.shorthand_property_syntax
|
1482
1484
|
segments = str.split '#', 2
|
1483
1485
|
|
1484
1486
|
if segments.size > 1
|
data/lib/asciidoctor/version.rb
CHANGED
data/man/asciidoctor.1
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
'\" t
|
2
2
|
.\" Title: asciidoctor
|
3
3
|
.\" Author: Dan Allen, Sarah White, Ryan Waldron
|
4
|
-
.\" Generator: Asciidoctor 2.0.
|
5
|
-
.\" Date: 2021-04-
|
4
|
+
.\" Generator: Asciidoctor 2.0.15
|
5
|
+
.\" Date: 2021-04-27
|
6
6
|
.\" Manual: Asciidoctor Manual
|
7
|
-
.\" Source: Asciidoctor 2.0.
|
7
|
+
.\" Source: Asciidoctor 2.0.15
|
8
8
|
.\" Language: English
|
9
9
|
.\"
|
10
|
-
.TH "ASCIIDOCTOR" "1" "2021-04-
|
10
|
+
.TH "ASCIIDOCTOR" "1" "2021-04-27" "Asciidoctor 2.0.15" "Asciidoctor Manual"
|
11
11
|
.ie \n(.g .ds Aq \(aq
|
12
12
|
.el .ds Aq '
|
13
13
|
.ss \n[.ss] 0
|
data/man/asciidoctor.adoc
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asciidoctor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dan Allen
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date: 2021-04-
|
16
|
+
date: 2021-04-27 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: asciimath
|