metanorma-iso 1.3.8 → 1.3.9
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/iso/biblio.rng +1 -1
- data/lib/asciidoctor/iso/cleanup.rb +32 -5
- data/lib/asciidoctor/iso/iso_intro.xml +46 -0
- data/lib/asciidoctor/iso/validate_section.rb +2 -2
- data/lib/isodoc/iso/base_convert.rb +31 -8
- data/lib/isodoc/iso/html/html_iso_intro.html +1 -27
- data/lib/isodoc/iso/html/html_iso_titlepage.html +3 -2
- data/lib/isodoc/iso/html/isodoc.scss +51 -3
- data/lib/isodoc/iso/html/word_iso_intro.html +2 -64
- data/lib/isodoc/iso/html/word_iso_titlepage.html +6 -3
- data/lib/isodoc/iso/html_convert.rb +40 -7
- data/lib/isodoc/iso/word_convert.rb +56 -6
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/asciidoctor-iso/base_spec.rb +5 -5
- data/spec/isodoc/postproc_spec.rb +103 -4
- data/spec/spec_helper.rb +8 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8dc143503bcfc2ff91eb0c405c76219646009e57557038f35cc2e0ed1ff72a91
|
4
|
+
data.tar.gz: 93f9648e76ad5d099cd967d726000d8ebbc06821a0c2d9f807274eaa3a10e071
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f09feffde8baad445d16fea77828d154515cedd1b79f8692711092292875e55d423668a9429c3a708ede2c12a467e1ea8d3c255a38e035fa85678265498022d
|
7
|
+
data.tar.gz: f383f811b962a3fcbf517fff73bc7322fab6718f8925aef237b40c917c71d565fd3db0f4f82a52f41cdfada039c106069970f50b80688aa01961152d66fffb8e
|
@@ -58,6 +58,8 @@ module Asciidoctor
|
|
58
58
|
end
|
59
59
|
|
60
60
|
PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
|
61
|
+
OTHERIDS = "@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or "\
|
62
|
+
"@type = 'ISBN'".freeze
|
61
63
|
|
62
64
|
def pub_class(bib)
|
63
65
|
return 1 if bib.at("#{PUBLISHER}[abbreviation = 'ISO']")
|
@@ -66,8 +68,7 @@ module Asciidoctor
|
|
66
68
|
return 2 if bib.at("#{PUBLISHER}[abbreviation = 'IEC']")
|
67
69
|
return 2 if bib.at("#{PUBLISHER}[name = 'International "\
|
68
70
|
"Electrotechnical Commission']")
|
69
|
-
return 3 if bib.at("./docidentifier[@type][not(
|
70
|
-
"@type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN')]")
|
71
|
+
return 3 if bib.at("./docidentifier[@type][not(#{OTHERIDS})]")
|
71
72
|
4
|
72
73
|
end
|
73
74
|
|
@@ -87,14 +88,40 @@ module Asciidoctor
|
|
87
88
|
def sort_biblio_key(bib)
|
88
89
|
pubclass = pub_class(bib)
|
89
90
|
num = bib&.at("./docnumber")&.text
|
90
|
-
id = bib&.at("./docidentifier[not(
|
91
|
-
"@type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN')]")
|
91
|
+
id = bib&.at("./docidentifier[not(#{OTHERIDS})]")
|
92
92
|
metaid = bib&.at("./docidentifier[@type = 'metanorma']")&.text
|
93
93
|
abbrid = metaid unless /^\[\d+\]$/.match(metaid)
|
94
94
|
type = id['type'] if id
|
95
95
|
title = bib&.at("./title[@type = 'main']")&.text ||
|
96
96
|
bib&.at("./title")&.text || bib&.at("./formattedref")&.text
|
97
|
-
"#{pubclass} :: #{type} ::
|
97
|
+
"#{pubclass} :: #{type} :: "\
|
98
|
+
"#{num.nil? ? abbrid : sprintf("%09d", num.to_i)} :: "\
|
99
|
+
"#{id&.text} :: #{title}"
|
100
|
+
end
|
101
|
+
|
102
|
+
def boilerplate_cleanup(xmldoc)
|
103
|
+
super
|
104
|
+
initial_boilerplace(xmldoc)
|
105
|
+
end
|
106
|
+
|
107
|
+
def initial_boilerplace(x)
|
108
|
+
return if x.at("//boilerplate")
|
109
|
+
preface = x.at("//preface") || x.at("//sections") || x.at("//annex") ||
|
110
|
+
x.at("//references") || return
|
111
|
+
preface.previous = boilerplate(x)
|
112
|
+
end
|
113
|
+
|
114
|
+
def boilerplate(x_orig)
|
115
|
+
x = x_orig.dup
|
116
|
+
# TODO variable
|
117
|
+
x.root.add_namespace(nil, "http://riboseinc.com/isoxml")
|
118
|
+
x = Nokogiri::XML(x.to_xml)
|
119
|
+
conv = IsoDoc::Iso::HtmlConvert.new({})
|
120
|
+
conv.metadata_init("en", "Latn", {})
|
121
|
+
conv.info(x, nil)
|
122
|
+
file = @boilerplateauthority ? "#{@localdir}/#{@boilerplateauthority}" :
|
123
|
+
File.join(File.dirname(__FILE__), "iso_intro.xml")
|
124
|
+
conv.populate_template((File.read(file, encoding: "UTF-8")), nil)
|
98
125
|
end
|
99
126
|
end
|
100
127
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
<boilerplate>
|
2
|
+
<copyright-statement>
|
3
|
+
<clause>
|
4
|
+
<p id="authority1">
|
5
|
+
© {{ agency }} {{ docyear }}, Published in Switzerland
|
6
|
+
</p>
|
7
|
+
|
8
|
+
<p id="authority2">
|
9
|
+
All rights
|
10
|
+
reserved. Unless otherwise specified, no part of this publication may be
|
11
|
+
reproduced or utilized otherwise in any form or by any means, electronic or
|
12
|
+
mechanical, including photocopying, or posting on the internet or an intranet,
|
13
|
+
without prior written permission. Permission can be requested from either ISO
|
14
|
+
at the address below or ISO's member body in the country of the requester.
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<p id="authority3" align="left">
|
18
|
+
ISO copyright office<br/>
|
19
|
+
Ch. de Blandonnet 8 • CP 401<br/>
|
20
|
+
CH-1214 Vernier, Geneva, Switzerland<br/>
|
21
|
+
Tel. + 41 22 749 01 11<br/>
|
22
|
+
Fax + 41 22 749 09 47<br/>
|
23
|
+
copyright@iso.org<br/>
|
24
|
+
www.iso.org
|
25
|
+
</p>
|
26
|
+
</clause>
|
27
|
+
</copyright-statement>
|
28
|
+
|
29
|
+
{% if unpublished %}
|
30
|
+
<license-statement>
|
31
|
+
<clause>
|
32
|
+
<title>Warning for WDs and CDs</title>
|
33
|
+
|
34
|
+
<p>This
|
35
|
+
document is not an ISO International Standard. It is distributed for review and
|
36
|
+
comment. It is subject to change without notice and may not be referred to as
|
37
|
+
an International Standard.</p>
|
38
|
+
|
39
|
+
<p>Recipients
|
40
|
+
of this draft are invited to submit, with their comments, notification of any
|
41
|
+
relevant patent rights of which they are aware and to provide supporting
|
42
|
+
documentation.</p>
|
43
|
+
</clause>
|
44
|
+
</license-statement>
|
45
|
+
{% endif %}
|
46
|
+
</boilerplate>
|
@@ -164,8 +164,8 @@ module Asciidoctor
|
|
164
164
|
end
|
165
165
|
|
166
166
|
ASSETS_TO_STYLE =
|
167
|
-
"//termsource | //formula | //termnote | //p
|
168
|
-
"//dt | //dd[not(p)] | //td[not(p)] | //th[not(p)]".freeze
|
167
|
+
"//termsource | //formula | //termnote | //p[not(ancestor::boilerplate)] | "\
|
168
|
+
"//li[not(p)] | //dt | //dd[not(p)] | //td[not(p)] | //th[not(p)]".freeze
|
169
169
|
|
170
170
|
NORM_BIBITEMS =
|
171
171
|
"//references[title = 'Normative References']/bibitem".freeze
|
@@ -58,6 +58,14 @@ module IsoDoc
|
|
58
58
|
def error_parse(node, out)
|
59
59
|
case node.name
|
60
60
|
when "appendix" then clause_parse(node, out)
|
61
|
+
when "copyright-statement"
|
62
|
+
out.div **{class: "copyright"} do |div|
|
63
|
+
node.children.each { |n| parse(n, div) }
|
64
|
+
end
|
65
|
+
when "license-statement"
|
66
|
+
out.div **{class: "license"} do |div|
|
67
|
+
node.children.each { |n| parse(n, out) }
|
68
|
+
end
|
61
69
|
else
|
62
70
|
super
|
63
71
|
end
|
@@ -125,15 +133,15 @@ module IsoDoc
|
|
125
133
|
end
|
126
134
|
|
127
135
|
def example_span_label(node, div, name)
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
136
|
+
n = get_anchors[node["id"]]
|
137
|
+
div.span **{ class: "example_label" } do |p|
|
138
|
+
lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @example_lbl :
|
139
|
+
l10n("#{@example_lbl} #{n[:label]}")
|
140
|
+
p << lbl
|
141
|
+
name and !lbl.nil? and p << " — "
|
142
|
+
name and name.children.each { |n| parse(n, div) }
|
143
|
+
end
|
135
144
|
end
|
136
|
-
end
|
137
145
|
|
138
146
|
def example_p_parse(node, div)
|
139
147
|
name = node&.at(ns("./name"))&.remove
|
@@ -189,6 +197,21 @@ module IsoDoc
|
|
189
197
|
def clausedelim
|
190
198
|
""
|
191
199
|
end
|
200
|
+
|
201
|
+
def boilerplate(node, out)
|
202
|
+
boilerplate = node.at(ns("//boilerplate")) or return
|
203
|
+
out.div **{class: "authority"} do |s|
|
204
|
+
boilerplate.children.each do |n|
|
205
|
+
if n.name == "title"
|
206
|
+
s.h1 do |h|
|
207
|
+
n.children.each { |nn| parse(nn, h) }
|
208
|
+
end
|
209
|
+
else
|
210
|
+
parse(n, s)
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
192
215
|
end
|
193
216
|
end
|
194
217
|
end
|
@@ -1,30 +1,4 @@
|
|
1
|
-
<div
|
2
|
-
<p class="year">
|
3
|
-
© {{ agency }} {{ docyear }}, Published in Switzerland
|
4
|
-
</p>
|
5
|
-
|
6
|
-
<p class="message">
|
7
|
-
All rights
|
8
|
-
reserved. Unless otherwise specified, no part of this publication may be
|
9
|
-
reproduced or utilized otherwise in any form or by any means, electronic or
|
10
|
-
mechanical, including photocopying, or posting on the internet or an intranet,
|
11
|
-
without prior written permission. Permission can be requested from either ISO
|
12
|
-
at the address below or ISO’s member body in the country of the requester.
|
13
|
-
</p>
|
14
|
-
|
15
|
-
<p class="name">ISO copyright office</p>
|
16
|
-
<p class="address">
|
17
|
-
Ch. de Blandonnet 8 • CP 401<br/>
|
18
|
-
CH-1214 Vernier, Geneva, Switzerland<br/>
|
19
|
-
Tel. + 41 22 749 01 11<br/>
|
20
|
-
Fax + 41 22 749 09 47<br/>
|
21
|
-
copyright@iso.org<br/>
|
22
|
-
www.iso.org
|
23
|
-
</p>
|
24
|
-
</div>
|
25
|
-
|
26
|
-
|
27
|
-
</div>
|
1
|
+
<div id="copyright"/>
|
28
2
|
|
29
3
|
<nav>
|
30
4
|
|
@@ -44,7 +44,8 @@ name="CVP_Secretariat_Loca">Secretariat</a>: {{ secretariat }}</p>
|
|
44
44
|
|
45
45
|
{% if unpublished %}
|
46
46
|
<div class="coverpage_warning">
|
47
|
-
|
47
|
+
<div id="license"/>
|
48
|
+
<!--
|
48
49
|
<p>Warning for WDs
|
49
50
|
and CDs</p>
|
50
51
|
|
@@ -57,6 +58,6 @@ an International Standard.</p>
|
|
57
58
|
of this draft are invited to submit, with their comments, notification of any
|
58
59
|
relevant patent rights of which they are aware and to provide supporting
|
59
60
|
documentation.</p>
|
60
|
-
|
61
|
+
-->
|
61
62
|
</div>
|
62
63
|
{% endif %}
|
@@ -379,15 +379,12 @@ p.zzCopyright, li.zzCopyright, div.zzCopyright
|
|
379
379
|
mso-style-unhide:no;
|
380
380
|
mso-style-next:Normal;
|
381
381
|
margin-top:0cm;
|
382
|
-
margin-right:14.2pt;
|
383
382
|
margin-bottom:12.0pt;
|
384
|
-
margin-left:14.2pt;
|
385
383
|
text-align:justify;
|
386
384
|
line-height:12.0pt;
|
387
385
|
mso-pagination:widow-orphan;
|
388
386
|
tab-stops:20.15pt 25.7pt 481.15pt;
|
389
387
|
border:none;
|
390
|
-
mso-border-alt:solid blue .5pt;
|
391
388
|
padding:0cm;
|
392
389
|
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
|
393
390
|
font-size:11.0pt;
|
@@ -395,6 +392,57 @@ p.zzCopyright, li.zzCopyright, div.zzCopyright
|
|
395
392
|
mso-fareast-font-family:$bodyfont;
|
396
393
|
mso-bidi-font-family:$bodyfont;
|
397
394
|
mso-ansi-language:EN-GB;}
|
395
|
+
p.zzCopyright1
|
396
|
+
{mso-style-name:zzCopyright;
|
397
|
+
mso-style-noshow:yes;
|
398
|
+
mso-style-unhide:no;
|
399
|
+
mso-style-next:Normal;
|
400
|
+
margin-top:0cm;
|
401
|
+
margin-bottom:12.0pt;
|
402
|
+
text-align:justify;
|
403
|
+
line-height:12.0pt;
|
404
|
+
mso-pagination:widow-orphan;
|
405
|
+
tab-stops:20.15pt 25.7pt 481.15pt;
|
406
|
+
border:none;
|
407
|
+
padding:0cm;
|
408
|
+
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
|
409
|
+
font-size:10.0pt;
|
410
|
+
font-family:$bodyfont;
|
411
|
+
mso-fareast-font-family:$bodyfont;
|
412
|
+
mso-bidi-font-family:$bodyfont;
|
413
|
+
mso-ansi-language:EN-GB;}
|
414
|
+
p.zzAddress {
|
415
|
+
margin:0cm;
|
416
|
+
margin-bottom:.0001pt;
|
417
|
+
margin-left:20.15pt;
|
418
|
+
mso-layout-grid-align:none;
|
419
|
+
text-autospace:none;
|
420
|
+
padding:0cm;
|
421
|
+
mso-padding-alt:0cm 4.0pt 0cm 4.0pt;
|
422
|
+
font-size:10.0pt;
|
423
|
+
font-family:$bodyfont;
|
424
|
+
}
|
425
|
+
p.zzWarning {
|
426
|
+
border:none;
|
427
|
+
mso-border-alt:solid windowtext .5pt;
|
428
|
+
padding:0cm;
|
429
|
+
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
|
430
|
+
font-size:10.0pt;
|
431
|
+
mso-bidi-font-weight:bold;
|
432
|
+
font-family:$bodyfont;
|
433
|
+
}
|
434
|
+
p.zzWarningHdr {
|
435
|
+
margin-bottom:6.0pt;
|
436
|
+
border:none;
|
437
|
+
mso-border-alt:solid windowtext .5pt;
|
438
|
+
padding:0cm;
|
439
|
+
mso-padding-alt:1.0pt 4.0pt 1.0pt 4.0pt;
|
440
|
+
font-size:10.0pt;
|
441
|
+
mso-bidi-font-weight:bold;
|
442
|
+
font-family:$bodyfont;
|
443
|
+
text-align:center;
|
444
|
+
font-weight:bold;
|
445
|
+
}
|
398
446
|
p.zzSTDTitle, li.zzSTDTitle, div.zzSTDTitle
|
399
447
|
{mso-style-name:zzSTDTitle;
|
400
448
|
mso-style-noshow:yes;
|
@@ -1,70 +1,8 @@
|
|
1
1
|
<div style='mso-element:para-border-div;border:solid windowtext 1.0pt;
|
2
|
-
border-bottom:
|
2
|
+
border-bottom-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:
|
3
3
|
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:1.0pt 4.0pt 0cm 4.0pt;
|
4
4
|
margin-left:5.1pt;margin-right:5.1pt'>
|
5
|
-
|
6
|
-
<p class="zzCopyright" align="left" style='margin-top:2.0pt;margin-right:0cm;
|
7
|
-
margin-bottom:12.0pt;margin-left:0cm;text-align:left;page-break-before:always;
|
8
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-top-alt:
|
9
|
-
solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;mso-border-right-alt:
|
10
|
-
solid windowtext .5pt;padding:0cm;mso-padding-alt:1.0pt 4.0pt 0cm 4.0pt'><span
|
11
|
-
lang="EN-GB" style='color:windowtext'>© {{ agency }} {{ docyear }}, Published in Switzerland.<o:p></o:p></span></p>
|
12
|
-
|
13
|
-
<p class="zzCopyright" style='margin-top:0cm;margin-right:0cm;margin-bottom:12.0pt;
|
14
|
-
margin-left:0cm;mso-layout-grid-align:none;text-autospace:none;border:none;
|
15
|
-
mso-border-left-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;
|
16
|
-
padding:0cm;mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB"
|
17
|
-
style='font-size:10.0pt;mso-bidi-font-size:11.0pt;color:windowtext'>All rights
|
18
|
-
reserved. Unless otherwise specified, no part of this publication may be
|
19
|
-
reproduced or utilized otherwise in any form or by any means, electronic or
|
20
|
-
mechanical, including photocopying, or posting on the internet or an intranet,
|
21
|
-
without prior written permission. Permission can be requested from either ISO
|
22
|
-
at the address below or ISO’s member body in the country of the requester.<o:p></o:p></span></p>
|
23
|
-
|
24
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
25
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
26
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
27
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
28
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>ISO copyright office<o:p></o:p></span></p>
|
29
|
-
|
30
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
31
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
32
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
33
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
34
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>Ch. de Blandonnet 8 • CP 401<o:p></o:p></span></p>
|
35
|
-
|
36
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
37
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
38
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
39
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
40
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>CH-1214 Vernier, Geneva,
|
41
|
-
Switzerland<o:p></o:p></span></p>
|
42
|
-
|
43
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
44
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
45
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
46
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
47
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>Tel. + 41 22 749 01 11<o:p></o:p></span></p>
|
48
|
-
|
49
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
50
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
51
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
52
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
53
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>Fax + 41 22 749 09 47<o:p></o:p></span></p>
|
54
|
-
|
55
|
-
<p class="zzCopyright" style='margin:0cm;margin-bottom:.0001pt;text-indent:20.15pt;
|
56
|
-
mso-layout-grid-align:none;text-autospace:none;border:none;mso-border-left-alt:
|
57
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
58
|
-
mso-padding-alt:0cm 4.0pt 0cm 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
59
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>copyright@iso.org<o:p></o:p></span></p>
|
60
|
-
|
61
|
-
<p class="zzCopyright" style='margin-top:0cm;margin-right:0cm;margin-bottom:12.0pt;
|
62
|
-
margin-left:0cm;text-indent:20.15pt;mso-layout-grid-align:none;text-autospace:
|
63
|
-
none;border:none;mso-border-left-alt:solid windowtext .5pt;mso-border-bottom-alt:
|
64
|
-
solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;padding:0cm;
|
65
|
-
mso-padding-alt:0cm 4.0pt 1.0pt 4.0pt'><span lang="EN-GB" style='font-size:10.0pt;
|
66
|
-
mso-bidi-font-size:11.0pt;color:windowtext'>www.iso.org<o:p></o:p></span></p>
|
67
|
-
|
5
|
+
<div id="copyright"/>
|
68
6
|
</div>
|
69
7
|
|
70
8
|
<p class="zzContents" style='margin-top:0cm'><span lang="EN-GB">Contents</span></p>
|
@@ -60,11 +60,14 @@ lang="EN-GB" style='font-size:40.0pt'>{% if unpublished %}{{ stageabbr }} stage{
|
|
60
60
|
<p class="MsoNormal" style='margin-bottom:6.0pt'><span lang="EN-GB"><o:p> </o:p></span></p>
|
61
61
|
|
62
62
|
{% if unpublished %}
|
63
|
-
|
63
|
+
<!--
|
64
64
|
<div style='mso-element:para-border-div;border:solid windowtext 1.0pt;
|
65
65
|
mso-border-alt:solid windowtext .5pt;padding:1.0pt 4.0pt 1.0pt 4.0pt;
|
66
66
|
margin-left:4.25pt;margin-right:4.25pt'>
|
67
|
+
-->
|
67
68
|
|
69
|
+
<div id="license"/>
|
70
|
+
<!--
|
68
71
|
<p class="MsoNormal" align="center" style='margin-bottom:6.0pt;text-align:center;
|
69
72
|
border:none;mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:
|
70
73
|
1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:normal'><span
|
@@ -85,9 +88,9 @@ of this draft are invited to submit, with their comments, notification of any
|
|
85
88
|
relevant patent rights of which they are aware and to provide supporting
|
86
89
|
documentation.</span><span lang="EN-GB" style='font-size:10.0pt;mso-bidi-font-size:
|
87
90
|
11.0pt'><o:p></o:p></span></p>
|
88
|
-
|
91
|
+
-->
|
89
92
|
{% endif %}
|
90
93
|
|
91
|
-
|
94
|
+
<!--</div>-->
|
92
95
|
|
93
96
|
|
@@ -12,18 +12,22 @@ module IsoDoc
|
|
12
12
|
|
13
13
|
def default_fonts(options)
|
14
14
|
{
|
15
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
16
|
-
|
17
|
-
|
15
|
+
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
16
|
+
options[:alt] ? '"Lato",sans-serif' : '"Cambria",serif'),
|
17
|
+
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
18
|
+
options[:alt] ? '"Lato",sans-serif' : '"Cambria",serif'),
|
19
|
+
monospacefont: (options[:alt] ? '"Space Mono",monospace' :
|
20
|
+
'"Courier New",monospace'),
|
18
21
|
}
|
19
22
|
end
|
20
23
|
|
21
24
|
def default_file_locations(options)
|
22
25
|
{
|
23
|
-
htmlstylesheet: options[:alt] ? html_doc_path("style-human.scss") :
|
24
|
-
|
25
|
-
|
26
|
-
|
26
|
+
htmlstylesheet: (options[:alt] ? html_doc_path("style-human.scss") :
|
27
|
+
html_doc_path("style-iso.scss")),
|
28
|
+
htmlcoverpage: html_doc_path("html_iso_titlepage.html"),
|
29
|
+
htmlintropage: html_doc_path("html_iso_intro.html"),
|
30
|
+
scripts: html_doc_path("scripts.html"),
|
27
31
|
}
|
28
32
|
end
|
29
33
|
|
@@ -36,6 +40,35 @@ module IsoDoc
|
|
36
40
|
insert
|
37
41
|
end
|
38
42
|
|
43
|
+
def make_body3(body, docxml)
|
44
|
+
body.div **{ class: "main-section" } do |div3|
|
45
|
+
boilerplate docxml, div3
|
46
|
+
abstract docxml, div3
|
47
|
+
foreword docxml, div3
|
48
|
+
introduction docxml, div3
|
49
|
+
middle docxml, div3
|
50
|
+
footnotes div3
|
51
|
+
comments div3
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
def html_preface(docxml)
|
56
|
+
super
|
57
|
+
authority_cleanup(docxml)
|
58
|
+
docxml
|
59
|
+
end
|
60
|
+
|
61
|
+
def authority_cleanup(docxml)
|
62
|
+
dest = docxml.at("//div[@id = 'copyright']")
|
63
|
+
auth = docxml.at("//div[@class = 'copyright']")
|
64
|
+
auth&.xpath(".//h1 | .//h2")&.each { |h| h["class"] = "IntroTitle" }
|
65
|
+
dest and auth and dest.replace(auth.remove)
|
66
|
+
dest = docxml.at("//div[@id = 'license']")
|
67
|
+
auth = docxml.at("//div[@class = 'license']")
|
68
|
+
auth&.xpath(".//h1 | .//h2")&.each { |h| h["class"] = "IntroTitle" }
|
69
|
+
dest and auth and dest.replace(auth.remove)
|
70
|
+
end
|
71
|
+
|
39
72
|
include BaseConvert
|
40
73
|
end
|
41
74
|
end
|
@@ -12,15 +12,18 @@ module IsoDoc
|
|
12
12
|
|
13
13
|
def default_fonts(options)
|
14
14
|
{
|
15
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
16
|
-
|
15
|
+
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
16
|
+
'"Cambria",serif'),
|
17
|
+
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
18
|
+
'"Cambria",serif'),
|
17
19
|
monospacefont: '"Courier New",monospace',
|
18
20
|
}
|
19
21
|
end
|
20
22
|
|
21
23
|
def default_file_locations(options)
|
22
24
|
{
|
23
|
-
htmlstylesheet: options[:alt] ? html_doc_path("style-human.scss") :
|
25
|
+
htmlstylesheet: (options[:alt] ? html_doc_path("style-human.scss") :
|
26
|
+
html_doc_path("style-iso.scss")),
|
24
27
|
htmlcoverpage: html_doc_path("html_iso_titlepage.html"),
|
25
28
|
htmlintropage: html_doc_path("html_iso_intro.html"),
|
26
29
|
scripts: html_doc_path("scripts.html"),
|
@@ -44,17 +47,29 @@ module IsoDoc
|
|
44
47
|
end
|
45
48
|
end
|
46
49
|
|
50
|
+
def make_body2(body, docxml)
|
51
|
+
body.div **{ class: "WordSection2" } do |div2|
|
52
|
+
boilerplate docxml, div2
|
53
|
+
abstract docxml, div2
|
54
|
+
foreword docxml, div2
|
55
|
+
introduction docxml, div2
|
56
|
+
div2.p { |p| p << " " } # placeholder
|
57
|
+
end
|
58
|
+
section_break(body)
|
59
|
+
end
|
60
|
+
|
47
61
|
def colophon(body, docxml)
|
48
62
|
stage = @meta.get[:stage_int]
|
49
63
|
return if !stage.nil? && stage < 60
|
50
|
-
body.br **{ clear: "all", style: "page-break-before:left;
|
64
|
+
body.br **{ clear: "all", style: "page-break-before:left;"\
|
65
|
+
"mso-break-type:section-break" }
|
51
66
|
body.div **{ class: "colophon" } do |div|
|
52
67
|
end
|
53
68
|
end
|
54
69
|
|
55
|
-
def figure_cleanup(
|
70
|
+
def figure_cleanup(xml)
|
56
71
|
super
|
57
|
-
|
72
|
+
xml.xpath("//div[@class = 'figure']//table[@class = 'dl']").each do |t|
|
58
73
|
t["class"] = "figdl"
|
59
74
|
d = t.add_previous_sibling("<div class='figdl'/>")
|
60
75
|
t.parent = d.first
|
@@ -77,6 +92,41 @@ module IsoDoc
|
|
77
92
|
word_annex_cleanup1(docxml, 6)
|
78
93
|
end
|
79
94
|
|
95
|
+
def authority_hdr_cleanup(docxml)
|
96
|
+
docxml&.xpath("//div[@class = 'license']").each do |d|
|
97
|
+
d.xpath(".//h1").each do |p|
|
98
|
+
p.name = "p"
|
99
|
+
p["class"] = "zzWarningHdr"
|
100
|
+
end
|
101
|
+
end
|
102
|
+
docxml&.xpath("//div[@class = 'copyright']").each do |d|
|
103
|
+
d.xpath(".//h1").each do |p|
|
104
|
+
p.name = "p"
|
105
|
+
p["class"] = "zzCopyrightHdr"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
def authority_cleanup(docxml)
|
111
|
+
insert = docxml.at("//div[@id = 'license']")
|
112
|
+
auth = docxml&.at("//div[@class = 'license']")&.remove
|
113
|
+
auth&.xpath(".//p[not(@class)]")&.each { |p| p["class"] = "zzWarning" }
|
114
|
+
auth and insert.children = auth
|
115
|
+
insert = docxml.at("//div[@id = 'copyright']")
|
116
|
+
auth = docxml&.at("//div[@class = 'copyright']")&.remove
|
117
|
+
auth&.xpath(".//p[not(@class)]")&.each { |p| p["class"] = "zzCopyright" }
|
118
|
+
auth&.xpath(".//p[@id = 'authority2']")&.each { |p| p["class"] = "zzCopyright1" }
|
119
|
+
auth&.xpath(".//p[@id = 'authority3']")&.each { |p| p["class"] = "zzAddress" }
|
120
|
+
auth and insert.children = auth
|
121
|
+
end
|
122
|
+
|
123
|
+
def word_cleanup(docxml)
|
124
|
+
authority_hdr_cleanup(docxml)
|
125
|
+
super
|
126
|
+
authority_cleanup(docxml)
|
127
|
+
docxml
|
128
|
+
end
|
129
|
+
|
80
130
|
include BaseConvert
|
81
131
|
end
|
82
132
|
end
|
@@ -45,7 +45,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
45
45
|
end
|
46
46
|
|
47
47
|
it "processes default metadata" do
|
48
|
-
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
48
|
+
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
49
49
|
= Document title
|
50
50
|
Author
|
51
51
|
:docfile: test.adoc
|
@@ -168,7 +168,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
168
168
|
|
169
169
|
|
170
170
|
it "processes complex metadata" do
|
171
|
-
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~'OUTPUT'
|
171
|
+
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to <<~'OUTPUT'
|
172
172
|
= Document title
|
173
173
|
Author
|
174
174
|
:docfile: test.adoc
|
@@ -280,7 +280,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
280
280
|
end
|
281
281
|
|
282
282
|
it "defaults substage" do
|
283
|
-
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
283
|
+
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
284
284
|
= Document title
|
285
285
|
Author
|
286
286
|
:docfile: test.adoc
|
@@ -342,7 +342,7 @@ OUTPUT
|
|
342
342
|
end
|
343
343
|
|
344
344
|
it "defaults substage for stage 60" do
|
345
|
-
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
345
|
+
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
346
346
|
= Document title
|
347
347
|
Author
|
348
348
|
:docfile: test.adoc
|
@@ -404,7 +404,7 @@ OUTPUT
|
|
404
404
|
end
|
405
405
|
|
406
406
|
it "populates metadata for PRF" do
|
407
|
-
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
407
|
+
expect(xmlpp(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true).sub(%r{<boilerplate>.*</boilerplate>}m, ""))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
408
408
|
= Document title
|
409
409
|
Author
|
410
410
|
:docfile: test.adoc
|
@@ -184,7 +184,7 @@ RSpec.describe IsoDoc do
|
|
184
184
|
IsoDoc::Iso::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
|
185
185
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
186
186
|
<sections>
|
187
|
-
<clause inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
187
|
+
<clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
188
188
|
|
189
189
|
<title>Introduction<bookmark id="Q"/> to this<fn reference="1">
|
190
190
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">Formerly denoted as 15 % (m/m).</p>
|
@@ -203,7 +203,7 @@ RSpec.describe IsoDoc do
|
|
203
203
|
word = File.read("test.doc", encoding: "UTF-8").sub(/^.*An empty word intro page\./m, '').
|
204
204
|
sub(%r{</div>.*$}m, "</div>")
|
205
205
|
|
206
|
-
expect(("<div>" + word.gsub(/_Toc\d\d+/, "_Toc") )).to be_equivalent_to xmlpp(<<~'OUTPUT')
|
206
|
+
expect(xmlpp("<div>" + word.gsub(/_Toc\d\d+/, "_Toc") )).to be_equivalent_to xmlpp(<<~'OUTPUT')
|
207
207
|
<div>
|
208
208
|
<p class="MsoToc1"><span lang="EN-GB" xml:lang="EN-GB"><span style="mso-element:field-begin"></span><span style="mso-spacerun:yes"> </span>TOC
|
209
209
|
\o "1-2" \h \z \u <span style="mso-element:field-separator"></span></span>
|
@@ -262,7 +262,7 @@ RSpec.describe IsoDoc do
|
|
262
262
|
IsoDoc::Iso::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css", wordintropage: "spec/assets/wordintro.html"}).convert("test", <<~"INPUT", false)
|
263
263
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
264
264
|
<sections>
|
265
|
-
<clause inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
|
265
|
+
<clause id="A" inline-header="false" obligation="normative"><title>Clause 4</title><fn reference="3">
|
266
266
|
<p id="_ff27c067-2785-4551-96cf-0a73530ff1e6">This is a footnote.</p>
|
267
267
|
</fn><clause id="N" inline-header="false" obligation="normative">
|
268
268
|
|
@@ -284,7 +284,7 @@ RSpec.describe IsoDoc do
|
|
284
284
|
expect(xmlpp(html)).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
285
285
|
<main xmlns:epub="epub" class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
|
286
286
|
<p class="zzSTDTitle1"></p>
|
287
|
-
<div>
|
287
|
+
<div id="A">
|
288
288
|
<h1>1  Clause 4</h1>
|
289
289
|
<a rel="footnote" href="#fn:3" epub:type="footnote" id="fnref:1">
|
290
290
|
<sup>1</sup>
|
@@ -478,6 +478,105 @@ RSpec.describe IsoDoc do
|
|
478
478
|
OUTPUT
|
479
479
|
end
|
480
480
|
|
481
|
+
it "processes boilerplate" do
|
482
|
+
FileUtils.rm_f "test.doc"
|
483
|
+
FileUtils.rm_f "test.html"
|
484
|
+
IsoDoc::Iso::HtmlConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
485
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
486
|
+
<bibdata type="standard">
|
487
|
+
<status><stage>30</stage></status>
|
488
|
+
</bibdata>
|
489
|
+
<boilerplate>
|
490
|
+
<copyright-statement>
|
491
|
+
<clause>
|
492
|
+
<p id="authority1">
|
493
|
+
© ISO 2019, Published in Switzerland
|
494
|
+
</p>
|
495
|
+
|
496
|
+
<p id="authority2">
|
497
|
+
I am the Walrus.
|
498
|
+
</p>
|
499
|
+
|
500
|
+
<p id="authority3" align="left">
|
501
|
+
ISO copyright office<br/>
|
502
|
+
Ch. de Blandonnet 8 ?~@? CP 401<br/>
|
503
|
+
CH-1214 Vernier, Geneva, Switzerland<br/>
|
504
|
+
Tel. + 41 22 749 01 11<br/>
|
505
|
+
Fax + 41 22 749 09 47<br/>
|
506
|
+
copyright@iso.org<br/>
|
507
|
+
www.iso.org
|
508
|
+
</p>
|
509
|
+
</clause>
|
510
|
+
</copyright-statement>
|
511
|
+
|
512
|
+
|
513
|
+
<license-statement>
|
514
|
+
<clause>
|
515
|
+
<title>Warning for Stuff</title>
|
516
|
+
|
517
|
+
<p>This
|
518
|
+
document is not an ISO International Standard. It is distributed for review and
|
519
|
+
comment. It is subject to change without notice and may not be referred to as
|
520
|
+
an International Standard.</p>
|
521
|
+
|
522
|
+
<p>Recipients
|
523
|
+
of this draft are invited to submit, with their comments, notification of any
|
524
|
+
relevant patent rights of which they are aware and to provide supporting
|
525
|
+
documentation.</p>
|
526
|
+
</clause>
|
527
|
+
</license-statement>
|
528
|
+
|
529
|
+
</boilerplate>
|
530
|
+
</iso-standard>
|
531
|
+
INPUT
|
532
|
+
word = File.read("test.html", encoding: "UTF-8")
|
533
|
+
expect(xmlpp(word)).to include "<h1 class='IntroTitle'>Warning for Stuff</h1>"
|
534
|
+
expect(xmlpp(word)).to include "I am the Walrus."
|
535
|
+
end
|
536
|
+
|
537
|
+
it "processes boilerplate (Word)" do
|
538
|
+
FileUtils.rm_f "test.doc"
|
539
|
+
FileUtils.rm_f "test.html"
|
540
|
+
IsoDoc::Iso::WordConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("test", <<~"INPUT", false)
|
541
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
542
|
+
<bibdata type="standard">
|
543
|
+
<status><stage>30</stage></status>
|
544
|
+
</bibdata>
|
545
|
+
<boilerplate>
|
546
|
+
<copyright-statement>
|
547
|
+
<clause>
|
548
|
+
<p id="authority1">Published in Elbonia</p>
|
549
|
+
|
550
|
+
<p id="authority2">No soup for you</p>
|
551
|
+
|
552
|
+
<p id="authority3" align="left">Elbonia 5000</p>
|
553
|
+
</clause>
|
554
|
+
</copyright-statement>
|
555
|
+
|
556
|
+
|
557
|
+
<license-statement>
|
558
|
+
<clause>
|
559
|
+
<title>Warning for Stuff</title>
|
481
560
|
|
561
|
+
<p>I am the Walrus</p>
|
562
|
+
</clause>
|
563
|
+
</license-statement>
|
564
|
+
|
565
|
+
</boilerplate>
|
566
|
+
</iso-standard>
|
567
|
+
INPUT
|
568
|
+
word = File.read("test.doc", encoding: "UTF-8")
|
569
|
+
expect(xmlpp(word.sub(%r{^.*<p class="zzCopyright">}m, '<p class="zzCopyright">').sub(%r{</p>.*$}m, '</p>'))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
570
|
+
<p class="zzCopyright"><a name="authority1" id="authority1"></a>Published in Elbonia</p>
|
571
|
+
OUTPUT
|
572
|
+
expect(xmlpp(word.sub(%r{^.*<p class="zzCopyright1">}m, '<p class="zzCopyright1">').sub(%r{</p>.*$}m, '</p>'))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
573
|
+
<p class="zzCopyright1"><a name="authority2" id="authority2"></a>No soup for you</p>
|
574
|
+
OUTPUT
|
575
|
+
expect(xmlpp(word.sub(%r{^.*<p align="left" style="text-align:left" class="zzAddress">}m, '<p align="left" style="text-align:left" class="zzAddress">').sub(%r{</p>.*$}m, '</p>'))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
576
|
+
<p align="left" style="text-align:left" class="zzAddress"><a name="authority3" id="authority3"></a>Elbonia 5000</p>
|
577
|
+
OUTPUT
|
578
|
+
expect(word).to include '<p class="zzWarning">I am the Walrus</p>'
|
579
|
+
expect(word).to include '<p class="zzWarning">I am the Walrus</p>'
|
580
|
+
end
|
482
581
|
|
483
582
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -95,6 +95,13 @@ VALIDATING_BLANK_HDR = <<~"HDR"
|
|
95
95
|
|
96
96
|
HDR
|
97
97
|
|
98
|
+
BOILERPLATE =
|
99
|
+
HTMLEntities.new.decode(
|
100
|
+
File.read(File.join(File.dirname(__FILE__), "..", "lib", "asciidoctor", "iso", "iso_intro.xml"), encoding: "utf-8").
|
101
|
+
gsub(/\{\{ agency \}\}/, "ISO").gsub(/\{\{ docyear \}\}/, Date.today.year.to_s).
|
102
|
+
gsub(/\{% if unpublished %\}.*\{% endif %\}/m, ""))
|
103
|
+
|
104
|
+
|
98
105
|
BLANK_HDR = <<~"HDR"
|
99
106
|
<?xml version="1.0" encoding="UTF-8"?>
|
100
107
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
@@ -137,6 +144,7 @@ BLANK_HDR = <<~"HDR"
|
|
137
144
|
</editorialgroup>
|
138
145
|
</ext>
|
139
146
|
</bibdata>
|
147
|
+
#{BOILERPLATE}
|
140
148
|
HDR
|
141
149
|
|
142
150
|
TERM_BOILERPLATE = <<~END
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-iso
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ruby-jing
|
@@ -263,6 +263,7 @@ files:
|
|
263
263
|
- lib/asciidoctor/iso/i18n-en.yaml
|
264
264
|
- lib/asciidoctor/iso/i18n-fr.yaml
|
265
265
|
- lib/asciidoctor/iso/i18n-zh-Hans.yaml
|
266
|
+
- lib/asciidoctor/iso/iso_intro.xml
|
266
267
|
- lib/asciidoctor/iso/isodoc.rng
|
267
268
|
- lib/asciidoctor/iso/isostandard.rnc
|
268
269
|
- lib/asciidoctor/iso/isostandard.rng
|