asciidoctor 2.0.0.rc.3 → 2.0.0
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 +13 -4
- data/README-de.adoc +3 -2
- data/README-fr.adoc +3 -2
- data/README-jp.adoc +3 -2
- data/README-zh_CN.adoc +3 -2
- data/README.adoc +3 -2
- data/data/locale/attributes-de.adoc +4 -3
- data/data/reference/syntax.adoc +8 -2
- data/lib/asciidoctor.rb +11 -1
- data/lib/asciidoctor/abstract_node.rb +4 -5
- data/lib/asciidoctor/attribute_list.rb +16 -16
- data/lib/asciidoctor/converter/docbook5.rb +36 -21
- data/lib/asciidoctor/converter/html5.rb +2 -2
- data/lib/asciidoctor/extensions.rb +27 -11
- data/lib/asciidoctor/parser.rb +65 -73
- data/lib/asciidoctor/substitutors.rb +561 -549
- data/lib/asciidoctor/version.rb +1 -1
- data/man/asciidoctor.1 +4 -4
- data/man/asciidoctor.adoc +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09c8776c68c1c086a0d17e7597f8e5cd2a4ef27a2b57545a0d82bb7520747c8d'
|
4
|
+
data.tar.gz: 6fa042782d5c3a6e446ce1b3b5a25557055d74248ca618f3bed651d5d6f7535e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82e97c50b8ecc3cb09e2aa966e41acc3d714dd8fad4654ab68eadd5e339febdcd680fdb3fba77bb11583eb419120fb6429bcd9d21299ecb4e6f7ff102bda48d3
|
7
|
+
data.tar.gz: 2c96408f4c51935b2b9d413184358d58a55e528675442167a13e879d5a4506ab29fb628c65c63b616333d555f41a54d1da761889afbba64f563a623d3b2b4446
|
data/CHANGELOG.adoc
CHANGED
@@ -13,7 +13,7 @@ endif::[]
|
|
13
13
|
This document provides a high-level view of the changes introduced in Asciidoctor by release.
|
14
14
|
For a detailed view of what has changed, refer to the {uri-repo}/commits/master[commit history] on GitHub.
|
15
15
|
|
16
|
-
== 2.0.0
|
16
|
+
== 2.0.0 (2019-03-22) - @mojavelinux
|
17
17
|
|
18
18
|
Enhancements / Compliance::
|
19
19
|
|
@@ -44,11 +44,14 @@ Enhancements / Compliance::
|
|
44
44
|
* use value of prettify-theme attribute as is if it starts with http:// or https:// (#3020)
|
45
45
|
* allow icontype to be set using icons attribute (#2953)
|
46
46
|
* when using a server-side syntax highlighter, highlight content of source block even if source language is not set (#3027)
|
47
|
+
* automatically promote a listing block without an explicit style to a source block if language is set (#1117)
|
47
48
|
* remove the 2-character (i.e., `""`) quote block syntax
|
48
49
|
* don't allow block role to inherit from document attribute; only look for role in block attributes (#1944)
|
49
50
|
* split out functionality of -w CLI flag (script warnings) from -v CLI flag (verbose logging) (#3030)
|
50
51
|
* log possible invalid references at info level (#3030)
|
51
52
|
* log dropped lines at info level when attribute-missing=drop-line (#2861)
|
53
|
+
* honor attribute-missing setting when processing include directives and block macros (#2855)
|
54
|
+
* log warning when include directive is not resolved due to missing attribute or blank target; always include warning in output document (#2868)
|
52
55
|
* use the third argument of AbstractNode#attr / AbstractNode#attr? to set the name of a fallback attribute to look for on the document (#1934)
|
53
56
|
* change default value of third argument to Abstractnode#attr / AbstractNode#attr? to nil so attribute doesn't inherit by default (#3059)
|
54
57
|
* look for table-frame, table-grid, and table-stripes attributes on document as fallback for frame, grid, and stripes attributes on table (#3059)
|
@@ -79,12 +82,18 @@ Enhancements / Compliance::
|
|
79
82
|
* rename header_footer option to standalone (while still honoring header_footer for backwards compatibility) (#1444)
|
80
83
|
* replace anchors and xrefs before footnotes (replace footnotes last in macros substitution group)
|
81
84
|
* apply substitution for custom inline macro before all other macros
|
82
|
-
*
|
85
|
+
* only promote index terms automatically (A, B, C becomes A > B > C + B > C + C) if indexterm-promotion option is set on document (#1487)
|
86
|
+
* add support for see and see-also on index terms; parse attributes on indexterm macros if text contains `=` (#2047)
|
87
|
+
* drop :indexterms table from document catalog (in preparation for solution to #450 in a 2.x release)
|
83
88
|
* load additional languages for highlight.js as defined in the comma-separated highlightjs-languages attribute (#3036)
|
84
89
|
* log warning if conditional expression in ifeval directive is invalid (#3161)
|
85
90
|
* drop lines that contain an invalid preprocessor directive (#3161)
|
86
91
|
* rename AbstractBlock#find_by directives; use :prune in place of :skip_children and :reject in place of :skip
|
87
92
|
* convert example block into details/summary tag set if collapsible option is set; open by default if open option is set (#1699)
|
93
|
+
* substitute replacements in author values used in document header (#2441)
|
94
|
+
* require space after semi-colon that separates multiple authors (#2441)
|
95
|
+
* catalog inline anchors at start of callout list items (#2818) (*@owenh000*)
|
96
|
+
* add parse_attributes helper method to base extension Processor class (#2134)
|
88
97
|
|
89
98
|
Improvements::
|
90
99
|
|
@@ -107,8 +116,6 @@ Improvements::
|
|
107
116
|
* never mutate strings; add a `frozen_string_literal: true` magic comment to top of all Ruby source files (#3054)
|
108
117
|
* always use docdate and doctime to compute docyear and docdatetime (#3064)
|
109
118
|
* rename PreprocessorReader#exceeded_max_depth? to PreprocessorReader#exceeds_max_depth? and return nil if includes are disabled
|
110
|
-
* log warning when include directive is not resolved due to missing attribute or blank target; always include warning in output (#2868)
|
111
|
-
* honor attribute-missing setting when processing include directives and block macros (#2855)
|
112
119
|
* stop populating :ids table in document catalog (#3084)
|
113
120
|
* always use :refs table in document catalog to look for registered IDs (#3084)
|
114
121
|
* don't compute and store reference text in document catalog (#3084)
|
@@ -123,6 +130,8 @@ Improvements::
|
|
123
130
|
* truncate with precision (instead of rounding) when computing absolute width for columns in DocBook output (#3131)
|
124
131
|
* drop legacy LaTeX math delimiters (e.g, `$..$`) if present (#1339)
|
125
132
|
* use proper terminology in warning message about mismatched preprocessor directive (#3165)
|
133
|
+
* rename low-level extension attribute name :pos_attrs to :positional_attrs
|
134
|
+
* mark default_attrs extension DSL method deprecated in favor of default_attributes
|
126
135
|
* upgrade MathJax to 2.7.5
|
127
136
|
|
128
137
|
Bug Fixes::
|
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.0
|
3
|
+
v2.0.0, 2019-03-22
|
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.0
|
20
|
+
:release-version: 2.0.0
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
@@ -136,6 +136,7 @@ Asciidoctor arbeitet unter Linux, MacOS und Windows und benötigt eine der folge
|
|
136
136
|
|
137
137
|
* CRuby (aka MRI) 2.3 - 2.6
|
138
138
|
* JRuby 9.1 - 9.2
|
139
|
+
* TruffleRuby (GraalVM)
|
139
140
|
* Opal (JavaScript)
|
140
141
|
|
141
142
|
[CAUTION]
|
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.0
|
3
|
+
v2.0.0, 2019-03-22
|
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.0
|
20
|
+
:release-version: 2.0.0
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
@@ -133,6 +133,7 @@ Asciidoctor fonctionne sur Linux, macOS et Windows et requiert une des implémen
|
|
133
133
|
|
134
134
|
* CRuby (aka MRI) 2.3 - 2.6
|
135
135
|
* JRuby 9.1 - 9.2
|
136
|
+
* TruffleRuby (GraalVM)
|
136
137
|
* Opal (JavaScript)
|
137
138
|
|
138
139
|
[CAUTION]
|
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.0
|
3
|
+
v2.0.0, 2019-03-22
|
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.0
|
21
|
+
:release-version: 2.0.0
|
22
22
|
// URIs:
|
23
23
|
:uri-org: https://github.com/asciidoctor
|
24
24
|
:uri-repo: {uri-org}/asciidoctor
|
@@ -123,6 +123,7 @@ AsciidoctorはLinux, OS X (Mac)とWindowsで動き, 下記の {uri-ruby}[Ruby]
|
|
123
123
|
|
124
124
|
* CRuby (aka MRI) 2.3 - 2.6
|
125
125
|
* JRuby 9.1 - 9.2
|
126
|
+
* TruffleRuby (GraalVM)
|
126
127
|
* Opal (JavaScript)
|
127
128
|
|
128
129
|
[CAUTION]
|
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.0
|
3
|
+
v2.0.0, 2019-03-22
|
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.0
|
21
|
+
:release-version: 2.0.0
|
22
22
|
// URIs:
|
23
23
|
:uri-org: https://github.com/asciidoctor
|
24
24
|
:uri-repo: {uri-org}/asciidoctor
|
@@ -125,6 +125,7 @@ Asciidoctor 可以运行在 Linux,OSX (Mac) 和 Windows 系统,但需要安
|
|
125
125
|
|
126
126
|
* CRuby (aka MRI) 2.3 - 2.6
|
127
127
|
* JRuby 9.1 - 9.2
|
128
|
+
* TruffleRuby (GraalVM)
|
128
129
|
* Opal (JavaScript)
|
129
130
|
|
130
131
|
我们欢迎你来帮助在这些以及其他平台测试 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.0
|
3
|
+
v2.0.0, 2019-03-22
|
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.0
|
20
|
+
:release-version: 2.0.0
|
21
21
|
// URIs:
|
22
22
|
:uri-org: https://github.com/asciidoctor
|
23
23
|
:uri-repo: {uri-org}/asciidoctor
|
@@ -141,6 +141,7 @@ Asciidoctor works on Linux, macOS and Windows and requires one of the following
|
|
141
141
|
|
142
142
|
* CRuby (aka MRI) 2.3 - 2.6
|
143
143
|
* JRuby 9.1 - 9.2
|
144
|
+
* TruffleRuby (GraalVM)
|
144
145
|
* Opal (JavaScript)
|
145
146
|
|
146
147
|
[CAUTION]
|
@@ -8,15 +8,16 @@
|
|
8
8
|
:figure-caption: Abbildung
|
9
9
|
:important-caption: Wichtig
|
10
10
|
:last-update-label: Zuletzt aktualisiert
|
11
|
-
|
11
|
+
ifdef::listing-caption[:listing-caption: Listing]
|
12
12
|
ifdef::manname-title[:manname-title: Bezeichnung]
|
13
13
|
:note-caption: Anmerkung
|
14
|
-
|
14
|
+
:part-label: Teil
|
15
|
+
:part-refsig: {part-label}
|
15
16
|
ifdef::preface-title[:preface-title: Vorwort]
|
16
17
|
:section-refsig: Abschnitt
|
17
18
|
:table-caption: Tabelle
|
18
19
|
:tip-caption: Hinweis
|
19
|
-
:toc-title:
|
20
|
+
:toc-title: Inhaltsverzeichnis
|
20
21
|
:untitled-label: Ohne Titel
|
21
22
|
:version-label: Version
|
22
23
|
:warning-caption: Warnung
|
data/data/reference/syntax.adoc
CHANGED
@@ -131,7 +131,7 @@ Attach a block or paragraph to a list item using a list continuation (which you
|
|
131
131
|
=== Callout
|
132
132
|
|
133
133
|
// enable callout bubbles by adding `:icons: font` to the document header
|
134
|
-
[
|
134
|
+
[,ruby]
|
135
135
|
----
|
136
136
|
puts 'Hello, World!' # <1>
|
137
137
|
----
|
@@ -188,6 +188,12 @@ admonition - a notice for the reader, ranging in severity from a tip to an alert
|
|
188
188
|
example - a demonstration of the concept being documented
|
189
189
|
====
|
190
190
|
|
191
|
+
.Toggle Me
|
192
|
+
[%collapsible]
|
193
|
+
====
|
194
|
+
collapsible - these details are revealed by clicking the title
|
195
|
+
====
|
196
|
+
|
191
197
|
****
|
192
198
|
sidebar - auxiliary content that can be read independently of the main content
|
193
199
|
****
|
@@ -200,7 +206,7 @@ literal - an exhibit that features program output
|
|
200
206
|
listing - an exhibit that features program input, source code, or the contents of a file
|
201
207
|
----
|
202
208
|
|
203
|
-
[
|
209
|
+
[,language]
|
204
210
|
----
|
205
211
|
source - a listing that is embellished with (colorized) syntax highlighting
|
206
212
|
----
|
data/lib/asciidoctor.rb
CHANGED
@@ -142,7 +142,9 @@ module Asciidoctor
|
|
142
142
|
define :unwrap_standalone_preamble, true
|
143
143
|
|
144
144
|
# AsciiDoc drops lines that contain references to missing attributes.
|
145
|
-
# This behavior is not intuitive to most writers
|
145
|
+
# This behavior is not intuitive to most writers.
|
146
|
+
# Asciidoctor allows this behavior to be configured.
|
147
|
+
# Possible options are 'skip', 'drop', 'drop-line', and 'warn'.
|
146
148
|
# Compliance value: 'drop-line'
|
147
149
|
define :attribute_missing, 'skip'
|
148
150
|
|
@@ -396,6 +398,14 @@ module Asciidoctor
|
|
396
398
|
#
|
397
399
|
AuthorInfoLineRx = /^(#{CG_WORD}[#{CC_WORD}\-'.]*)(?: +(#{CG_WORD}[#{CC_WORD}\-'.]*))?(?: +(#{CG_WORD}[#{CC_WORD}\-'.]*))?(?: +<([^>]+)>)?$/
|
398
400
|
|
401
|
+
# Matches the delimiter that separates multiple authors.
|
402
|
+
#
|
403
|
+
# Examples
|
404
|
+
#
|
405
|
+
# Doc Writer; Junior Writer
|
406
|
+
#
|
407
|
+
AuthorDelimiterRx = /;(?: |$)/
|
408
|
+
|
399
409
|
# Matches the revision info line, which appears immediately following
|
400
410
|
# the author info line beneath the document title.
|
401
411
|
#
|
@@ -174,12 +174,11 @@ class AbstractNode
|
|
174
174
|
# If an attribute already exists with the same key, it's value will
|
175
175
|
# be overwritten.
|
176
176
|
#
|
177
|
-
#
|
177
|
+
# new_attributes - A Hash of additional attributes to assign to this node.
|
178
178
|
#
|
179
|
-
# Returns
|
180
|
-
def update_attributes
|
181
|
-
@attributes.update
|
182
|
-
nil
|
179
|
+
# Returns the updated attributes [Hash] on this node.
|
180
|
+
def update_attributes new_attributes
|
181
|
+
@attributes.update new_attributes
|
183
182
|
end
|
184
183
|
|
185
184
|
# Public: Retrieves the space-separated String role for this node.
|
@@ -4,7 +4,7 @@ module Asciidoctor
|
|
4
4
|
# pairs. By default, attributes must each be separated by a comma and quotes
|
5
5
|
# may be used around the value. If a key is not detected, the value is assigned
|
6
6
|
# to a 1-based positional key, The positional attributes can be "rekeyed" when
|
7
|
-
# given a
|
7
|
+
# given a positional_attrs array either during parsing or after the fact.
|
8
8
|
#
|
9
9
|
# Examples
|
10
10
|
#
|
@@ -56,11 +56,11 @@ class AttributeList
|
|
56
56
|
@attributes = nil
|
57
57
|
end
|
58
58
|
|
59
|
-
def parse_into attributes,
|
60
|
-
attributes.update
|
59
|
+
def parse_into attributes, positional_attrs = []
|
60
|
+
attributes.update parse positional_attrs
|
61
61
|
end
|
62
62
|
|
63
|
-
def parse
|
63
|
+
def parse positional_attrs = []
|
64
64
|
# return if already parsed
|
65
65
|
return @attributes if @attributes
|
66
66
|
|
@@ -69,7 +69,7 @@ class AttributeList
|
|
69
69
|
#attributes[0] = @scanner.string
|
70
70
|
index = 0
|
71
71
|
|
72
|
-
while parse_attribute index,
|
72
|
+
while parse_attribute index, positional_attrs
|
73
73
|
break if @scanner.eos?
|
74
74
|
skip_delimiter
|
75
75
|
index += 1
|
@@ -78,25 +78,25 @@ class AttributeList
|
|
78
78
|
@attributes
|
79
79
|
end
|
80
80
|
|
81
|
-
def rekey
|
82
|
-
AttributeList.rekey @attributes,
|
81
|
+
def rekey positional_attrs
|
82
|
+
AttributeList.rekey @attributes, positional_attrs
|
83
83
|
end
|
84
84
|
|
85
|
-
def self.rekey attributes,
|
86
|
-
|
87
|
-
|
88
|
-
|
85
|
+
def self.rekey attributes, positional_attrs
|
86
|
+
index = 0
|
87
|
+
positional_attrs.each do |key|
|
88
|
+
index += 1
|
89
|
+
if (val = attributes[index])
|
89
90
|
# QUESTION should we delete the positional key?
|
90
91
|
attributes[key] = val
|
91
|
-
end
|
92
|
+
end if key
|
92
93
|
end
|
93
|
-
|
94
94
|
attributes
|
95
95
|
end
|
96
96
|
|
97
97
|
private
|
98
98
|
|
99
|
-
def parse_attribute index = 0,
|
99
|
+
def parse_attribute index = 0, positional_attrs = []
|
100
100
|
single_quoted_value = false
|
101
101
|
skip_blank
|
102
102
|
# example: "quote"
|
@@ -174,8 +174,8 @@ class AttributeList
|
|
174
174
|
end
|
175
175
|
else
|
176
176
|
resolved_name = single_quoted_value && @block ? (@block.apply_subs name) : name
|
177
|
-
if (
|
178
|
-
@attributes[
|
177
|
+
if (positional_attr_name = positional_attrs[index])
|
178
|
+
@attributes[positional_attr_name] = resolved_name
|
179
179
|
end
|
180
180
|
# QUESTION should we always assign the positional key?
|
181
181
|
@attributes[index + 1] = resolved_name
|
@@ -538,25 +538,40 @@ class Converter::DocBook5Converter < Converter::Base
|
|
538
538
|
end
|
539
539
|
|
540
540
|
def convert_inline_indexterm node
|
541
|
+
if (see = node.attr 'see')
|
542
|
+
rel = %(\n<see>#{see}</see>)
|
543
|
+
elsif (see_also_list = node.attr 'see-also')
|
544
|
+
rel = see_also_list.map {|see_also| %(\n<seealso>#{see_also}</seealso>) }.join
|
545
|
+
else
|
546
|
+
rel = ''
|
547
|
+
end
|
541
548
|
if node.type == :visible
|
542
|
-
%(<indexterm
|
549
|
+
%(<indexterm>
|
550
|
+
<primary>#{node.text}</primary>#{rel}
|
551
|
+
</indexterm>#{node.text})
|
543
552
|
else
|
544
|
-
terms = node.attr 'terms'
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
<
|
549
|
-
</
|
550
|
-
|
551
|
-
|
552
|
-
|
553
|
-
|
553
|
+
if (numterms = (terms = node.attr 'terms').size) > 2
|
554
|
+
%(<indexterm>
|
555
|
+
<primary>#{terms[0]}</primary><secondary>#{terms[1]}</secondary><tertiary>#{terms[2]}</tertiary>#{rel}
|
556
|
+
</indexterm>#{(node.document.option? 'indexterm-promotion') ? %[
|
557
|
+
<indexterm>
|
558
|
+
<primary>#{terms[1]}</primary><secondary>#{terms[2]}</secondary>
|
559
|
+
</indexterm>
|
560
|
+
<indexterm>
|
561
|
+
<primary>#{terms[2]}</primary>
|
562
|
+
</indexterm>] : ''})
|
563
|
+
elsif numterms > 1
|
564
|
+
%(<indexterm>
|
565
|
+
<primary>#{terms[0]}</primary><secondary>#{terms[1]}</secondary>#{rel}
|
566
|
+
</indexterm>#{(node.document.option? 'indexterm-promotion') ? %[
|
567
|
+
<indexterm>
|
568
|
+
<primary>#{terms[1]}</primary>
|
569
|
+
</indexterm>] : ''})
|
570
|
+
else
|
571
|
+
%(<indexterm>
|
572
|
+
<primary>#{terms[0]}</primary>#{rel}
|
554
573
|
</indexterm>)
|
555
574
|
end
|
556
|
-
result << %(<indexterm>
|
557
|
-
<primary>#{terms[-1]}</primary>
|
558
|
-
</indexterm>)
|
559
|
-
result.join LF
|
560
575
|
end
|
561
576
|
end
|
562
577
|
|
@@ -626,13 +641,13 @@ class Converter::DocBook5Converter < Converter::Base
|
|
626
641
|
end
|
627
642
|
end
|
628
643
|
|
629
|
-
def author_tag author
|
644
|
+
def author_tag doc, author
|
630
645
|
result = []
|
631
646
|
result << '<author>'
|
632
647
|
result << '<personname>'
|
633
|
-
result << %(<firstname>#{author.firstname}</firstname>) if author.firstname
|
634
|
-
result << %(<othername>#{author.middlename}</othername>) if author.middlename
|
635
|
-
result << %(<surname>#{author.lastname}</surname>) if author.lastname
|
648
|
+
result << %(<firstname>#{doc.sub_replacements author.firstname}</firstname>) if author.firstname
|
649
|
+
result << %(<othername>#{doc.sub_replacements author.middlename}</othername>) if author.middlename
|
650
|
+
result << %(<surname>#{doc.sub_replacements author.lastname}</surname>) if author.lastname
|
636
651
|
result << '</personname>'
|
637
652
|
result << %(<email>#{author.email}</email>) if author.email
|
638
653
|
result << '</author>'
|
@@ -663,10 +678,10 @@ class Converter::DocBook5Converter < Converter::Base
|
|
663
678
|
unless (authors = doc.authors).empty?
|
664
679
|
if authors.size > 1
|
665
680
|
result << '<authorgroup>'
|
666
|
-
authors.each {|author| result << (author_tag author) }
|
681
|
+
authors.each {|author| result << (author_tag doc, author) }
|
667
682
|
result << '</authorgroup>'
|
668
683
|
else
|
669
|
-
result << author_tag(author = authors[0])
|
684
|
+
result << (author_tag doc, (author = authors[0]))
|
670
685
|
result << %(<authorinitials>#{author.initials}</authorinitials>) if author.initials
|
671
686
|
end
|
672
687
|
end
|