metanorma-iec 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aeea3a9fe1769d11cf8dd35270a1a45cad54ad976c94bf8ab871bbbef3509e09
4
- data.tar.gz: 36628127433147b77fcf6537c22f3c07667367a5a4b83529e5b6f446180a5b4a
3
+ metadata.gz: 489e431cdb476cb3d5526c645e6a41b7f163ae0abc8c903f48a0a99a36b7b6b4
4
+ data.tar.gz: fd8b9c6b5c2aa79f1c1453027532d211ac2308f85d0b1d0e30f03d3f641ee7d6
5
5
  SHA512:
6
- metadata.gz: 58fee559bbde5f882118b6eda4032f4d0134e3413dcf1b8eff29fc190674133816ebcd2f3dc48173ceb9c4f7b7a19afb96c97096cc5d09e44457e4877b5dc933
7
- data.tar.gz: 10375e49683e94979c6c0b70c2840ea5cab8d1ffeaf1cf53d7815286f6d01dc5ee00f3b84cce2402f37294c238cb1e7f1dea3ae0e8380809f256868de1e1a182
6
+ metadata.gz: 0011dbc5a6261195f51f58766adc0635d71f4981be53024770ba8ecbfca1367949fc69db7b84a02492bd1dd4718adad44cdcfe5c385781a0143d09e9b0df16e6
7
+ data.tar.gz: f7703c90cb73b42240b236267c00b0e27b0ecf1f1c5dbffeaf980fb33cf068db73c269dc05bafe9ba07148677dd4518e8ecdc9b472bb6d73c323072ecd07fa17
data/README.adoc ADDED
@@ -0,0 +1,87 @@
1
+ = metanorma-iec: Metanorma processor for the International Electrotechnical Commission
2
+
3
+ image:https://img.shields.io/gem/v/metanorma-iec.svg["Gem Version", link="https://rubygems.org/gems/metanorma-iec"]
4
+ image:https://img.shields.io/travis/metanorma/metanorma-iec/master.svg["Build Status", link="https://travis-ci.com/metanorma/metanorma-iec"]
5
+ image:https://ci.appveyor.com/api/projects/status/odgc3ltblokvd6e7?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/metanorma-iec"]
6
+ image:https://codeclimate.com/github/metanorma/metanorma-iec/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-iec"]
7
+
8
+ WARNING: This gem is still under development.
9
+
10
+ == Functionality
11
+
12
+ This gem processes Metanorma documents into the IEC document class.
13
+
14
+ The gem is basically the https://github.com/metanorma/metanorma-iso gem, with some tweaking of rendering to meet the particular requirements of the IEC.
15
+
16
+ It provides the following functions:
17
+
18
+ . Compiles Metanorma input into the Metanorma-IEC XML format (which is identical to Metanorma-ISO, since the two standards share the same document model)
19
+ . Validates XML output against the Metanorma-IEC document model
20
+ ** Errors are reported to console against the XML, and are intended for users to
21
+ check that they have provided all necessary components of the
22
+ document.
23
+ . Metanorma-IEC XML is then converted into desired output formats.
24
+
25
+ The following outputs are supported:
26
+
27
+ * Primary: the canonical Metanorma-IEC XML representation (`.xml`).
28
+ * Secondary: the Metanorma-IEC XML representation is processed to generate the following outputs
29
+ as end deliverable IEC documents.
30
+ ** HTML (`.html`)
31
+ ** Word (`.doc`)
32
+
33
+ == Structure
34
+
35
+ This gem inherits from the https://github.com/metanorma/metanorma-iso
36
+ gem, and aligns closely to it.
37
+
38
+
39
+ === Quickstart
40
+
41
+ Please see https://www.metanorma.com for instructions to get started.
42
+
43
+ If you are using a Mac, the https://github.com/metanorma/metanorma-macos-setup
44
+ repository has instructions on setting up your machine to run Metanorma
45
+ scripts such as this one. You need only run the following in a Terminal console:
46
+
47
+ [source,console]
48
+ ----
49
+ $ bash <(curl -s https://raw.githubusercontent.com/metanorma/metanorma-macos-setup/master/metanorma-setup)
50
+ $ gem install metanorma-cli
51
+ $ gem install metanorma-iec
52
+ ----
53
+
54
+
55
+ == Usage
56
+
57
+ Using the `metanorma` CLI:
58
+
59
+ [source,console]
60
+ ----
61
+ $ metanorma --type iec a.adoc # output HTML
62
+ $ metanorma --type iec --extensions html a.adoc # output just HTML
63
+ $ metanorma --type iec --extensions xml a.adoc # output Metanorma XML
64
+ ----
65
+
66
+
67
+ == Authoring
68
+
69
+ Please refer to the Metanorma-ISO documentation for general documentation.
70
+
71
+ * Metanorma-ISO general documentation: https://www.metanorma.com/software/metanorma-iso/
72
+
73
+ * Metanorma-ISO guidance: https://www.metanorma.com/software/metanorma-iso/docs/guidance/
74
+
75
+
76
+ == Documentation
77
+
78
+ See https://www.metanorma.com/author/iso/[Write ISO documents with Metanorma]
79
+
80
+ ////
81
+ == Examples
82
+
83
+ * link:spec/examples/rfc6350.adoc[] is an Metanorma AsciiDoc version of https://tools.ietf.org/html/rfc6350[RFC 6350].
84
+ * link:spec/examples/rfc6350.html[] is an HTML file generated from the Asciidoctor.
85
+ * link:spec/examples/rfc6350.doc[] is a Word document generated from the Asciidoctor.
86
+ ////
87
+
@@ -54,6 +54,103 @@ module Asciidoctor
54
54
  File.read(file, encoding: "UTF-8")
55
55
  end
56
56
 
57
+ def relaton_relations
58
+ super + %w(translated-from)
59
+ end
60
+
61
+ def doctype_validate(xmldoc)
62
+ doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
63
+ %w(international-standard technical-specification technical-report
64
+ publicly-available-specification international-workshop-agreement
65
+ guide interpretation-sheet).include? doctype or
66
+ warn "IEC Document Attributes: #{doctype} is not a recognised document type"
67
+ end
68
+
69
+ STAGE_CODES = {
70
+ "PNW" => "1000",
71
+ "ANW" => "2000",
72
+ "CAN" => "2098",
73
+ "ACD" => "2099",
74
+ "CD" => "3020",
75
+ "BWG" => "3092",
76
+ "A2CD" => "3099",
77
+ "2CD" => "3520",
78
+ "3CD" => "3520",
79
+ "4CD" => "3520",
80
+ "5CD" => "3520",
81
+ "6CD" => "3520",
82
+ "7CD" => "3520",
83
+ "8CD" => "3520",
84
+ "9CD" => "3520",
85
+ "CDM" => "3591",
86
+ "A3CD" => "3592",
87
+ "A4CD" => "3592",
88
+ "A5CD" => "3592",
89
+ "A6CD" => "3592",
90
+ "A7CD" => "3592",
91
+ "A8CD" => "3592",
92
+ "A9CD" => "3592",
93
+ "ACDV" => "3599",
94
+ "CCDV" => "4020",
95
+ "CDVM" => "4091",
96
+ "NCDV" => "4092",
97
+ "NADIS" => "4093",
98
+ "ADIS" => "4099",
99
+ "ADTR" => "4099",
100
+ "ADTS" => "4099",
101
+ "RDISH" => "5000",
102
+ "RFDIS" => "5000",
103
+ "CDISH" => "5020",
104
+ "CDPAS" => "5020",
105
+ "CDTR" => "5020",
106
+ "CDTS" => "5020",
107
+ "CFDIS" => "5020",
108
+ "DTRM" => "5092",
109
+ "DTSM" => "5092",
110
+ "NDTR" => "5092",
111
+ "NDTS" => "5092",
112
+ "NFDIS" => "5092",
113
+ "APUB" => "5099",
114
+ "BPUB" => "6000",
115
+ "PPUB" => "6060",
116
+ "RR" => "9092",
117
+ "AMW" => "9220",
118
+ "WPUB" => "9599",
119
+ "DELPUB" => "9960",
120
+ }.freeze
121
+
122
+ DOC_STAGE = {
123
+ "00": "PWI",
124
+ "10": "NWIP",
125
+ "20": "WD",
126
+ "30": "CD",
127
+ "40": "CDV",
128
+ "50": "FDIS",
129
+ }.freeze
130
+
131
+ def get_stage(node)
132
+ stage = node.attr("status") || node.attr("docstage") || "60"
133
+ m = /([0-9])CD$/.match(stage) and
134
+ node.set_attr("iteration", m[1])
135
+ STAGE_CODES[stage] and stage = STAGE_CODES[stage][0..1]
136
+ stage
137
+ end
138
+
139
+ def get_substage(node)
140
+ st = node.attr("status") || node.attr("docstage")
141
+ stage = get_stage(node)
142
+ node.attr("docsubstage") ||
143
+ ( stage == "60" ? "60" :
144
+ STAGE_CODES[st] ? STAGE_CODES[st][2..3] :
145
+ "00" )
146
+ end
147
+
148
+ def id_stage_abbr(stage, substage, node)
149
+ abbr = DOC_STAGE[stage.to_sym] || ""
150
+ abbr = node.attr("iteration") + abbr if node.attr("iteration")
151
+ abbr
152
+ end
153
+
57
154
  def html_converter(node)
58
155
  node.nil? ? IsoDoc::Iec::HtmlConvert.new({}) :
59
156
  IsoDoc::Iec::HtmlConvert.new(html_extract_attributes(node))
@@ -4,6 +4,10 @@ require "metanorma-iso"
4
4
  module IsoDoc
5
5
  module Iec
6
6
  module BaseConvert
7
+ def metadata_init(lang, script, labels)
8
+ @meta = Metadata.new(lang, script, labels)
9
+ end
10
+
7
11
  def foreword(isoxml, out)
8
12
  f = isoxml.at(ns("//foreword"))
9
13
  b = isoxml.at(ns("//boilerplate/legal-statement"))
@@ -777,6 +777,10 @@ td.example p.MsoListParagraph {
777
777
  font-size: 10.0pt;
778
778
  }
779
779
 
780
+ div.example p.MsoListParagraph {
781
+ font-size: 10.0pt;
782
+ }
783
+
780
784
  span.note_label, span.example_label, td.example_label, td.note_label
781
785
  {
782
786
  font-size: 10.0pt;
@@ -1,20 +1,66 @@
1
1
  require "isodoc"
2
2
  require "metanorma-iso"
3
-
3
+
4
4
  module IsoDoc
5
5
  module Iec
6
6
  class Metadata < IsoDoc::Iso::Metadata
7
7
  STAGE_ABBRS = {
8
- "00": "PWI",
9
- "10": "NWIP",
10
- "20": "WD",
11
- "30": "CD",
12
- "40": "CDV",
13
- "50": "FDIS",
14
- "60": "IS",
15
- "90": "(Review)",
16
- "95": "(Withdrawal)",
8
+ "00" => {"00" => "PWI"},
9
+ "10" => {"00" => "PNW"},
10
+ "20" => {"00" => "ANW", "98" => "CAN", "99" => "ACD"},
11
+ "30" => {"00" => "CD", "20" => "CD", "92" => "BWG", "97" => "MERGED", "98" => "DREJ", "99" => "A2CD"},
12
+ "35" => {"00" => "CD", "20" => "CD", "91" => "CDM", "92" => "ACD", "99" => "ACDV"},
13
+ "40" => {"00" => "CCDV", "20" => "CCDV", "91" => "CDVM", "92" => "NCDV", "93" => "NADIS", "95" => "ADISSB", "99" => "ADIS"},
14
+ "50" => {"00" => "RFDIS", "20" => "CFDIS", "92" => "NFDIS", "95" => "APUBSB", "99" => "APUB"},
15
+ "60" => {"00" => "BPUB", "60" => "PPUB"},
16
+ "90" => {"00" => "RR", "92" => "RR"},
17
+ "92" => {"00" => "AMW", "20" => "AMW"},
18
+ "95" => {"00" => "WPUB", "99" => "WPUB"},
19
+ "99" => {"00" => "DELPUB", "60" => "DELPUB"},
17
20
  }.freeze
21
+
22
+ def stage_abbrev1(stage, substage, iter, doctype, draft)
23
+ return "" unless stage
24
+ abbr = STAGE_ABBRS.dig(stage, substage) || "??"
25
+ if stage == "35" && substage == "92"
26
+ iter = (iter.to_i + 1) % "02"
27
+ end
28
+ case doctype
29
+ when "technical-report"
30
+ stage = "ADTR" if stage == "40" && substage == "99"
31
+ stage = "CDTR" if stage == "50" && substage == "20"
32
+ stage = "DTRM" if stage == "50" && substage == "92"
33
+ when "technical-specification"
34
+ stage = "ADTS" if stage == "40" && substage == "99"
35
+ stage = "CDTS" if stage == "50" && substage == "20"
36
+ stage = "DTSM" if stage == "50" && substage == "92"
37
+ when "interpretation-sheet"
38
+ stage = "RDISH" if stage == "50" && substage == "00"
39
+ stage = "CDISH" if stage == "50" && substage == "20"
40
+ when "publicly-available-specification"
41
+ stage = "CDPAS" if stage == "50" && substage == "20"
42
+ end
43
+ abbr = abbr.sub(/CD$/, "#{iter}CD") if iter
44
+ abbr
45
+ end
46
+
47
+ def docstatus(isoxml, _out)
48
+ docstatus = isoxml.at(ns("//bibdata/status/stage"))
49
+ set(:unpublished, false)
50
+ if docstatus
51
+ set(:stage, docstatus.text)
52
+ set(:stage_int, docstatus.text.to_i)
53
+ set(:unpublished, docstatus.text.to_i > 0 && docstatus.text.to_i < 60)
54
+ abbr = stage_abbrev1(docstatus.text,
55
+ isoxml&.at(ns("//bibdata/status/substage"))&.text,
56
+ isoxml&.at(ns("//bibdata/status/iteration"))&.text,
57
+ isoxml&.at(ns("//bibdata/ext/doctype"))&.text,
58
+ isoxml&.at(ns("//version/draft"))&.text)
59
+ set(:stageabbr, abbr)
60
+ end
61
+ revdate = isoxml.at(ns("//version/revision-date"))
62
+ set(:revdate, revdate&.text)
63
+ end
18
64
  end
19
65
  end
20
66
  end
@@ -90,16 +90,16 @@ module IsoDoc
90
90
  super
91
91
  end
92
92
 
93
- def make_tr_attr(td, row, totalrows)
93
+ def make_tr_attr(td, row, totalrows, header)
94
94
  ret = super
95
- css_class = td.name == "th" ? "TABLE-col-heading" : "TABLE-cell"
95
+ css_class = (td.name == "th" || header) ? "TABLE-col-heading" : "TABLE-cell"
96
96
  ret.merge( "class": css_class )
97
97
  end
98
98
 
99
99
  def tr_parse(node, out, ord, totalrows, header)
100
100
  out.tr do |r|
101
101
  node.elements.each do |td|
102
- attrs = make_tr_attr(td, ord, totalrows - 1)
102
+ attrs = make_tr_attr(td, ord, totalrows - 1, header)
103
103
  attrs[:class] = "TABLE-col-heading" if header
104
104
  r.send td.name, **attr_code(attrs) do |entry|
105
105
  td.children.each { |n| parse(n, entry) }
@@ -1,6 +1,6 @@
1
1
  module Metanorma
2
2
  module Iec
3
- VERSION = "0.0.3"
3
+ VERSION = "0.0.4"
4
4
  end
5
5
  end
6
6
 
@@ -87,6 +87,7 @@ RSpec.describe Asciidoctor::Iec do
87
87
  :title-main-fr: Titre Principal
88
88
  :title-part-fr: Part du Titre
89
89
  :library-ics: 1,2,3
90
+ :translated-from: ABC 123
90
91
  INPUT
91
92
  <?xml version="1.0" encoding="UTF-8"?>
92
93
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -99,13 +100,8 @@ RSpec.describe Asciidoctor::Iec do
99
100
  <title language="fr" format="text/plain" type="title-intro">Introduction Française</title>
100
101
  <title language="fr" format="text/plain" type="title-main">Titre Principal</title>
101
102
  <title language="fr" format="text/plain" type="title-part">Part du Titre</title>
102
- <docidentifier type="iso">IEC/PreNWIP3 1000-1</docidentifier>
103
+ <docidentifier type="iso">IEC/3NWIP 1000-1</docidentifier>
103
104
  <docnumber>1000</docnumber>
104
- <edition>2</edition>
105
- <version>
106
- <revision-date>2000-01-01</revision-date>
107
- <draft>0.3.4</draft>
108
- </version>
109
105
  <contributor>
110
106
  <role type="author"/>
111
107
  <organization>
@@ -120,6 +116,11 @@ RSpec.describe Asciidoctor::Iec do
120
116
  <abbreviation>IEC</abbreviation>
121
117
  </organization>
122
118
  </contributor>
119
+ <edition>2</edition>
120
+ <version>
121
+ <revision-date>2000-01-01</revision-date>
122
+ <draft>0.3.4</draft>
123
+ </version>
123
124
  <language>en</language>
124
125
  <script>Latn</script>
125
126
  <status>
@@ -136,6 +137,12 @@ RSpec.describe Asciidoctor::Iec do
136
137
  </organization>
137
138
  </owner>
138
139
  </copyright>
140
+ <relation type="translatedFrom">
141
+ <bibitem>
142
+ <title>--</title>
143
+ <docidentifier>ABC 123</docidentifier>
144
+ </bibitem>
145
+ </relation>
139
146
  <ext>
140
147
  <doctype>article</doctype>
141
148
  <editorialgroup>
@@ -183,11 +190,12 @@ RSpec.describe Asciidoctor::Iec do
183
190
  :script: Grek
184
191
  :publisher: IEC,IETF,ISO
185
192
  :copyright-year: 2001
193
+ :docstage: A2CD
186
194
  INPUT
187
195
  <?xml version="1.0" encoding="UTF-8"?>
188
196
  <iso-standard xmlns="http://riboseinc.com/isoxml">
189
197
  <bibdata type="standard">
190
- <docidentifier type="iso">ISO/IEC/IETF 1000-1-1:2001</docidentifier>
198
+ <docidentifier type="iso">ISO/IEC/IETF/2CD 1000-1-1</docidentifier>
191
199
  <docidentifier type="iso-tc">2000</docidentifier>
192
200
  <docnumber>1000</docnumber>
193
201
  <contributor>
@@ -233,8 +241,9 @@ RSpec.describe Asciidoctor::Iec do
233
241
  <language>el</language>
234
242
  <script>Grek</script>
235
243
  <status>
236
- <stage>60</stage>
237
- <substage>60</substage>
244
+ <stage>30</stage>
245
+ <substage>99</substage>
246
+ <iteration>2</iteration>
238
247
  </status>
239
248
  <copyright>
240
249
  <from>2001</from>
@@ -460,7 +469,7 @@ OUTPUT
460
469
  INPUT
461
470
  <iso-standard xmlns="http://riboseinc.com/isoxml">
462
471
  <bibdata type="standard">
463
- <docidentifier type="iso">IEC/PRF 1000</docidentifier>
472
+ <docidentifier type="iso">IEC 1000</docidentifier>
464
473
  <docnumber>1000</docnumber>
465
474
  <contributor>
466
475
  <role type="author"/>
@@ -113,6 +113,8 @@ RSpec.describe Asciidoctor::Iec do
113
113
  <sections>
114
114
  <terms id="_" obligation="normative">
115
115
  <title>Terms and definitions</title>
116
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
117
+ #{TERMS_BOILERPLATE}
116
118
  <term id="_">
117
119
  <preferred>Term1</preferred>
118
120
  <termnote id="_">
@@ -222,6 +224,8 @@ RSpec.describe Asciidoctor::Iec do
222
224
  <sections>
223
225
  <terms id="_" obligation="normative">
224
226
  <title>Terms and definitions</title>
227
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
228
+ #{TERMS_BOILERPLATE}
225
229
  <term id="_">
226
230
  <preferred>Term1</preferred>
227
231
  <termexample id="_">
@@ -422,6 +426,8 @@ RSpec.describe Asciidoctor::Iec do
422
426
  <sections>
423
427
  <terms id="_" obligation="normative">
424
428
  <title>Terms and definitions</title>
429
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
430
+ #{TERMS_BOILERPLATE}
425
431
  <term id="_">
426
432
  <preferred>Term1</preferred>
427
433
  <termsource status="identical">
@@ -448,6 +454,8 @@ RSpec.describe Asciidoctor::Iec do
448
454
  <sections>
449
455
  <terms id="_" obligation="normative">
450
456
  <title>Terms and definitions</title>
457
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
458
+ #{TERMS_BOILERPLATE}
451
459
  <term id="_">
452
460
  <preferred>Term1</preferred>
453
461
  <termsource status="modified">
@@ -31,6 +31,9 @@ RSpec.describe Asciidoctor::Iec do
31
31
  <sections>
32
32
  <terms id="_" obligation="normative">
33
33
  <title>Terms and definitions</title>
34
+ <p>For the purposes of this document,
35
+ the following terms and definitions apply.</p>
36
+ #{TERMS_BOILERPLATE}
34
37
  <term id="_"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>90</mn></msub></math></stem></preferred><admitted><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>91</mn></msub></math></stem></admitted>
35
38
  <definition><p id="_">Time</p></definition></term>
36
39
  </terms>
@@ -52,6 +55,9 @@ RSpec.describe Asciidoctor::Iec do
52
55
  <sections>
53
56
  <terms id="_" obligation="normative">
54
57
  <title>Terms and definitions</title>
58
+ <p>For the purposes of this document,
59
+ the following terms and definitions apply.</p>
60
+ #{TERMS_BOILERPLATE}
55
61
  <term id="_">
56
62
  <preferred>Tempus</preferred>
57
63
  <domain>relativity</domain><definition><p id="_"> Time</p></definition>
@@ -87,6 +93,9 @@ RSpec.describe Asciidoctor::Iec do
87
93
  <sections>
88
94
  <terms id="_" obligation="normative">
89
95
  <title>Terms and definitions</title>
96
+ <p>For the purposes of this document,
97
+ the following terms and definitions apply.</p>
98
+ #{TERMS_BOILERPLATE}
90
99
  <term id="_"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mn>90</mn></msub></math></stem></preferred><definition><formula id="_">
91
100
  <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>t</mi><mi>A</mi></msub></math></stem>
92
101
  </formula><p id="_">This paragraph is extraneous</p></definition>
@@ -113,6 +122,9 @@ RSpec.describe Asciidoctor::Iec do
113
122
  #{BLANK_HDR}
114
123
  <sections>
115
124
  <terms id="_" obligation="normative"><title>Terms and definitions</title>
125
+ <p>For the purposes of this document,
126
+ the following terms and definitions apply.</p>
127
+ #{TERMS_BOILERPLATE}
116
128
 
117
129
  <term id="_">
118
130
  <preferred>Time</preferred>
@@ -188,6 +200,7 @@ r = 1 %</stem>
188
200
  </foreword></preface><sections>
189
201
  </sections><bibliography><references id="_" obligation="informative">
190
202
  <title>Normative References</title>
203
+ <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
191
204
  <bibitem id="iso216" type="standard">
192
205
  <title format="text/plain">Reference</title>
193
206
  <docidentifier>ISO 216:2001</docidentifier>
@@ -226,6 +239,7 @@ r = 1 %</stem>
226
239
  </foreword></preface><sections>
227
240
  </sections><bibliography><references id="_" obligation="informative">
228
241
  <title>Normative References</title>
242
+ <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
229
243
  <bibitem id="iso216" type="standard">
230
244
  <title format="text/plain">Reference</title>
231
245
  <docidentifier>ISO 216</docidentifier>
@@ -293,6 +307,8 @@ r = 1 %</stem>
293
307
  <sections>
294
308
  <terms id="_" obligation="normative">
295
309
  <title>Terms and definitions</title>
310
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
311
+ #{TERMS_BOILERPLATE}
296
312
  <term id="_">
297
313
  <preferred>Term1</preferred>
298
314
  <termsource status="identical">
@@ -318,6 +334,7 @@ r = 1 %</stem>
318
334
  #{BLANK_HDR}
319
335
  <sections></sections>
320
336
  <bibliography><references id="_" obligation="informative"><title>Normative References</title>
337
+ <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
321
338
  <bibitem id="iso216" type="standard">
322
339
  <title format="text/plain">Reference</title>
323
340
  <docidentifier>ISO 216</docidentifier>
@@ -655,6 +672,7 @@ r = 1 %</stem>
655
672
  </p>
656
673
  </clause></sections><bibliography><references id="_" obligation="informative">
657
674
  <title>Normative References</title>
675
+ <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
658
676
  <bibitem id="iso123" type="standard">
659
677
  <title format="text/plain">Standard</title>
660
678
  <docidentifier>ISO 123:—</docidentifier>
@@ -129,6 +129,7 @@ RSpec.describe Asciidoctor::Iec do
129
129
 
130
130
  </sections><bibliography><references id="_" obligation="informative">
131
131
  <title>Normative References</title>
132
+ <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
132
133
  <bibitem id="ISO712">
133
134
  <formattedref format="application/x-isodoc+xml">Reference</formattedref>
134
135
  <docidentifier>x</docidentifier>
@@ -67,6 +67,8 @@ RSpec.describe Asciidoctor::Iec do
67
67
 
68
68
  <terms id="_" obligation="normative">
69
69
  <title>Terms and definitions</title>
70
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
71
+ #{TERMS_BOILERPLATE}
70
72
  <term id="_">
71
73
  <preferred>Term1</preferred>
72
74
  </term>
@@ -98,7 +100,7 @@ RSpec.describe Asciidoctor::Iec do
98
100
  <appendix id="_" inline-header="false" obligation="normative">
99
101
  <title>Appendix 1</title>
100
102
  </appendix></annex><bibliography><references id="_" obligation="informative">
101
- <title>Normative References</title>
103
+ <title>Normative References</title><p>There are no normative references in this document.</p>
102
104
  </references><clause id="_" obligation="informative">
103
105
  <title>Bibliography</title>
104
106
  <references id="_" obligation="informative">
@@ -186,6 +188,8 @@ RSpec.describe Asciidoctor::Iec do
186
188
 
187
189
  <terms id="_" obligation="normative">
188
190
  <title>Terms and definitions</title>
191
+ <p>For the purposes of this document, the following terms and definitions apply.</p>
192
+ #{TERMS_BOILERPLATE}
189
193
  <term id="_">
190
194
  <preferred>Term1</preferred>
191
195
  </term>
@@ -218,7 +222,7 @@ RSpec.describe Asciidoctor::Iec do
218
222
  <appendix id="_" inline-header="false" obligation="normative">
219
223
  <title>Appendx 1</title>
220
224
  </appendix></annex><bibliography><references id="_" obligation="informative">
221
- <title>Normative References</title>
225
+ <title>Normative References</title><p>There are no normative references in this document.</p>
222
226
  </references><clause id="_" obligation="informative">
223
227
  <title>Bibliography</title>
224
228
  <references id="_" obligation="informative">
@@ -312,30 +316,4 @@ RSpec.describe Asciidoctor::Iec do
312
316
  OUTPUT
313
317
  end
314
318
 
315
- it "processes term document sources" do
316
- expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iec, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
317
- #{ASCIIDOC_BLANK_HDR}
318
-
319
- Foreword
320
-
321
- [source="iso1234,iso5678"]
322
- == Terms and Definitions
323
-
324
- INPUT
325
- #{BLANK_HDR}
326
- <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/>
327
- <preface><foreword obligation="informative">
328
- <title>Foreword</title>
329
- <p id="_">Foreword</p>
330
- </foreword></preface><sections>
331
- <terms id="_" obligation="normative">
332
- <title>Terms and definitions</title>
333
-
334
-
335
- </terms></sections>
336
- </iso-standard>
337
-
338
- OUTPUT
339
- end
340
-
341
319
  end
@@ -93,19 +93,8 @@ RSpec.describe IsoDoc do
93
93
  </div>
94
94
  <div>
95
95
  <h1>2&#160; Normative references</h1>
96
- <p>There are no normative references in this document.</p>
97
- </div>
98
- <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
99
- the following terms and definitions apply.</p>
100
- <p>ISO and IEC maintain terminological databases for use in
101
- standardization at the following addresses:</p>
102
-
103
- <ul>
104
- <li> <p>ISO Online browsing platform: available at
105
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
106
- <li> <p>IEC Electropedia: available at
107
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
108
- </p> </li> </ul>
96
+ </div>
97
+ <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1>
109
98
  <div id="I"><h2>3.1 Normal Terms</h2>
110
99
 
111
100
  <p class="TermNum" id="J">3.1.1</p>
@@ -229,7 +218,7 @@ RSpec.describe IsoDoc do
229
218
  </bibliography>
230
219
  </iso-standard>
231
220
  INPUT
232
- #{HTML_HDR.sub(/"en"/, '"tlh"')}
221
+ #{HTML_HDR.gsub(/"en"/, '"tlh"')}
233
222
  <div>
234
223
  <h1 class="ForewordTitle">FOREWORD</h1>
235
224
  <div class="boilerplate_legal"/>
@@ -250,19 +239,8 @@ RSpec.describe IsoDoc do
250
239
  </div>
251
240
  <div>
252
241
  <h1>2&#160; Normative references</h1>
253
- <p>There are no normative references in this document.</p>
254
- </div>
255
- <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
256
- the following terms and definitions apply.</p>
257
- <p>ISO and IEC maintain terminological databases for use in
258
- standardization at the following addresses:</p>
259
-
260
- <ul>
261
- <li> <p>ISO Online browsing platform: available at
262
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
263
- <li> <p>IEC Electropedia: available at
264
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
265
- </p> </li> </ul>
242
+ </div>
243
+ <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1>
266
244
  <div id="I"><h2>3.1 Normal Terms</h2>
267
245
 
268
246
  <p class="TermNum" id="J">3.1.1</p>
@@ -387,7 +365,7 @@ RSpec.describe IsoDoc do
387
365
  </iso-standard>
388
366
  INPUT
389
367
  #{HTML_HDR.sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "COMMISSION ELECTROTECHNIQUE INTERNATIONALE").
390
- sub(/"en"/, '"fr"')}
368
+ gsub(/"en"/, '"fr"')}
391
369
  <div>
392
370
  <h1 class="ForewordTitle">AVANT-PROPOS</h1>
393
371
  <div class="boilerplate_legal"/>
@@ -408,18 +386,8 @@ RSpec.describe IsoDoc do
408
386
  </div>
409
387
  <div>
410
388
  <h1>2&#160; R&#233;f&#233;rences normatives</h1>
411
- <p>Le pr&#233;sent document ne contient aucune r&#233;f&#233;rence normative.</p>
412
- </div>
413
- <div id="H"><h1>3&#160; Terms, d&#233;finitions, symboles et termes abr&#233;g&#233;s</h1><p>Pour les besoins du pr&#233;sent document, les termes et d&#233;finitions suivants s'appliquent.</p>
414
- <p>L'ISO et l'IEC tiennent &#224; jour des bases de donn&#233;es terminologiques
415
- destin&#233;es &#224; &#234;tre utilis&#233;es en normalisation, consultables aux adresses
416
- suivantes:</p>
417
- <ul>
418
- <li> <p>ISO Online browsing platform: disponible &#224; l'adresse
419
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
420
- <li> <p>IEC Electropedia: disponible &#224; l'adresse
421
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
422
- </p> </li> </ul>
389
+ </div>
390
+ <div id="H"><h1>3&#160; Terms, d&#233;finitions, symboles et termes abr&#233;g&#233;s</h1>
423
391
  <div id="I"><h2>3.1 Normal Terms</h2>
424
392
 
425
393
  <p class="TermNum" id="J">3.1.1</p>
@@ -554,7 +522,7 @@ RSpec.describe IsoDoc do
554
522
  </bibliography>
555
523
  </iso-standard>
556
524
  INPUT
557
- #{HTML_HDR.sub(/"en"/, '"zh"').sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "国际电工委员会")}
525
+ #{HTML_HDR.gsub(/"en"/, '"zh"').sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "国际电工委员会")}
558
526
  <div>
559
527
  <h1 class="ForewordTitle">&#21069;&#35328;</h1>
560
528
  <div class="boilerplate_legal"/>
@@ -577,17 +545,9 @@ RSpec.describe IsoDoc do
577
545
  </div>
578
546
  <div>
579
547
  <h1>2&#160; &#35268;&#33539;&#24615;&#24341;&#29992;&#25991;&#20214;</h1>
580
- <p>&#19979;&#21015;&#25991;&#20214;&#23545;&#20110;&#26412;&#25991;&#20214;&#30340;&#24212;&#29992;&#26159;&#24517;&#19981;&#21487;&#23569;&#30340;&#12290; &#20961;&#26159;&#27880;&#26085;&#26399;&#30340;&#24341;&#29992;&#25991;&#20214;&#65292;&#20165;&#27880;&#26085;&#26399;&#30340;&#29256;&#26412;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290; &#20961;&#26159;&#19981;&#27880;&#26085;&#26399;&#30340;&#24341;&#29992;&#25991;&#20214;&#65292;&#20854;&#26368;&#26032;&#29256;&#26412;&#65288;&#21253;&#25324;&#25152;&#26377;&#30340;&#20462;&#25913;&#21333;&#65289;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290;</p>
581
548
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
582
549
  </div>
583
- <div id="H"><h1>3&#160; &#26415;&#35821;&#12289;&#23450;&#20041;&#12289;&#31526;&#21495;&#12289;&#20195;&#21495;&#21644;&#32553;&#30053;&#35821;</h1><p>&#19979;&#21015;&#26415;&#35821;&#21644;&#23450;&#20041;&#36866;&#29992;&#20110;&#26412;&#25991;&#20214;&#12290;</p>
584
- <p>ISO&#21644;IEC&#29992;&#20110;&#26631;&#20934;&#21270;&#30340;&#26415;&#35821;&#25968;&#25454;&#24211;&#22320;&#22336;&#22914;&#19979;&#65306;</p>
585
- <ul>
586
- <li> <p>ISO&#22312;&#32447;&#27983;&#35272;&#24179;&#21488;:
587
- &#20301;&#20110;<a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
588
- <li> <p>IEC Electropedia:
589
- &#20301;&#20110;<a href="http://www.electropedia.org">http://www.electropedia.org</a>
590
- </p> </li> </ul>
550
+ <div id="H"><h1>3&#160; &#26415;&#35821;&#12289;&#23450;&#20041;&#12289;&#31526;&#21495;&#12289;&#20195;&#21495;&#21644;&#32553;&#30053;&#35821;</h1>
591
551
  <div id="I"><h2>3.1 Normal Terms</h2>
592
552
 
593
553
  <p class="TermNum" id="J">3.1.1</p>
@@ -185,7 +185,6 @@ RSpec.describe IsoDoc do
185
185
  #{IEC_TITLE}
186
186
  <div>
187
187
  <h1>1&#160; Normative references</h1>
188
- <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
189
188
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
190
189
  </div>
191
190
  </div>
@@ -252,7 +251,6 @@ RSpec.describe IsoDoc do
252
251
  #{IEC_TITLE}
253
252
  <div>
254
253
  <h1>1&#160; Normative references</h1>
255
- <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
256
254
  <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
257
255
  </div>
258
256
  </div>
@@ -154,7 +154,6 @@ RSpec.describe IsoDoc::Iec do
154
154
  #{IEC_TITLE}
155
155
  <div>
156
156
  <h1>1&#160; Normative references</h1>
157
- <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
158
157
  <p id="ISO20483" class="NormRef">ISO 20483, <i> Cereals and pulses</i></p>
159
158
  </div>
160
159
  </div>
@@ -43,8 +43,8 @@ RSpec.describe IsoDoc::Iec::Metadata do
43
43
  <language>en</language>
44
44
  <script>Latn</script>
45
45
  <status>
46
- <stage>40</stage>
47
- <substage>92</substage>
46
+ <stage>35</stage>
47
+ <substage>20</substage>
48
48
  <iteration>3</iteration>
49
49
  </status>
50
50
  <copyright>
@@ -70,7 +70,7 @@ RSpec.describe IsoDoc::Iec::Metadata do
70
70
  </bibdata>
71
71
  </iso-standard>
72
72
  INPUT
73
- {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010&ndash;2011", :docnumber=>"ISO/PreCD3 17301-1", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>"40", :stage_int=>40, :stageabbr=>"PreDIS3", :tc=>"TC 34", :tc_docnumber=>"17301", :unpublished=>true, :wg=>"WG 3"}
73
+ {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010&ndash;2011", :docnumber=>"ISO/PreCD3 17301-1", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :revdate=>"2016-05-01", :sc=>"SC 4", :secretariat=>"GB", :stage=>"35", :stage_int=>35, :stageabbr=>"3CD", :tc=>"TC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"WG 3"}
74
74
  OUTPUT
75
75
  end
76
76
 
@@ -115,8 +115,8 @@ OUTPUT
115
115
  <language>en</language>
116
116
  <script>Latn</script>
117
117
  <status>
118
- <stage>60</stage>
119
- <substage>92</substage>
118
+ <stage>50</stage>
119
+ <substage>20</substage>
120
120
  </status>
121
121
  <copyright>
122
122
  <from>2016</from>
@@ -131,7 +131,7 @@ OUTPUT
131
131
  <docidentifier>IEC 8121</docidentifier>
132
132
  </relation>
133
133
  <ext>
134
- <doctype>international-standard</doctype>
134
+ <doctype>technical-report</doctype>
135
135
  <editorialgroup>
136
136
  <technical-committee number="34" type="ABC">Food products</technical-committee>
137
137
  <subcommittee number="4" type="DEF">Cereals and pulses</subcommittee>
@@ -146,7 +146,7 @@ OUTPUT
146
146
  </bibdata>
147
147
  </iso-standard>
148
148
  INPUT
149
- {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1&ndash;3", :doctype=>"International Standard", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :ics=>"1.2.3, 1.2.3", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :revdate=>nil, :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"60", :stage_int=>60, :stageabbr=>"IS", :tc=>"ABC 34", :tc_docnumber=>"17301", :unpublished=>false, :wg=>"GHI 3"}
149
+ {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1&ndash;3", :doctype=>"Technical Report", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :ics=>"1.2.3, 1.2.3", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :revdate=>nil, :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"50", :stage_int=>50, :stageabbr=>"CFDIS", :tc=>"ABC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"GHI 3"}
150
150
  OUTPUT
151
151
  end
152
152
 
@@ -155,16 +155,7 @@ RSpec.describe IsoDoc do
155
155
  expect(word).to be_equivalent_to <<~"OUTPUT"
156
156
  <div class="WordSection3">
157
157
  #{IEC_TITLE}
158
- <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1><p class="MsoNormal">For the purposes of this document,
159
- the following terms and definitions apply.</p>
160
- <p class="MsoNormal">ISO and IEC maintain terminological databases for use in
161
- standardization at the following addresses:</p>
162
-
163
- <p style="mso-list:l22 level1 lfo1;" class="MsoListParagraphCxSpFirst"> ISO Online browsing platform: available at
164
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a> </p>
165
- <p style="mso-list:l22 level1 lfo1;" class="MsoListParagraphCxSpLast"> IEC Electropedia: available at
166
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
167
- </p>
158
+ <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1>
168
159
  <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1</p><p class="Terms" style="text-align:left;">paddy</p>
169
160
  <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
170
161
  <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, 3.1</a>, modified &mdash; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
@@ -331,12 +322,12 @@ RSpec.describe IsoDoc do
331
322
  </div>
332
323
  </div>
333
324
  <aside id="fn:3" class="footnote">
334
- <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote" id="fnref:1">
325
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:3" epub:type="footnote">
335
326
  <sup>1</sup>
336
327
  </a>This is a footnote.</p>
337
328
  <a href="#fnref:1">&#x21A9;</a></aside>
338
329
  <aside id="fn:2" class="footnote">
339
- <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote" id="fnref:2"><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
330
+ <p id="_ff27c067-2785-4551-96cf-0a73530ff1e6"><a rel="footnote" href="#fn:2" epub:type="footnote"><sup>2</sup></a>Formerly denoted as 15 % (m/m).</p>
340
331
  <a href="#fnref:2">&#x21A9;</a></aside>
341
332
 
342
333
  </main>
@@ -69,7 +69,7 @@ RSpec.describe IsoDoc do
69
69
  </bibliography>
70
70
  </iso-standard>
71
71
  INPUT
72
- <html xmlns:epub="http://www.idpf.org/2007/ops">
72
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
73
73
  <head/>
74
74
  <body lang="en">
75
75
  <div class="title-section">
@@ -103,19 +103,8 @@ RSpec.describe IsoDoc do
103
103
  </div>
104
104
  <div>
105
105
  <h1>2&#160; Normative references</h1>
106
- <p>There are no normative references in this document.</p>
107
106
  </div>
108
- <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
109
- the following terms and definitions apply.</p>
110
- <p>ISO and IEC maintain terminological databases for use in
111
- standardization at the following addresses:</p>
112
-
113
- <ul>
114
- <li> <p>ISO Online browsing platform: available at
115
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
116
- <li> <p>IEC Electropedia: available at
117
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
118
- </p> </li> </ul>
107
+ <div id="H"><h1>3&#160; Terms, definitions, symbols and abbreviated terms</h1>
119
108
  <div id="I">
120
109
  <h2>3.1 Normal Terms</h2>
121
110
  <p class="TermNum" id="J">3.1.1</p>
@@ -269,19 +258,8 @@ OUTPUT
269
258
  </div>
270
259
  <div>
271
260
  <h1>2<span style="mso-tab-count:1">&#160; </span>Normative references</h1>
272
- <p>There are no normative references in this document.</p>
273
261
  </div>
274
- <div id="H"><h1>3<span style="mso-tab-count:1">&#160; </span>Terms, definitions, symbols and abbreviated terms</h1><p>For the purposes of this document,
275
- the following terms and definitions apply.</p>
276
- <p>ISO and IEC maintain terminological databases for use in
277
- standardization at the following addresses:</p>
278
-
279
- <ul>
280
- <li> <p>ISO Online browsing platform: available at
281
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
282
- <li> <p>IEC Electropedia: available at
283
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
284
- </p> </li> </ul>
262
+ <div id="H"><h1>3<span style="mso-tab-count:1">&#160; </span>Terms, definitions, symbols and abbreviated terms</h1>
285
263
  <div id="I">
286
264
  <h2>3.1 Normal Terms</h2>
287
265
  <p class="TermNum" id="J">3.1.1</p>
@@ -356,17 +334,7 @@ OUTPUT
356
334
  <div class="boilerplate_legal"/>
357
335
  </div>
358
336
  #{IEC_TITLE}
359
- <div id="H"><h1>1&#160; Terms and definitions</h1><p>For the purposes of this document,
360
- the following terms and definitions apply.</p>
361
- <p>ISO and IEC maintain terminological databases for use in
362
- standardization at the following addresses:</p>
363
-
364
- <ul>
365
- <li> <p>ISO Online browsing platform: available at
366
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
367
- <li> <p>IEC Electropedia: available at
368
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
369
- </p> </li> </ul>
337
+ <div id="H"><h1>1&#160; Terms and definitions</h1>
370
338
  <p class="TermNum" id="J">1.1</p>
371
339
  <p class="Terms" style="text-align:left;">Term2</p>
372
340
  </div>
@@ -376,149 +344,6 @@ OUTPUT
376
344
  OUTPUT
377
345
  end
378
346
 
379
- it "processes terms & definitions with external source" do
380
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
381
- <iso-standard xmlns="http://riboseinc.com/isoxml">
382
- <termdocsource type="inline" bibitemid="ISO712"/>
383
- <sections>
384
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
385
- <term id="J">
386
- <preferred>Term2</preferred>
387
- </term>
388
- </terms>
389
- </sections>
390
- <bibliography>
391
- <references id="_normative_references" obligation="informative"><title>Normative References</title>
392
- <bibitem id="ISO712" type="standard">
393
- <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
394
- <docidentifier>ISO 712</docidentifier>
395
- <contributor>
396
- <role type="publisher"/>
397
- <organization>
398
- <name>International Organization for Standardization</name>
399
- </organization>
400
- </contributor>
401
- </bibitem></references>
402
- </bibliography>
403
- </iso-standard>
404
- INPUT
405
- #{HTML_HDR}
406
- <div id="">
407
- <h1 class="ForewordTitle">FOREWORD</h1>
408
- <div class="boilerplate_legal"/>
409
- </div>
410
- #{IEC_TITLE}
411
- <div>
412
- <h1>1&#160; Normative references</h1>
413
- <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
414
- <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
415
- </div>
416
- <div id="H"><h1>2&#160; Terms and definitions</h1><p>For the purposes of this document, the terms and definitions
417
- given in <a href="#ISO712">ISO 712</a> and the following apply.</p>
418
- <p>ISO and IEC maintain terminological databases for use in
419
- standardization at the following addresses:</p>
420
-
421
- <ul>
422
- <li> <p>ISO Online browsing platform: available at
423
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
424
- <li> <p>IEC Electropedia: available at
425
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
426
- </p> </li> </ul>
427
- <p class="TermNum" id="J">2.1</p>
428
- <p class="Terms" style="text-align:left;">Term2</p>
429
- </div>
430
- </div>
431
- </body>
432
- </html>
433
- OUTPUT
434
- end
435
-
436
- it "processes empty terms & definitions with external source" do
437
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
438
- <iso-standard xmlns="http://riboseinc.com/isoxml">
439
- <termdocsource type="inline" bibitemid="ISO712"/>
440
- <termdocsource type="inline" bibitemid="ISO712"/>
441
- <termdocsource type="inline" bibitemid="ISO712"/>
442
- <sections>
443
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
444
- </terms>
445
- </sections>
446
- <bibliography>
447
- <references id="_normative_references" obligation="informative"><title>Normative References</title>
448
- <bibitem id="ISO712" type="standard">
449
- <title format="text/plain">Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</title>
450
- <docidentifier>ISO 712</docidentifier>
451
- <contributor>
452
- <role type="publisher"/>
453
- <organization>
454
- <abbreviation>ISO</abbreviation>
455
- </organization>
456
- </contributor>
457
- </bibitem></references>
458
- </bibliography>
459
- </iso-standard>
460
- INPUT
461
- #{HTML_HDR}
462
- <div id="">
463
- <h1 class="ForewordTitle">FOREWORD</h1>
464
- <div class="boilerplate_legal"/>
465
- </div>
466
- #{IEC_TITLE}
467
- <div>
468
- <h1>1&#160; Normative references</h1>
469
- <p>The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
470
- <p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products?~@~I?~@~T?~@~IDetermination of moisture content?~@~I?~@~T?~@~IReference method</i></p>
471
- </div>
472
- <div id="H"><h1>2&#160; Terms and definitions</h1><p>For the purposes of this document,
473
- the terms and definitions given in <a href="#ISO712">ISO 712</a>, <a href="#ISO712">ISO 712</a> and <a href="#ISO712">ISO 712</a> apply.</p>
474
- <p>ISO and IEC maintain terminological databases for use in
475
- standardization at the following addresses:</p>
476
-
477
- <ul>
478
- <li> <p>ISO Online browsing platform: available at
479
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
480
- <li> <p>IEC Electropedia: available at
481
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
482
- </p> </li> </ul>
483
- </div>
484
- </div>
485
- </body>
486
- </html>
487
- OUTPUT
488
- end
489
-
490
- it "processes empty terms & definitions" do
491
- expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
492
- <iso-standard xmlns="http://riboseinc.com/isoxml">
493
- <sections>
494
- <terms id="H" obligation="normative"><title>Terms, Definitions, Symbols and Abbreviated Terms</title>
495
- </terms>
496
- </sections>
497
- </iso-standard>
498
- INPUT
499
- #{HTML_HDR}
500
- <div id="">
501
- <h1 class="ForewordTitle">FOREWORD</h1>
502
- <div class="boilerplate_legal"/>
503
- </div>
504
- #{IEC_TITLE}
505
- <div id="H"><h1>1&#160; Terms and definitions</h1><p>No terms and definitions are listed in this document.</p>
506
- <p>ISO and IEC maintain terminological databases for use in
507
- standardization at the following addresses:</p>
508
-
509
- <ul>
510
- <li> <p>ISO Online browsing platform: available at
511
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
512
- <li> <p>IEC Electropedia: available at
513
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
514
- </p> </li> </ul>
515
- </div>
516
- </div>
517
- </body>
518
- </html>
519
- OUTPUT
520
- end
521
-
522
347
  it "processes inline section headers" do
523
348
  expect(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true)).to be_equivalent_to <<~"OUTPUT"
524
349
  <iso-standard xmlns="http://riboseinc.com/isoxml">
@@ -58,17 +58,7 @@ RSpec.describe IsoDoc do
58
58
  <div class="boilerplate_legal"/>
59
59
  </div>
60
60
  #{IEC_TITLE}
61
- <div id="_terms_and_definitions"><h1>1&#160; Terms and definitions</h1><p>For the purposes of this document,
62
- the following terms and definitions apply.</p>
63
- <p>ISO and IEC maintain terminological databases for use in
64
- standardization at the following addresses:</p>
65
-
66
- <ul>
67
- <li> <p>ISO Online browsing platform: available at
68
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
69
- <li> <p>IEC Electropedia: available at
70
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
71
- </p> </li> </ul>
61
+ <div id="_terms_and_definitions"><h1>1&#160; Terms and definitions</h1>
72
62
  <p class="TermNum" id="paddy1">1.1</p><p class="Terms" style="text-align:left;">paddy</p>
73
63
 
74
64
  <p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">&lt;rice&gt; rice retaining its husk after threshing</p>
@@ -155,17 +145,7 @@ OUTPUT
155
145
  </sections>
156
146
  </iso-standard>
157
147
  INPUT
158
- <div id="_terms_and_definitions"><h1>1<span style="mso-tab-count:1">&#160; </span>Terms and definitions</h1><p>For the purposes of this document,
159
- the following terms and definitions apply.</p>
160
- <p>ISO and IEC maintain terminological databases for use in
161
- standardization at the following addresses:</p>
162
-
163
- <ul>
164
- <li> <p>ISO Online browsing platform: available at
165
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
166
- <li> <p>IEC Electropedia: available at
167
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
168
- </p> </li> </ul>
148
+ <div id="_terms_and_definitions"><h1>1<span style="mso-tab-count:1">&#160; </span>Terms and definitions</h1>
169
149
  <p class="TermNum" id="paddy1">1.1</p><p class="Terms" style="text-align:left;">paddy</p>
170
150
 
171
151
  <p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">&lt;rice&gt; rice retaining its husk after threshing</p>
@@ -67,17 +67,7 @@ RSpec.describe Metanorma::Iec::Processor do
67
67
  <b></b>
68
68
  </p>
69
69
  <p class="zzSTDTitle1">&#xA0;</p>
70
- <div id="H"><h1>1&#xA0; Terms and definitions</h1><p>For the purposes of this document,
71
- the following terms and definitions apply.</p>
72
- <p>ISO and IEC maintain terminological databases for use in
73
- standardization at the following addresses:</p>
74
-
75
- <ul>
76
- <li> <p>ISO Online browsing platform: available at
77
- <a href="http://www.iso.org/obp">http://www.iso.org/obp</a></p> </li>
78
- <li> <p>IEC Electropedia: available at
79
- <a href="http://www.electropedia.org">http://www.electropedia.org</a>
80
- </p> </li> </ul>
70
+ <div id="H"><h1>1&#xA0; Terms and definitions</h1>
81
71
  <h2 class="TermNum" id="J">1.1</h2>
82
72
  <p class="Terms" style="text-align:left;">Term2</p>
83
73
  </div>
data/spec/spec_helper.rb CHANGED
@@ -86,6 +86,18 @@ VALIDATING_BLANK_HDR = <<~"HDR"
86
86
 
87
87
  HDR
88
88
 
89
+ TERMS_BOILERPLATE = <<~"BOILERPLATE"
90
+ <p>ISO and IEC maintain terminological databases for use in
91
+ standardization at the following addresses:</p>
92
+
93
+ <ul>
94
+ <li> <p>ISO Online browsing platform: available at
95
+ <link target="http://www.iso.org/obp"/></p> </li>
96
+ <li> <p>IEC Electropedia: available at
97
+ <link target="http://www.electropedia.org"/>
98
+ </p> </li> </ul>
99
+ BOILERPLATE
100
+
89
101
  BOILERPLATE = <<~"BOILERPLATE"
90
102
  <boilerplate>
91
103
  <legal-statement>
@@ -160,7 +172,7 @@ IEC_TITLE = <<~END
160
172
  END
161
173
 
162
174
  HTML_HDR = <<~END
163
- <html xmlns:epub="http://www.idpf.org/2007/ops">
175
+ <html xmlns:epub="http://www.idpf.org/2007/ops" lang="en">
164
176
  <head/>
165
177
  <body lang="en">
166
178
  <div class="title-section">
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
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-08-20 00:00:00.000000000 Z
11
+ date: 2019-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -245,6 +245,7 @@ extensions: []
245
245
  extra_rdoc_files: []
246
246
  files:
247
247
  - Gemfile
248
+ - README.adoc
248
249
  - bin/rspec
249
250
  - lib/asciidoctor/iec/basicdoc.rng
250
251
  - lib/asciidoctor/iec/biblio.rng