metanorma-iso 2.1.2 → 2.1.5
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/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)",
|