metanorma-iso 2.1.2 → 2.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/html2doc/lists.rb +7 -4
- data/lib/isodoc/iso/html/isodoc-dis.css +4 -15
- data/lib/isodoc/iso/html/isodoc-dis.scss +4 -17
- data/lib/isodoc/iso/html/isodoc.css +4 -11
- data/lib/isodoc/iso/html/isodoc.scss +5 -15
- data/lib/isodoc/iso/i18n-en.yaml +1 -1
- data/lib/isodoc/iso/iso.amendment.xsl +429 -121
- data/lib/isodoc/iso/iso.international-standard.xsl +429 -121
- data/lib/isodoc/iso/metadata.rb +1 -1
- data/lib/isodoc/iso/presentation_xml_convert.rb +5 -1
- data/lib/isodoc/iso/word_cleanup.rb +40 -6
- data/lib/isodoc/iso/word_dis_cleanup.rb +10 -14
- data/lib/metanorma/iso/base.rb +0 -6
- data/lib/metanorma/iso/biblio.rng +102 -5
- data/lib/metanorma/iso/cleanup.rb +33 -20
- data/lib/metanorma/iso/front.rb +13 -6
- data/lib/metanorma/iso/isodoc.rng +33 -0
- data/lib/metanorma/iso/isostandard.rng +3 -1
- data/lib/metanorma/iso/validate_section.rb +0 -12
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/isodoc/blocks_spec.rb +3 -3
- data/spec/isodoc/metadata_spec.rb +1 -2
- data/spec/isodoc/postproc_spec.rb +2 -62
- data/spec/isodoc/section_spec.rb +2 -8
- data/spec/isodoc/terms_spec.rb +62 -0
- data/spec/isodoc/word_dis_spec.rb +185 -3
- data/spec/metanorma/amd_spec.rb +4 -40
- data/spec/metanorma/base_spec.rb +61 -103
- data/spec/metanorma/blocks_spec.rb +0 -33
- data/spec/metanorma/cleanup_spec.rb +201 -201
- data/spec/metanorma/refs_spec.rb +5 -3
- data/spec/metanorma/section_spec.rb +6 -6
- data/spec/metanorma/validate_spec.rb +8 -19
- data/spec/spec_helper.rb +1 -7
- data/spec/vcr_cassettes/withdrawn_iso.yml +28 -28
- metadata +3 -4
- data/lib/metanorma/iso/macros.rb +0 -29
data/lib/isodoc/iso/metadata.rb
CHANGED
@@ -38,7 +38,7 @@ module IsoDoc
|
|
38
38
|
lbl = if n.nil? || blank?(n[:label]) then @i18n.example
|
39
39
|
else l10n("#{@i18n.example} #{n[:label]}")
|
40
40
|
end
|
41
|
-
prefix_name(node,
|
41
|
+
prefix_name(node, block_delim, lbl, "name")
|
42
42
|
end
|
43
43
|
|
44
44
|
def example_span_label(_node, div, name)
|
@@ -196,6 +196,10 @@ module IsoDoc
|
|
196
196
|
type
|
197
197
|
end
|
198
198
|
|
199
|
+
def related1(node)
|
200
|
+
node.remove
|
201
|
+
end
|
202
|
+
|
199
203
|
include Init
|
200
204
|
end
|
201
205
|
end
|
@@ -11,11 +11,10 @@ module IsoDoc
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
-
# force Annex h2 down to be p.h2Annex, so it is not picked up by ToC
|
15
14
|
def word_annex_cleanup1(docxml, lvl)
|
16
15
|
docxml.xpath("//h#{lvl}[ancestor::*[@class = 'Section3']]").each do |h2|
|
17
16
|
h2.name = "p"
|
18
|
-
h2["class"] = "
|
17
|
+
h2["class"] = "a#{lvl}"
|
19
18
|
end
|
20
19
|
end
|
21
20
|
|
@@ -37,16 +36,51 @@ module IsoDoc
|
|
37
36
|
|
38
37
|
def style_cleanup(docxml)
|
39
38
|
word_annex_cleanup_h1(docxml)
|
40
|
-
|
39
|
+
figure_style(docxml)
|
40
|
+
new_styles(docxml)
|
41
41
|
end
|
42
42
|
|
43
|
-
def
|
44
|
-
docxml.xpath("
|
45
|
-
|
43
|
+
def figure_style(docxml)
|
44
|
+
docxml.xpath("//div[@class = 'figure']").each do |f|
|
45
|
+
f["style"] ||= ""
|
46
|
+
f["style"] += "text-align:center;"
|
46
47
|
end
|
48
|
+
end
|
49
|
+
|
50
|
+
def quote_style(docxml)
|
51
|
+
docxml.xpath("//div[@class = 'Quote' or @class = 'Note' or "\
|
52
|
+
"@class = 'Example' or @class = 'Admonition']").each do |d|
|
53
|
+
quote_style1(d)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
def quote_style1(div)
|
58
|
+
div.xpath(".//li").each do |p|
|
59
|
+
p["style"] ||= ""
|
60
|
+
p["style"] += "font-size:#{default_fonts({})[:smallerfontsize]};"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
STYLESMAP = {
|
65
|
+
example: "Example",
|
66
|
+
note: "Note",
|
67
|
+
Sourcecode: "Code",
|
68
|
+
tabletitle: "Tabletitle",
|
69
|
+
Biblio: "MsoNormal",
|
70
|
+
figure: "MsoNormal",
|
71
|
+
SourceTitle: "FigureTitle",
|
72
|
+
}.freeze
|
73
|
+
|
74
|
+
def new_styles(docxml)
|
75
|
+
STYLESMAP.each do |k, v|
|
76
|
+
docxml.xpath("//*[@class = '#{k}']").each { |s| s["class"] = v }
|
77
|
+
end
|
78
|
+
docxml.xpath("//div[@class = 'Section3']//p[@class = 'Tabletitle']")
|
79
|
+
.each { |t| t["class"] = "AnnexTableTitle" }
|
47
80
|
docxml.xpath("//*[@class = 'zzHelp']/p[not(@class)]").each do |p|
|
48
81
|
p["class"] = "zzHelp"
|
49
82
|
end
|
83
|
+
quote_style(docxml)
|
50
84
|
end
|
51
85
|
|
52
86
|
def authority_hdr_cleanup(docxml)
|
@@ -1,11 +1,6 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
module Iso
|
3
3
|
class WordDISConvert < WordConvert
|
4
|
-
def style_cleanup(docxml)
|
5
|
-
super
|
6
|
-
dis_styles(docxml)
|
7
|
-
end
|
8
|
-
|
9
4
|
STYLESMAP = {
|
10
5
|
AltTerms: "AdmittedTerm",
|
11
6
|
TableFootnote: "Tablefootnote",
|
@@ -30,7 +25,7 @@ module IsoDoc
|
|
30
25
|
zzCopyright1: "zzCopyright",
|
31
26
|
}.freeze
|
32
27
|
|
33
|
-
def
|
28
|
+
def new_styles(docxml)
|
34
29
|
STYLESMAP.each do |k, v|
|
35
30
|
docxml.xpath("//*[@class = '#{k}']").each { |s| s["class"] = v }
|
36
31
|
end
|
@@ -46,8 +41,8 @@ module IsoDoc
|
|
46
41
|
figure_style(docxml)
|
47
42
|
note_style(docxml)
|
48
43
|
example_style(docxml)
|
49
|
-
quote_style(docxml)
|
50
44
|
dis_style_interactions(docxml)
|
45
|
+
quote_style(docxml)
|
51
46
|
end
|
52
47
|
|
53
48
|
def dis_style_interactions(docxml)
|
@@ -68,13 +63,6 @@ module IsoDoc
|
|
68
63
|
end
|
69
64
|
end
|
70
65
|
|
71
|
-
def quote_style(docxml)
|
72
|
-
docxml.xpath("//div[@class = 'Quote' or @class = 'Note' or "\
|
73
|
-
"@class = 'Example' or @class = 'Admonition']").each do |d|
|
74
|
-
quote_style1(d)
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
66
|
def para_style_change(div, class1, class2)
|
79
67
|
s = class1 ? "@class = '#{class1}'" : "not(@class)"
|
80
68
|
div.xpath(".//p[#{s}]").each do |p|
|
@@ -230,6 +218,14 @@ module IsoDoc
|
|
230
218
|
end
|
231
219
|
end
|
232
220
|
end
|
221
|
+
|
222
|
+
def make_FigureWordToC(docxml)
|
223
|
+
super.sub(/FigureTitle,figuretitle/, "Figure title,Annex Figure Title")
|
224
|
+
end
|
225
|
+
|
226
|
+
def make_TableWordToC(docxml)
|
227
|
+
super.sub(/TableTitle,tabletitle/, "Table title,Annex Table Title")
|
228
|
+
end
|
233
229
|
end
|
234
230
|
end
|
235
231
|
end
|
data/lib/metanorma/iso/base.rb
CHANGED
@@ -5,16 +5,10 @@ require "pathname"
|
|
5
5
|
require "open-uri"
|
6
6
|
require "isodoc"
|
7
7
|
require "fileutils"
|
8
|
-
require_relative "macros"
|
9
8
|
|
10
9
|
module Metanorma
|
11
10
|
module ISO
|
12
11
|
class Converter < Standoc::Converter
|
13
|
-
Asciidoctor::Extensions.register do
|
14
|
-
block Metanorma::ISO::EditorAdmonitionBlock
|
15
|
-
treeprocessor Metanorma::ISO::EditorInlineAdmonitionBlock
|
16
|
-
end
|
17
|
-
|
18
12
|
XML_ROOT_TAG = "iso-standard".freeze
|
19
13
|
XML_NAMESPACE = "https://www.metanorma.org/ns/iso".freeze
|
20
14
|
|
@@ -623,6 +623,97 @@
|
|
623
623
|
<zeroOrMore>
|
624
624
|
<ref name="bsource"/>
|
625
625
|
</zeroOrMore>
|
626
|
+
<oneOrMore>
|
627
|
+
<ref name="docidentifier"/>
|
628
|
+
</oneOrMore>
|
629
|
+
<optional>
|
630
|
+
<ref name="docnumber"/>
|
631
|
+
</optional>
|
632
|
+
<zeroOrMore>
|
633
|
+
<ref name="bdate"/>
|
634
|
+
</zeroOrMore>
|
635
|
+
<zeroOrMore>
|
636
|
+
<ref name="contributor"/>
|
637
|
+
</zeroOrMore>
|
638
|
+
<optional>
|
639
|
+
<ref name="edition"/>
|
640
|
+
</optional>
|
641
|
+
<zeroOrMore>
|
642
|
+
<ref name="version"/>
|
643
|
+
</zeroOrMore>
|
644
|
+
<zeroOrMore>
|
645
|
+
<ref name="biblionote"/>
|
646
|
+
</zeroOrMore>
|
647
|
+
<zeroOrMore>
|
648
|
+
<ref name="language"/>
|
649
|
+
</zeroOrMore>
|
650
|
+
<zeroOrMore>
|
651
|
+
<ref name="script"/>
|
652
|
+
</zeroOrMore>
|
653
|
+
<zeroOrMore>
|
654
|
+
<ref name="bibabstract"/>
|
655
|
+
</zeroOrMore>
|
656
|
+
<optional>
|
657
|
+
<ref name="status"/>
|
658
|
+
</optional>
|
659
|
+
<zeroOrMore>
|
660
|
+
<ref name="copyright"/>
|
661
|
+
</zeroOrMore>
|
662
|
+
<zeroOrMore>
|
663
|
+
<ref name="docrelation"/>
|
664
|
+
</zeroOrMore>
|
665
|
+
<zeroOrMore>
|
666
|
+
<ref name="series"/>
|
667
|
+
</zeroOrMore>
|
668
|
+
<optional>
|
669
|
+
<ref name="medium"/>
|
670
|
+
</optional>
|
671
|
+
<zeroOrMore>
|
672
|
+
<ref name="bplace"/>
|
673
|
+
</zeroOrMore>
|
674
|
+
<zeroOrMore>
|
675
|
+
<ref name="bprice"/>
|
676
|
+
</zeroOrMore>
|
677
|
+
<zeroOrMore>
|
678
|
+
<ref name="extent"/>
|
679
|
+
</zeroOrMore>
|
680
|
+
<optional>
|
681
|
+
<ref name="bibliographic_size"/>
|
682
|
+
</optional>
|
683
|
+
<zeroOrMore>
|
684
|
+
<ref name="accesslocation"/>
|
685
|
+
</zeroOrMore>
|
686
|
+
<zeroOrMore>
|
687
|
+
<ref name="license"/>
|
688
|
+
</zeroOrMore>
|
689
|
+
<zeroOrMore>
|
690
|
+
<ref name="bclassification"/>
|
691
|
+
</zeroOrMore>
|
692
|
+
<zeroOrMore>
|
693
|
+
<ref name="bkeyword"/>
|
694
|
+
</zeroOrMore>
|
695
|
+
<optional>
|
696
|
+
<ref name="validity"/>
|
697
|
+
</optional>
|
698
|
+
</define>
|
699
|
+
<define name="ReducedBibliographicItem">
|
700
|
+
<optional>
|
701
|
+
<attribute name="type">
|
702
|
+
<ref name="BibItemType"/>
|
703
|
+
</attribute>
|
704
|
+
</optional>
|
705
|
+
<optional>
|
706
|
+
<ref name="fetched"/>
|
707
|
+
</optional>
|
708
|
+
<optional>
|
709
|
+
<ref name="formattedref"/>
|
710
|
+
</optional>
|
711
|
+
<zeroOrMore>
|
712
|
+
<ref name="btitle"/>
|
713
|
+
</zeroOrMore>
|
714
|
+
<zeroOrMore>
|
715
|
+
<ref name="bsource"/>
|
716
|
+
</zeroOrMore>
|
626
717
|
<zeroOrMore>
|
627
718
|
<ref name="docidentifier"/>
|
628
719
|
</zeroOrMore>
|
@@ -638,9 +729,9 @@
|
|
638
729
|
<optional>
|
639
730
|
<ref name="edition"/>
|
640
731
|
</optional>
|
641
|
-
<
|
732
|
+
<zeroOrMore>
|
642
733
|
<ref name="version"/>
|
643
|
-
</
|
734
|
+
</zeroOrMore>
|
644
735
|
<zeroOrMore>
|
645
736
|
<ref name="biblionote"/>
|
646
737
|
</zeroOrMore>
|
@@ -833,6 +924,12 @@
|
|
833
924
|
<data type="boolean"/>
|
834
925
|
</attribute>
|
835
926
|
</optional>
|
927
|
+
<optional>
|
928
|
+
<attribute name="language"/>
|
929
|
+
</optional>
|
930
|
+
<optional>
|
931
|
+
<attribute name="script"/>
|
932
|
+
</optional>
|
836
933
|
<text/>
|
837
934
|
</element>
|
838
935
|
</define>
|
@@ -1172,7 +1269,7 @@
|
|
1172
1269
|
</element>
|
1173
1270
|
</optional>
|
1174
1271
|
<element name="bibitem">
|
1175
|
-
<ref name="
|
1272
|
+
<ref name="ReducedBibliographicItem"/>
|
1176
1273
|
</element>
|
1177
1274
|
<choice>
|
1178
1275
|
<zeroOrMore>
|
@@ -1197,9 +1294,9 @@
|
|
1197
1294
|
<optional>
|
1198
1295
|
<ref name="revision-date"/>
|
1199
1296
|
</optional>
|
1200
|
-
<
|
1297
|
+
<optional>
|
1201
1298
|
<ref name="draft"/>
|
1202
|
-
</
|
1299
|
+
</optional>
|
1203
1300
|
</element>
|
1204
1301
|
</define>
|
1205
1302
|
<define name="vedition">
|
@@ -1,8 +1,5 @@
|
|
1
1
|
require "date"
|
2
|
-
require "nokogiri"
|
3
2
|
require "htmlentities"
|
4
|
-
require "json"
|
5
|
-
require "pathname"
|
6
3
|
|
7
4
|
module Metanorma
|
8
5
|
module ISO
|
@@ -15,8 +12,7 @@ module Metanorma
|
|
15
12
|
|
16
13
|
POST_NORMREF_FOOTNOTES =
|
17
14
|
"//sections//clause[not(@type = 'scope')]//fn | "\
|
18
|
-
"//annex//fn | "
|
19
|
-
"//references[@normative = 'false']//fn".freeze
|
15
|
+
"//annex//fn | //references[@normative = 'false']//fn".freeze
|
20
16
|
|
21
17
|
def other_footnote_renumber(xmldoc)
|
22
18
|
seen = {}
|
@@ -80,7 +76,8 @@ module Metanorma
|
|
80
76
|
return 2 if bib.at("#{PUBLISHER}[abbreviation = 'IEC']")
|
81
77
|
return 2 if bib.at("#{PUBLISHER}[name = 'International "\
|
82
78
|
"Electrotechnical Commission']")
|
83
|
-
return 3 if bib.at("./docidentifier[@type][not(#{OTHERIDS})]")
|
79
|
+
return 3 if bib.at("./docidentifier[@type][not(#{OTHERIDS})]") ||
|
80
|
+
bib.at("./docidentifier[not(@type)]")
|
84
81
|
|
85
82
|
4
|
86
83
|
end
|
@@ -102,7 +99,8 @@ module Metanorma
|
|
102
99
|
def sort_biblio_key(bib)
|
103
100
|
pubclass = pub_class(bib)
|
104
101
|
num = bib&.at("./docnumber")&.text
|
105
|
-
id = bib&.at("./docidentifier[
|
102
|
+
id = bib&.at("./docidentifier[@primary]") ||
|
103
|
+
bib&.at("./docidentifier[not(#{OTHERIDS})]")
|
106
104
|
metaid = bib&.at("./docidentifier[@type = 'metanorma']")&.text
|
107
105
|
abbrid = metaid unless /^\[\d+\]$/.match?(metaid)
|
108
106
|
/\d-(?<partid>\d+)/ =~ id&.text
|
@@ -118,9 +116,7 @@ module Metanorma
|
|
118
116
|
super
|
119
117
|
return unless @amd
|
120
118
|
|
121
|
-
xml.xpath("//*[@inline-header]").each
|
122
|
-
h.delete("inline-header")
|
123
|
-
end
|
119
|
+
xml.xpath("//*[@inline-header]").each { |h| h.delete("inline-header") }
|
124
120
|
end
|
125
121
|
|
126
122
|
def boilerplate_file(_xmldoc)
|
@@ -170,8 +166,7 @@ module Metanorma
|
|
170
166
|
|
171
167
|
if id = replacement_standard(b)
|
172
168
|
insert_unpub_note(b, @i18n.cancelled_and_replaced.sub(/%/, id))
|
173
|
-
else
|
174
|
-
insert_unpub_note(b, @i18n.withdrawn)
|
169
|
+
else insert_unpub_note(b, @i18n.withdrawn)
|
175
170
|
end
|
176
171
|
end
|
177
172
|
end
|
@@ -214,25 +209,43 @@ module Metanorma
|
|
214
209
|
super
|
215
210
|
approval_groups_rename(xmldoc)
|
216
211
|
editorial_groups_agency(xmldoc)
|
212
|
+
editorial_group_types(xmldoc)
|
217
213
|
end
|
218
214
|
|
219
215
|
def approval_groups_rename(xmldoc)
|
220
216
|
%w(technical-committee subcommittee workgroup).each do |v|
|
221
|
-
xmldoc.xpath("//bibdata//approval-#{v}").each
|
222
|
-
a.name = v
|
223
|
-
end
|
217
|
+
xmldoc.xpath("//bibdata//approval-#{v}").each { |a| a.name = v }
|
224
218
|
end
|
225
219
|
end
|
226
220
|
|
227
221
|
def editorial_groups_agency(xmldoc)
|
228
|
-
pubs = xmldoc
|
229
|
-
|
222
|
+
pubs = extract_publishers(xmldoc)
|
223
|
+
xmldoc.xpath("//bibdata/ext/editorialgroup").each do |e|
|
224
|
+
pubs.reverse.each do |p|
|
225
|
+
if e.children.empty? then e << "<agency>#{p}</agency>"
|
226
|
+
else e.children.first.previous = "<agency>#{p}</agency>"
|
227
|
+
end
|
228
|
+
end
|
229
|
+
end
|
230
|
+
end
|
231
|
+
|
232
|
+
def extract_publishers(xmldoc)
|
233
|
+
xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']/"\
|
234
|
+
"organization").each_with_object([]) do |p, m|
|
230
235
|
x = p.at("./abbreviation") || p.at("./name") or next
|
231
236
|
m << x.text
|
232
237
|
end
|
233
|
-
|
234
|
-
|
235
|
-
|
238
|
+
end
|
239
|
+
|
240
|
+
DEFAULT_EDGROUP_TYPE = { "technical-committee": "TC",
|
241
|
+
subcommittee: "SC", workgroup: "WG" }.freeze
|
242
|
+
|
243
|
+
def editorial_group_types(xmldoc)
|
244
|
+
%w(technical-committee subcommittee workgroup).each do |v|
|
245
|
+
xmldoc.xpath("//bibdata//#{v} | //bibdata//approval-#{v}").each do |g|
|
246
|
+
next if g["type"]
|
247
|
+
|
248
|
+
g["type"] = DEFAULT_EDGROUP_TYPE[v.to_sym]
|
236
249
|
end
|
237
250
|
end
|
238
251
|
end
|
data/lib/metanorma/iso/front.rb
CHANGED
@@ -88,24 +88,31 @@ module Metanorma
|
|
88
88
|
def metadata_editorial_committee(node, xml)
|
89
89
|
xml.editorialgroup do |a|
|
90
90
|
%w(technical-committee subcommittee workgroup).each do |v|
|
91
|
-
committee_component(v, node, a)
|
91
|
+
node.attr("#{v}-number") and committee_component(v, node, a)
|
92
92
|
end
|
93
93
|
node.attr("secretariat") and a.secretariat(node.attr("secretariat"))
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
97
|
def metadata_approval_committee(node, xml)
|
98
|
-
types =
|
99
|
-
node.attr("approval-technical-committee-number") and
|
100
|
-
types = %w(approval-technical-committee approval-subcommittee
|
101
|
-
approval-workgroup)
|
98
|
+
types = metadata_approval_committee_types(node)
|
102
99
|
xml.approvalgroup do |a|
|
103
100
|
metadata_approval_agency(a, node.attr("approval-agency")
|
104
101
|
&.split(%r{[/,;]}))
|
105
|
-
types.each
|
102
|
+
types.each do |v|
|
103
|
+
node.attr("#{v}-number") and committee_component(v, node, a)
|
104
|
+
end
|
106
105
|
end
|
107
106
|
end
|
108
107
|
|
108
|
+
def metadata_approval_committee_types(node)
|
109
|
+
types = %w(technical-committee subcommittee workgroup)
|
110
|
+
node.attr("approval-technical-committee-number") and
|
111
|
+
types = %w(approval-technical-committee approval-subcommittee
|
112
|
+
approval-workgroup)
|
113
|
+
types
|
114
|
+
end
|
115
|
+
|
109
116
|
def metadata_approval_agency(xml, list)
|
110
117
|
list = ["ISO"] if list.nil? || list.empty?
|
111
118
|
list.each do |v|
|
@@ -69,6 +69,17 @@
|
|
69
69
|
</zeroOrMore>
|
70
70
|
</element>
|
71
71
|
</define>
|
72
|
+
<define name="AdmonitionType">
|
73
|
+
<choice>
|
74
|
+
<value>warning</value>
|
75
|
+
<value>note</value>
|
76
|
+
<value>tip</value>
|
77
|
+
<value>important</value>
|
78
|
+
<value>caution</value>
|
79
|
+
<value>statement</value>
|
80
|
+
<value>editorial</value>
|
81
|
+
</choice>
|
82
|
+
</define>
|
72
83
|
<define name="index">
|
73
84
|
<element name="index">
|
74
85
|
<optional>
|
@@ -116,6 +127,11 @@
|
|
116
127
|
<data type="boolean"/>
|
117
128
|
</attribute>
|
118
129
|
</optional>
|
130
|
+
<optional>
|
131
|
+
<attribute name="suppress_identifier">
|
132
|
+
<data type="boolean"/>
|
133
|
+
</attribute>
|
134
|
+
</optional>
|
119
135
|
<ref name="BibliographicItem"/>
|
120
136
|
</element>
|
121
137
|
</define>
|
@@ -703,6 +719,9 @@
|
|
703
719
|
<optional>
|
704
720
|
<attribute name="tag"/>
|
705
721
|
</optional>
|
722
|
+
<optional>
|
723
|
+
<attribute name="type"/>
|
724
|
+
</optional>
|
706
725
|
<optional>
|
707
726
|
<attribute name="multilingual-rendering">
|
708
727
|
<ref name="MultilingualRenderingType"/>
|
@@ -738,6 +757,9 @@
|
|
738
757
|
<optional>
|
739
758
|
<attribute name="tag"/>
|
740
759
|
</optional>
|
760
|
+
<optional>
|
761
|
+
<attribute name="type"/>
|
762
|
+
</optional>
|
741
763
|
<optional>
|
742
764
|
<attribute name="multilingual-rendering">
|
743
765
|
<ref name="MultilingualRenderingType"/>
|
@@ -2059,6 +2081,7 @@
|
|
2059
2081
|
<value>compare</value>
|
2060
2082
|
<value>contrast</value>
|
2061
2083
|
<value>see</value>
|
2084
|
+
<value>seealso</value>
|
2062
2085
|
</choice>
|
2063
2086
|
</define>
|
2064
2087
|
<define name="deprecates">
|
@@ -2481,6 +2504,16 @@
|
|
2481
2504
|
<text/>
|
2482
2505
|
</element>
|
2483
2506
|
</optional>
|
2507
|
+
<optional>
|
2508
|
+
<element name="amendment">
|
2509
|
+
<text/>
|
2510
|
+
</element>
|
2511
|
+
</optional>
|
2512
|
+
<optional>
|
2513
|
+
<element name="corrigendum">
|
2514
|
+
<text/>
|
2515
|
+
</element>
|
2516
|
+
</optional>
|
2484
2517
|
<optional>
|
2485
2518
|
<element name="language">
|
2486
2519
|
<text/>
|
@@ -202,18 +202,6 @@ module Metanorma
|
|
202
202
|
end
|
203
203
|
end
|
204
204
|
|
205
|
-
def asset_style(root)
|
206
|
-
root.xpath("//example | //termexample").each { |e| example_style(e) }
|
207
|
-
root.xpath("//definition/verbal-definition").each do |e|
|
208
|
-
definition_style(e)
|
209
|
-
end
|
210
|
-
root.xpath("//note").each { |e| note_style(e) }
|
211
|
-
root.xpath("//fn").each { |e| footnote_style(e) }
|
212
|
-
root.xpath(ASSETS_TO_STYLE).each { |e| style(e, extract_text(e)) }
|
213
|
-
norm_bibitem_style(root)
|
214
|
-
super
|
215
|
-
end
|
216
|
-
|
217
205
|
def subclause_validate(root)
|
218
206
|
root.xpath("//clause/clause/clause/clause/clause/clause/clause/clause")
|
219
207
|
.each do |c|
|
data/spec/isodoc/blocks_spec.rb
CHANGED
@@ -297,7 +297,7 @@ RSpec.describe IsoDoc do
|
|
297
297
|
<iso-standard xmlns="http://riboseinc.com/isoxml" type='presentation'>
|
298
298
|
<preface><foreword displayorder="1">
|
299
299
|
<admonition id="_70234f78-64e5-4dfc-8b6f-f3f037348b6a" type="editorial">
|
300
|
-
<p id='_e94663cc-2473-4ccc-9a72-983a74d989f2'>
|
300
|
+
<p id='_e94663cc-2473-4ccc-9a72-983a74d989f2'>EDITORIAL NOTE —
|
301
301
|
Only use paddy or parboiled rice for the
|
302
302
|
determination of husked rice yield.
|
303
303
|
</p>
|
@@ -312,7 +312,7 @@ RSpec.describe IsoDoc do
|
|
312
312
|
<div>
|
313
313
|
<h1 class='ForewordTitle'>Foreword</h1>
|
314
314
|
<div id='_70234f78-64e5-4dfc-8b6f-f3f037348b6a' class='zzHelp'>
|
315
|
-
<p>
|
315
|
+
<p>EDITORIAL NOTE —
|
316
316
|
Only use paddy or parboiled rice for the
|
317
317
|
determination of husked rice yield.
|
318
318
|
</p>
|
@@ -332,7 +332,7 @@ RSpec.describe IsoDoc do
|
|
332
332
|
<div>
|
333
333
|
<h1 class='ForewordTitle'>Foreword</h1>
|
334
334
|
<div id='_70234f78-64e5-4dfc-8b6f-f3f037348b6a' class='zzHelp'>
|
335
|
-
<p> Only use paddy or parboiled rice for the determination of husked rice yield. </p>
|
335
|
+
<p>EDITORIAL NOTE — Only use paddy or parboiled rice for the determination of husked rice yield. </p>
|
336
336
|
<p class='ForewordText' id='_e94663cc-2473-4ccc-9a72-983a74d989f3'>Para 2.</p>
|
337
337
|
</div>
|
338
338
|
</div>
|
@@ -209,7 +209,6 @@ RSpec.describe IsoDoc::Iso::Metadata do
|
|
209
209
|
</editorialgroup>
|
210
210
|
<approvalgroup>
|
211
211
|
<technical-committee number="34" type="ABC">Food products</technical-committee>
|
212
|
-
<subcommittee number="4" type="DEF">Cereals and pulses</subcommittee>
|
213
212
|
<workgroup number="3" type="GHI">Rice Group</workgroup>
|
214
213
|
</approvalgroup>
|
215
214
|
<ics><code>1.2.3</code></ics>
|
@@ -224,7 +223,7 @@ RSpec.describe IsoDoc::Iso::Metadata do
|
|
224
223
|
INPUT
|
225
224
|
output = <<~OUTPUT
|
226
225
|
{:agency=>"ISO/IEC",
|
227
|
-
:approvalgroup=>["ABC 34", "
|
226
|
+
:approvalgroup=>["ABC 34", "GHI 3"],
|
228
227
|
:docnumber=>"ISO/IEC/CD 17301-1-3",
|
229
228
|
:docnumber_lang=>"ISO/IEC/CD 17301-1-3 (E)",
|
230
229
|
:docnumber_reference=>"ISO/IEC/CD 17301-1-3 (E)",
|