metanorma-standoc 1.3.24 → 1.3.29
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/.github/workflows/macos.yml +10 -1
- data/.github/workflows/ubuntu.yml +13 -3
- data/.github/workflows/windows.yml +8 -1
- data/lib/asciidoctor/standoc/base.rb +29 -11
- data/lib/asciidoctor/standoc/biblio.rng +75 -28
- data/lib/asciidoctor/standoc/blocks.rb +12 -5
- data/lib/asciidoctor/standoc/cleanup.rb +17 -8
- data/lib/asciidoctor/standoc/cleanup_block.rb +3 -0
- data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +1 -3
- data/lib/asciidoctor/standoc/cleanup_inline.rb +3 -0
- data/lib/asciidoctor/standoc/cleanup_ref.rb +15 -6
- data/lib/asciidoctor/standoc/cleanup_section.rb +36 -8
- data/lib/asciidoctor/standoc/front.rb +5 -3
- data/lib/asciidoctor/standoc/inline.rb +43 -18
- data/lib/asciidoctor/standoc/isodoc.rng +31 -1
- data/lib/asciidoctor/standoc/macros.rb +2 -1
- data/lib/asciidoctor/standoc/macros_yaml2text.rb +142 -0
- data/lib/asciidoctor/standoc/ref.rb +6 -4
- data/lib/asciidoctor/standoc/section.rb +41 -9
- data/lib/asciidoctor/standoc/utils.rb +2 -11
- data/lib/asciidoctor/standoc/validate.rb +8 -2
- data/lib/asciidoctor/standoc/validate_section.rb +1 -3
- data/lib/metanorma/standoc/latexml_requirement.rb +14 -12
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +2 -2
- data/spec/asciidoctor-standoc/base_spec.rb +8 -0
- data/spec/asciidoctor-standoc/blocks_spec.rb +74 -2
- data/spec/asciidoctor-standoc/cleanup_spec.rb +75 -28
- data/spec/asciidoctor-standoc/inline_spec.rb +4 -3
- data/spec/asciidoctor-standoc/macros_spec.rb +9 -8
- data/spec/asciidoctor-standoc/macros_yaml2text_spec.rb +564 -0
- data/spec/asciidoctor-standoc/refs_dl_spec.rb +91 -3
- data/spec/asciidoctor-standoc/refs_spec.rb +272 -166
- data/spec/asciidoctor-standoc/section_spec.rb +197 -6
- data/spec/asciidoctor-standoc/validate_spec.rb +67 -2
- data/spec/assets/codes.yml +695 -0
- data/spec/assets/xref_error.adoc +7 -0
- data/spec/examples/codes_table.html +3174 -0
- data/spec/metanorma/processor_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -0
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +77 -271
- data/spec/vcr_cassettes/isobib_get_123.yml +36 -82
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +17 -40
- data/spec/vcr_cassettes/isobib_get_124.yml +19 -101
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +8 -8
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +34 -34
- metadata +11 -6
@@ -62,6 +62,7 @@ module Asciidoctor
|
|
62
62
|
t.title(**plaintxt) { |i| i << ref_normalise(m[:text]) }
|
63
63
|
docid(t, m[:usrlbl]) if m[:usrlbl]
|
64
64
|
docid(t, id_and_year(m[:code], yr))
|
65
|
+
t.docnumber m[:code].sub(/^[^\d]*/, "")
|
65
66
|
yr and t.date **{ type: "published" } do |d|
|
66
67
|
set_date_range(d, yr)
|
67
68
|
end
|
@@ -78,6 +79,7 @@ module Asciidoctor
|
|
78
79
|
t.title(**plaintxt) { |i| i << ref_normalise(m[:text]) }
|
79
80
|
docid(t, m[:usrlbl]) if m[:usrlbl]
|
80
81
|
docid(t, id_and_year(m[:code], "--"))
|
82
|
+
t.docnumber m[:code].sub(/^[^\d]*/, "")
|
81
83
|
t.date **{ type: "published" } do |d|
|
82
84
|
d.on "--"
|
83
85
|
end
|
@@ -108,6 +110,7 @@ module Asciidoctor
|
|
108
110
|
t.title(**plaintxt) { |i| i << ref_normalise(m[:text]) }
|
109
111
|
docid(t, m[:usrlbl]) if m[:usrlbl]
|
110
112
|
docid(t, id_and_year(m[:code], yr) + " (all parts)")
|
113
|
+
t.docnumber m[:code].sub(/^[^\d]*/, "")
|
111
114
|
conditional_date(t, m, noyr)
|
112
115
|
iso_publisher(t, m[:code])
|
113
116
|
m.names.include?("fn") && m[:fn] and
|
@@ -139,6 +142,7 @@ module Asciidoctor
|
|
139
142
|
end
|
140
143
|
docid(t, m[:usrlbl]) if m[:usrlbl]
|
141
144
|
docid(t, /^\d+$/.match(m[:code]) ? "[#{m[:code]}]" : m[:code])
|
145
|
+
t.docnumber m[:code].sub(/^[^\d]*/, "") unless /^\d+$|^\(.+\)$/.match(m[:code])
|
142
146
|
end
|
143
147
|
end
|
144
148
|
|
@@ -149,7 +153,7 @@ module Asciidoctor
|
|
149
153
|
# TODO: alternative where only title is available
|
150
154
|
def refitem(xml, item, node)
|
151
155
|
unless m = NON_ISO_REF.match(item)
|
152
|
-
@log.add("
|
156
|
+
@log.add("AsciiDoc Input", node, "#{MALFORMED_REF}: #{item}")
|
153
157
|
return
|
154
158
|
end
|
155
159
|
unless m[:code] && /^\d+$/.match(m[:code])
|
@@ -206,9 +210,7 @@ module Asciidoctor
|
|
206
210
|
|
207
211
|
def reference(node)
|
208
212
|
noko do |xml|
|
209
|
-
node.items.each
|
210
|
-
reference1(node, item.text, xml)
|
211
|
-
end
|
213
|
+
node.items.each { |item| reference1(node, item.text, xml) }
|
212
214
|
end.join
|
213
215
|
end
|
214
216
|
|
@@ -53,7 +53,15 @@ module Asciidoctor
|
|
53
53
|
def section_attributes(node)
|
54
54
|
{ id: Utils::anchor_or_uuid(node),
|
55
55
|
language: node.attributes["language"],
|
56
|
-
script: node.attributes["script"]
|
56
|
+
script: node.attributes["script"],
|
57
|
+
annex: (
|
58
|
+
((node.attr("style") == "appendix" || node.role == "appendix") &&
|
59
|
+
node.level == 1) ? true : nil
|
60
|
+
),
|
61
|
+
preface: (
|
62
|
+
(node.role == "preface" || node.attr("style") == "preface") ?
|
63
|
+
true : nil),
|
64
|
+
}
|
57
65
|
end
|
58
66
|
|
59
67
|
def section(node)
|
@@ -75,7 +83,12 @@ module Asciidoctor
|
|
75
83
|
else
|
76
84
|
if @term_def then term_def_subclause_parse(a, xml, node)
|
77
85
|
elsif @definitions then symbols_parse(a, xml, node)
|
86
|
+
elsif @norm_ref then norm_ref_parse(a, xml, node)
|
78
87
|
elsif @biblio then bibliography_parse(a, xml, node)
|
88
|
+
elsif node.attr("style") == "bibliography" && sectiontype(node, false) == "normative references"
|
89
|
+
norm_ref_parse(a, xml, node)
|
90
|
+
elsif node.attr("style") == "bibliography" && sectiontype(node, false) == "bibliography"
|
91
|
+
bibliography_parse(a, xml, node)
|
79
92
|
elsif node.attr("style") == "bibliography"
|
80
93
|
bibliography_parse(a, xml, node)
|
81
94
|
elsif node.attr("style") == "abstract"
|
@@ -118,7 +131,6 @@ module Asciidoctor
|
|
118
131
|
def clause_parse(attrs, xml, node)
|
119
132
|
attrs["inline-header".to_sym] = node.option? "inline-header"
|
120
133
|
attrs[:bibitem] = true if node.option? "bibitem"
|
121
|
-
attrs[:preface] = true if node.role == "preface" || node.attr("style") == "preface"
|
122
134
|
attrs[:level] = node.attr("level")
|
123
135
|
set_obligation(attrs, node)
|
124
136
|
xml.send "clause", **attr_code(attrs) do |xml_section|
|
@@ -137,11 +149,11 @@ module Asciidoctor
|
|
137
149
|
end
|
138
150
|
|
139
151
|
def bibliography_parse(attrs, xml, node)
|
152
|
+
node.option? "bibitem" and return bibitem_parse(attrs, xml, node)
|
140
153
|
node.attr("style") == "bibliography" or
|
141
|
-
|
142
|
-
@log.add("Asciidoctor Input", node, "Section not marked up as [bibliography]!")
|
154
|
+
@log.add("AsciiDoc Input", node, "Section not marked up as [bibliography]!")
|
143
155
|
@biblio = true
|
144
|
-
xml.references **attr_code(attrs) do |xml_section|
|
156
|
+
xml.references **attr_code(attrs.merge(normative: false)) do |xml_section|
|
145
157
|
title = node.level == 1 ? "Bibliography" : node.title
|
146
158
|
xml_section.title { |t| t << title }
|
147
159
|
xml_section << node.content
|
@@ -180,14 +192,16 @@ module Asciidoctor
|
|
180
192
|
|
181
193
|
# subclause contains subclauses
|
182
194
|
def term_def_subclause_parse(attrs, xml, node)
|
183
|
-
node.role == "nonterm"
|
184
|
-
sectiontype(node, false) == "terms and definitions" and
|
195
|
+
node.role == "nonterm" and
|
185
196
|
return nonterm_term_def_subclause_parse(attrs, xml, node)
|
197
|
+
st = sectiontype(node, false)
|
186
198
|
return symbols_parse(attrs, xml, node) if @definitions
|
187
199
|
sub = node.find_by(context: :section) { |s| s.level == node.level + 1 }
|
188
200
|
sub.empty? || (return term_def_parse(attrs, xml, node, false))
|
189
|
-
|
201
|
+
st == "symbols and abbreviated terms" and
|
190
202
|
(return symbols_parse(attrs, xml, node))
|
203
|
+
st == "terms and definitions" and
|
204
|
+
return clause_parse(attrs, xml, node)
|
191
205
|
term_def_subclause_parse1(attrs, xml, node)
|
192
206
|
end
|
193
207
|
|
@@ -204,6 +218,11 @@ module Asciidoctor
|
|
204
218
|
SYMBOLS_TITLES.include? s.title.downcase
|
205
219
|
end
|
206
220
|
return "Terms and definitions" if sub.empty?
|
221
|
+
sym = /symbol/i.match(node.title)
|
222
|
+
abbrev = /abbreviat/i.match(node.title)
|
223
|
+
sym && abbrev and return "Terms, definitions, symbols and abbreviated terms"
|
224
|
+
sym and return "Terms, definitions and symbols"
|
225
|
+
abbrev and return "Terms, definitions and abbreviated terms"
|
207
226
|
"Terms, definitions, symbols and abbreviated terms"
|
208
227
|
end
|
209
228
|
|
@@ -217,9 +236,22 @@ module Asciidoctor
|
|
217
236
|
end
|
218
237
|
end
|
219
238
|
|
239
|
+
def bibitem_parse(attrs, xml, node)
|
240
|
+
norm_ref = @norm_ref
|
241
|
+
biblio = @biblio
|
242
|
+
@biblio = false
|
243
|
+
@norm_ref = false
|
244
|
+
clause_parse(attrs, xml, node)
|
245
|
+
@biblio = biblio
|
246
|
+
@norm_ref = norm_ref
|
247
|
+
end
|
248
|
+
|
220
249
|
def norm_ref_parse(attrs, xml, node)
|
250
|
+
node.option? "bibitem" and return bibitem_parse(attrs, xml, node)
|
251
|
+
node.attr("style") == "bibliography" or
|
252
|
+
@log.add("AsciiDoc Input", node, "Section not marked up as [bibliography]!")
|
221
253
|
@norm_ref = true
|
222
|
-
xml.references **attr_code(attrs) do |xml_section|
|
254
|
+
xml.references **attr_code(attrs.merge(normative: true)) do |xml_section|
|
223
255
|
xml_section.title { |t| t << "Normative References" }
|
224
256
|
xml_section << node.content
|
225
257
|
end
|
@@ -20,7 +20,8 @@ module Asciidoctor
|
|
20
20
|
def asciidoc_sub(x)
|
21
21
|
return nil if x.nil?
|
22
22
|
return "" if x.empty?
|
23
|
-
d = Asciidoctor::Document.new(x.lines.entries, {header_footer: false
|
23
|
+
d = Asciidoctor::Document.new(x.lines.entries, { header_footer: false,
|
24
|
+
backend: :standoc })
|
24
25
|
b = d.parse.blocks.first
|
25
26
|
b.apply_subs(b.source)
|
26
27
|
end
|
@@ -66,16 +67,6 @@ module Asciidoctor
|
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
69
|
-
=begin
|
70
|
-
def warning(node, msg, text)
|
71
|
-
return if @novalid
|
72
|
-
warntext = "asciidoctor: WARNING"\
|
73
|
-
"(#{current_location(node)}): #{msg}"
|
74
|
-
warntext += ": #{text}" if text
|
75
|
-
warn warntext
|
76
|
-
end
|
77
|
-
=end
|
78
|
-
|
79
70
|
def flatten_rawtext_lines(node, result)
|
80
71
|
node.lines.each do |x|
|
81
72
|
if node.respond_to?(:context) && (node.context == :literal ||
|
@@ -25,7 +25,6 @@ module Asciidoctor
|
|
25
25
|
@iev = init_iev or return
|
26
26
|
iev = @iev.fetch(locality, xmldoc&.at("//language")&.text || "en") or next
|
27
27
|
pref.include?(iev.downcase) or
|
28
|
-
#warn %(Term "#{pref[0]}" does not match IEV #{locality} "#{iev}")
|
29
28
|
@log.add("Bibliography", t, %(Term "#{pref[0]}" does not match IEV #{locality} "#{iev}"))
|
30
29
|
end
|
31
30
|
end
|
@@ -38,14 +37,20 @@ module Asciidoctor
|
|
38
37
|
|
39
38
|
def repeat_id_validate(doc)
|
40
39
|
ids = {}
|
40
|
+
crash = false
|
41
41
|
doc.xpath("//*[@id]").each do |x|
|
42
42
|
if ids[x["id"]]
|
43
|
-
|
43
|
+
@log.add("Anchors", x, "Anchor #{x['id']} has already been used at line #{ids[x['id']]}")
|
44
|
+
crash = true
|
44
45
|
else
|
45
46
|
ids[x["id"]] = x.line
|
46
47
|
end
|
47
48
|
end
|
49
|
+
if crash
|
50
|
+
clean_exit
|
51
|
+
abort("Cannot deal with multiple instances of same ID")
|
48
52
|
end
|
53
|
+
end
|
49
54
|
|
50
55
|
def schema_validate(doc, schema)
|
51
56
|
Tempfile.open(["tmp", ".xml"], :encoding => 'UTF-8') do |f|
|
@@ -58,6 +63,7 @@ module Asciidoctor
|
|
58
63
|
@log.add("Syntax", "XML Line #{"%06d" % error[:line]}:#{error[:column]}", error[:message])
|
59
64
|
end
|
60
65
|
rescue Jing::Error => e
|
66
|
+
clean_exit
|
61
67
|
abort "Jing failed with error: #{e}"
|
62
68
|
ensure
|
63
69
|
f.close!
|
@@ -14,8 +14,7 @@ module Asciidoctor
|
|
14
14
|
callouts = x.elements.select { |e| e.name == "callout" }
|
15
15
|
annotations = x.elements.select { |e| e.name == "annotation" }
|
16
16
|
if callouts.size != annotations.size
|
17
|
-
|
18
|
-
@log.add("Asciidoctor Input", x, "mismatch of callouts and annotations")
|
17
|
+
@log.add("AsciiDoc Input", x, "mismatch of callouts and annotations")
|
19
18
|
end
|
20
19
|
end
|
21
20
|
end
|
@@ -23,7 +22,6 @@ module Asciidoctor
|
|
23
22
|
def style_warning(node, msg, text = nil)
|
24
23
|
w = msg
|
25
24
|
w += ": #{text}" if text
|
26
|
-
#warn w
|
27
25
|
@log.add("Style Warning", node, w)
|
28
26
|
end
|
29
27
|
|
@@ -11,31 +11,33 @@ module Metanorma
|
|
11
11
|
version = version_output&.match(%r{\d+(.\d+)*})
|
12
12
|
|
13
13
|
if version.to_s.empty?
|
14
|
-
@error_message = "LaTeXML not
|
15
|
-
|
14
|
+
@error_message = "LaTeXML is not available. (Or is PATH not setup properly?)"\
|
15
|
+
" You must upgrade/install LaTeXML to a version higher than `#{@recommended_version}`"
|
16
16
|
|
17
17
|
elsif Gem::Version.new(version) < Gem::Version.new(@minimal_version)
|
18
|
-
@error_message = "Minimal supported LaTeXML version is
|
19
|
-
"
|
18
|
+
@error_message = "Minimal supported LaTeXML version is `#{@minimal_version}` "\
|
19
|
+
"Version `#{version}` found; recommended version is `#{@recommended_version}`"
|
20
20
|
|
21
21
|
elsif Gem::Version.new(version) < Gem::Version.new(@recommended_version)
|
22
22
|
version = "unknown" if version.to_s.empty?
|
23
|
-
header_msg = "latexmlmath version
|
23
|
+
header_msg = "latexmlmath version `#{version}` below `#{@recommended_version}`!"
|
24
24
|
suggestion = if Gem.win_platform?
|
25
25
|
"cmd encoding is set to UTF-8 with `chcp 65001`"
|
26
26
|
else
|
27
27
|
"terminal encoding is set to UTF-8 with `export LANG=en_US.UTF-8`"
|
28
28
|
end
|
29
29
|
|
30
|
-
@error_message = "WARNING #{header_msg} Please sure that #{suggestion} command"
|
30
|
+
@error_message = "WARNING #{header_msg} Please sure that #{suggestion} command."
|
31
31
|
|
32
|
-
@cmd =
|
32
|
+
@cmd = 'latexmlmath --strict --preload=amsmath -- -'
|
33
|
+
@cmd2 = 'latexmlmath --strict -- -'
|
33
34
|
else
|
34
|
-
@cmd =
|
35
|
+
@cmd = 'latexmlmath --strict --preload=amsmath --inputencoding=UTF-8 -- -'
|
36
|
+
@cmd2 = 'latexmlmath --strict --inputencoding=UTF-8 -- -'
|
35
37
|
end
|
36
38
|
rescue
|
37
|
-
@error_message = "LaTeXML not
|
38
|
-
" You must upgrade/install LaTeXML to
|
39
|
+
@error_message = "LaTeXML is not available. (Or is PATH not setup properly?)"\
|
40
|
+
" You must upgrade/install LaTeXML to a version higher than `#{@recommended_version}`"
|
39
41
|
end
|
40
42
|
|
41
43
|
def satisfied(abort = false)
|
@@ -53,8 +55,8 @@ module Metanorma
|
|
53
55
|
def cmd
|
54
56
|
abort @error_message unless @error_message.nil?
|
55
57
|
|
56
|
-
@cmd
|
58
|
+
[@cmd, @cmd2]
|
57
59
|
end
|
58
60
|
end
|
59
61
|
end
|
60
|
-
end
|
62
|
+
end
|
data/metanorma-standoc.gemspec
CHANGED
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.add_dependency "ruby-jing"
|
31
31
|
spec.add_dependency "isodoc", "~> 1.0.20"
|
32
32
|
spec.add_dependency "iev", "~> 0.2.1"
|
33
|
-
spec.add_dependency "relaton", "~> 0.
|
34
|
-
spec.add_dependency "relaton-iev", "~>
|
33
|
+
spec.add_dependency "relaton", "~> 1.0.0"
|
34
|
+
spec.add_dependency "relaton-iev", "~> 1.0.0"
|
35
35
|
spec.add_dependency "sterile", "~> 1.0.14"
|
36
36
|
spec.add_dependency "concurrent-ruby"
|
37
37
|
spec.add_dependency "unicode2latex", "~> 0.0.1"
|
@@ -53,6 +53,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
53
53
|
:issued-date: 1007-01-01
|
54
54
|
:circulated-date: 1008-01-01
|
55
55
|
:unchanged-date: 1009-01-01
|
56
|
+
:vote-started-date: 1011-01-01
|
57
|
+
:vote-ended-date: 1012-01-01
|
56
58
|
:date: Fred 1010-01-01
|
57
59
|
:date_2: Jack 1010-01-01
|
58
60
|
:draft: 3.4
|
@@ -141,6 +143,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
141
143
|
<date type="unchanged">
|
142
144
|
<on>1009-01-01</on>
|
143
145
|
</date>
|
146
|
+
<date type='vote-started'>
|
147
|
+
<on>1011-01-01</on>
|
148
|
+
</date>
|
149
|
+
<date type='vote-ended'>
|
150
|
+
<on>1012-01-01</on>
|
151
|
+
</date>
|
144
152
|
<date type="Fred">
|
145
153
|
<on>1010-01-01</on>
|
146
154
|
</date>
|
@@ -6,13 +6,14 @@ RSpec.describe Asciidoctor::Standoc do
|
|
6
6
|
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
7
7
|
#{ASCIIDOC_BLANK_HDR}
|
8
8
|
|
9
|
+
[format="rfc,html"]
|
9
10
|
++++
|
10
11
|
<abc>X > Y</abc>
|
11
12
|
++++
|
12
13
|
INPUT
|
13
14
|
#{BLANK_HDR}
|
14
15
|
<sections>
|
15
|
-
<abc
|
16
|
+
<passthrough formats='rfc,html'><abc>X > Y</abc></passthrough>
|
16
17
|
</sections>
|
17
18
|
</standard-document>
|
18
19
|
OUTPUT
|
@@ -75,7 +76,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
75
76
|
</formula>
|
76
77
|
<formula id="_" subsequence="A">
|
77
78
|
<stem type="MathML">
|
78
|
-
<math xmlns="http://www.w3.org/1998/Math/MathML"
|
79
|
+
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
|
79
80
|
<mrow>
|
80
81
|
<mi>M</mi>
|
81
82
|
<mo>=</mo>
|
@@ -309,6 +310,11 @@ RSpec.describe Asciidoctor::Standoc do
|
|
309
310
|
=== Term1
|
310
311
|
|
311
312
|
NOTE: This is a note
|
313
|
+
|
314
|
+
[NOTE,keep-separate=true]
|
315
|
+
====
|
316
|
+
XYZ
|
317
|
+
====
|
312
318
|
INPUT
|
313
319
|
#{BLANK_HDR}
|
314
320
|
<sections>
|
@@ -320,6 +326,9 @@ RSpec.describe Asciidoctor::Standoc do
|
|
320
326
|
<termnote id="_">
|
321
327
|
<p id="_">This is a note</p>
|
322
328
|
</termnote>
|
329
|
+
<termnote id='_'>
|
330
|
+
<p id='_'>XYZ</p>
|
331
|
+
</termnote>
|
323
332
|
</term>
|
324
333
|
</terms>
|
325
334
|
</sections>
|
@@ -394,6 +403,11 @@ RSpec.describe Asciidoctor::Standoc do
|
|
394
403
|
|
395
404
|
[[ABC]]
|
396
405
|
NOTE: This is a note
|
406
|
+
|
407
|
+
[NOTE,keep-separate=true]
|
408
|
+
====
|
409
|
+
XYZ
|
410
|
+
====
|
397
411
|
INPUT
|
398
412
|
#{BLANK_HDR}
|
399
413
|
<preface><foreword id="_" obligation="informative">
|
@@ -407,6 +421,9 @@ RSpec.describe Asciidoctor::Standoc do
|
|
407
421
|
<note id="ABC">
|
408
422
|
<p id="_">This is a note</p>
|
409
423
|
</note>
|
424
|
+
<note id='_'>
|
425
|
+
<p id='_'>XYZ</p>
|
426
|
+
</note>
|
410
427
|
</clause></sections>
|
411
428
|
|
412
429
|
</standard-document>
|
@@ -924,6 +941,19 @@ RSpec.describe Asciidoctor::Standoc do
|
|
924
941
|
|
925
942
|
[.source]
|
926
943
|
<<ISO2191,section=1>>
|
944
|
+
|
945
|
+
=== Term2
|
946
|
+
|
947
|
+
Definition
|
948
|
+
|
949
|
+
[.source]
|
950
|
+
{{IEV:xyz}}
|
951
|
+
|
952
|
+
[.source]
|
953
|
+
{{IEV:xyz,t1}}
|
954
|
+
|
955
|
+
[.source]
|
956
|
+
{{IEV:xyz,t1,t2}}
|
927
957
|
INPUT
|
928
958
|
#{BLANK_HDR}
|
929
959
|
<sections>
|
@@ -940,6 +970,27 @@ RSpec.describe Asciidoctor::Standoc do
|
|
940
970
|
</origin>
|
941
971
|
</termsource>
|
942
972
|
</term>
|
973
|
+
<term id='_'>
|
974
|
+
<preferred>Term2</preferred>
|
975
|
+
<definition>
|
976
|
+
<p id='_'>Definition</p>
|
977
|
+
</definition>
|
978
|
+
<termsource status='identical'>
|
979
|
+
<origin citeas=''>
|
980
|
+
<termref base='IEV' target='xyz'/>
|
981
|
+
</origin>
|
982
|
+
</termsource>
|
983
|
+
<termsource status='identical'>
|
984
|
+
<origin citeas=''>
|
985
|
+
<termref base='IEV' target='xyz'>t1</termref>
|
986
|
+
</origin>
|
987
|
+
</termsource>
|
988
|
+
<termsource status='identical'>
|
989
|
+
<origin citeas=''>
|
990
|
+
<termref base='IEV' target='xyz'>t1</termref>
|
991
|
+
</origin>
|
992
|
+
</termsource>
|
993
|
+
</term>
|
943
994
|
</terms>
|
944
995
|
</sections>
|
945
996
|
</standard-document>
|
@@ -955,6 +1006,13 @@ RSpec.describe Asciidoctor::Standoc do
|
|
955
1006
|
|
956
1007
|
[.source]
|
957
1008
|
<<ISO2191,section=1>>, with adjustments
|
1009
|
+
|
1010
|
+
=== Term2
|
1011
|
+
|
1012
|
+
Definition
|
1013
|
+
|
1014
|
+
[.source]
|
1015
|
+
{{IEV:xyz}}, with adjustments
|
958
1016
|
INPUT
|
959
1017
|
#{BLANK_HDR}
|
960
1018
|
<sections>
|
@@ -975,6 +1033,20 @@ RSpec.describe Asciidoctor::Standoc do
|
|
975
1033
|
</modification>
|
976
1034
|
</termsource>
|
977
1035
|
</term>
|
1036
|
+
<term id='_'>
|
1037
|
+
<preferred>Term2</preferred>
|
1038
|
+
<definition>
|
1039
|
+
<p id='_'>Definition</p>
|
1040
|
+
</definition>
|
1041
|
+
<termsource status='modified'>
|
1042
|
+
<origin citeas=''>
|
1043
|
+
<termref base='IEV' target='xyz'/>
|
1044
|
+
</origin>
|
1045
|
+
<modification>
|
1046
|
+
<p id='_'>with adjustments</p>
|
1047
|
+
</modification>
|
1048
|
+
</termsource>
|
1049
|
+
</term>
|
978
1050
|
</terms>
|
979
1051
|
</sections>
|
980
1052
|
</standard-document>
|