metanorma-iec 1.4.2 → 2.0.0

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +4 -32
  3. data/.gitignore +14 -0
  4. data/Gemfile +6 -0
  5. data/Rakefile +1 -1
  6. data/lib/isodoc/iec/base_convert.rb +25 -59
  7. data/lib/isodoc/iec/html/htmlstyle.css +38 -6
  8. data/lib/isodoc/iec/html/htmlstyle.scss +35 -6
  9. data/lib/isodoc/iec/html/isodoc.css +1 -2
  10. data/lib/isodoc/iec/html/isodoc.scss +1 -2
  11. data/lib/isodoc/iec/html/scripts.html +0 -1
  12. data/lib/isodoc/iec/html/wordstyle.css +13 -11
  13. data/lib/isodoc/iec/html/wordstyle.scss +13 -11
  14. data/lib/isodoc/iec/html_convert.rb +2 -1
  15. data/lib/isodoc/iec/iec.international-standard.xsl +724 -330
  16. data/lib/isodoc/iec/presentation_xml_convert.rb +193 -5
  17. data/lib/isodoc/iec/xref.rb +9 -8
  18. data/lib/{asciidoctor → metanorma}/iec/basicdoc.rng +0 -0
  19. data/lib/{asciidoctor → metanorma}/iec/biblio.rng +0 -0
  20. data/lib/metanorma/iec/converter.rb +143 -0
  21. data/lib/{asciidoctor → metanorma}/iec/front.rb +3 -4
  22. data/lib/{asciidoctor → metanorma}/iec/iec.rng +48 -0
  23. data/lib/{asciidoctor → metanorma}/iec/iec_intro_en.xml +0 -0
  24. data/lib/{asciidoctor → metanorma}/iec/iec_intro_fr.xml +0 -0
  25. data/lib/{asciidoctor → metanorma}/iec/isodoc.rng +90 -18
  26. data/lib/{asciidoctor → metanorma}/iec/isostandard.rng +14 -0
  27. data/lib/metanorma/iec/processor.rb +15 -8
  28. data/lib/{asciidoctor → metanorma}/iec/reqt.rng +0 -0
  29. data/lib/metanorma/iec/version.rb +1 -1
  30. data/lib/metanorma-iec.rb +1 -1
  31. data/metanorma-iec.gemspec +3 -3
  32. data/spec/isodoc/iev_spec.rb +462 -120
  33. data/spec/isodoc/postproc_spec.rb +2 -5
  34. data/spec/isodoc/ref_spec.rb +359 -353
  35. data/spec/isodoc/terms_spec.rb +183 -181
  36. data/spec/{asciidoctor → metanorma}/base_spec.rb +1 -5
  37. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  38. data/spec/metanorma/cleanup_spec.rb +374 -0
  39. data/spec/metanorma/iev_spec.rb +248 -0
  40. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  41. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  42. data/spec/metanorma/processor_spec.rb +139 -44
  43. data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
  44. data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
  45. data/spec/spec_helper.rb +12 -14
  46. metadata +26 -26
  47. data/lib/asciidoctor/iec/converter.rb +0 -105
  48. data/spec/asciidoctor/cleanup_spec.rb +0 -345
  49. data/spec/asciidoctor/iev_spec.rb +0 -243
@@ -2,20 +2,112 @@ require "spec_helper"
2
2
  require "metanorma"
3
3
  require "fileutils"
4
4
 
5
- #RSpec.describe Asciidoctor::Gb do
6
5
  RSpec.describe Metanorma::Iec::Processor do
7
-
8
6
  registry = Metanorma::Registry.instance
9
7
  registry.register(Metanorma::Iec::Processor)
10
8
  processor = registry.find_processor(:iec)
11
9
 
10
+ inputxml = <<~INPUT
11
+ <iec-standard xmlns="http://riboseinc.com/isoxml">
12
+ <bibdata type="standard">
13
+ <title language="en" format="text/plain" type="main">English</title>
14
+ <title language="en" format="text/plain" type="title-main">English</title>
15
+ <title language="fr" format="text/plain" type="main">French</title>
16
+ <title language="fr" format="text/plain" type="title-main">French</title>
17
+ <docidentifier type="ISO">ISO DIR 1</docidentifier><docidentifier type="iso-with-lang">ISO DIR 1(F)</docidentifier><docidentifier type="iso-reference">ISO DIR 1(F)</docidentifier>
18
+ <docnumber>1</docnumber>
19
+ <contributor>
20
+ <role type="author"/>
21
+ <organization>
22
+ <name>International Organization for Standardization</name>
23
+ <abbreviation>ISO</abbreviation>
24
+ </organization>
25
+ </contributor>
26
+ <contributor>
27
+ <role type="publisher"/>
28
+ <organization>
29
+ <name>International Organization for Standardization</name>
30
+ <abbreviation>ISO</abbreviation>
31
+ </organization>
32
+ </contributor>
33
+ <language>fr</language>
34
+ <script>Latn</script>
35
+ <status>
36
+ <stage abbreviation="IS">60</stage>
37
+ <substage>60</substage>
38
+ </status>
39
+ <copyright>
40
+ <from>2021</from>
41
+ <owner>
42
+ <organization>
43
+ <name>International Organization for Standardization</name>
44
+ <abbreviation>ISO</abbreviation>
45
+ </organization>
46
+ </owner>
47
+ </copyright>
48
+ <ext>
49
+ <doctype>directive</doctype>
50
+ <subdoctype>vocabulary</subdoctype>
51
+ <editorialgroup>
52
+ <technical-committee/>
53
+ <subcommittee/>
54
+ <workgroup/>
55
+ </editorialgroup>
56
+ <structuredidentifier>
57
+ <project-number>ISO 1</project-number>
58
+ </structuredidentifier>
59
+ <stagename>International standard</stagename>
60
+ </ext>
61
+ </bibdata>
62
+ <boilerplate>
63
+ <copyright-statement>
64
+ <clause>
65
+ <title>DOCUMENT PROT&#201;G&#201; PAR COPYRIGHT</title>
66
+ <p id="boilerplate-year">&#169; ISO 2021</p>
67
+
68
+ <p id="boilerplate-message">
69
+ Droits de reproduction r&#233;serv&#233;s. Sauf indication contraire, aucune partie de cette publication ne
70
+ peut &#234;tre reproduite ni utilis&#233;e sous quelque forme que ce soit et par aucun proc&#233;d&#233;, &#233;lectronique
71
+ ou m&#233;canique, y compris la photocopie, l&#8217;affichage sur l&#8217;internet ou sur un Intranet, sans
72
+ autorisation &#233;crite pr&#233;alable. Les demandes d&#8217;autorisation peuvent &#234;tre adress&#233;es &#224; l&#8217;ISO &#224;
73
+ l&#8217;adresse ci-apr&#232;s ou au comit&#233; membre de l&#8217;ISO dans le pays du demandeur.
74
+ </p>
75
+
76
+ <p id="boilerplate-address" align="left">
77
+ ISO copyright office<br/>
78
+ Ch. de Blandonnet 8 &#8226; CP 401<br/>
79
+ CH-1214 Vernier, Geneva, Switzerland<br/>
80
+ Tel.&#160;&#160;+ 41 22 749 01 11<br/>
81
+ Fax&#160;&#160;+ 41 22 749 09 47<br/>
82
+ Email: copyright@iso.org<br/>
83
+ Website: www.iso.org
84
+ </p>
85
+ <p id="boilerplate-place">
86
+ Publi&#233; en Suisse
87
+ </p>
88
+ </clause>
89
+ </copyright-statement>
90
+
91
+
92
+ </boilerplate>
93
+ <sections>
94
+ <terms id="H" obligation="normative"><title>1&#xA0; Terms, Definitions, Symbols and Abbreviated Terms</title>
95
+ <term id="J">
96
+ <name>1.1</name>
97
+ <preferred>Term2</preferred>
98
+ </term>
99
+ </terms>
100
+ </sections>
101
+ </iec-standard>
102
+ INPUT
103
+
12
104
  it "registers against metanorma" do
13
105
  expect(processor).not_to be nil
14
106
  end
15
107
 
16
108
  it "registers output formats against metanorma" do
17
109
  expect(processor.output_formats.sort.to_s).to be_equivalent_to <<~"OUTPUT"
18
- [[:doc, "doc"], [:html, "html"], [:pdf, "pdf"], [:presentation, "presentation.xml"], [:rxl, "rxl"], [:xml, "xml"]]
110
+ [[:doc, "doc"], [:html, "html"], [:pdf, "pdf"], [:presentation, "presentation.xml"], [:rxl, "rxl"], [:sts, "sts.xml"], [:xml, "xml"]]
19
111
  OUTPUT
20
112
  end
21
113
 
@@ -24,53 +116,56 @@ RSpec.describe Metanorma::Iec::Processor do
24
116
  end
25
117
 
26
118
  it "generates IsoDoc XML from a blank document" do
27
- expect(xmlpp(strip_guid(processor.input_to_isodoc(<<~"INPUT", nil)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
28
- #{ASCIIDOC_BLANK_HDR}
119
+ input = <<~INPUT
120
+ #{ASCIIDOC_BLANK_HDR}
29
121
  INPUT
30
- #{blank_hdr_gen}
31
- <sections/>
32
- </iec-standard>
122
+ output = <<~OUTPUT
123
+ #{blank_hdr_gen}
124
+ <sections/>
125
+ </iec-standard>
33
126
  OUTPUT
127
+ expect(xmlpp(strip_guid(processor.input_to_isodoc(input, nil))))
128
+ .to be_equivalent_to xmlpp(output)
34
129
  end
35
130
 
36
131
  it "generates HTML from IsoDoc XML" do
37
132
  FileUtils.rm_f "test.xml"
38
- processor.output(<<~"INPUT", "test.xml", "test.html", :html)
39
- <iec-standard xmlns="http://riboseinc.com/isoxml">
40
- <sections>
41
- <terms id="H" obligation="normative"><title>1<tab/>Terms, Definitions, Symbols and Abbreviated Terms</title>
42
- <term id="J">
43
- <name>1.1</name>
44
- <preferred>Term2</preferred>
45
- </term>
46
- </terms>
47
- </sections>
48
- </iec-standard>
49
- INPUT
50
- expect(xmlpp(File.read("test.html", encoding: "utf-8").gsub(%r{^.*<main}m, "<main").gsub(%r{</main>.*}m, "</main>"))).to be_equivalent_to xmlpp(<<~"OUTPUT")
51
- <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
52
- <br />
53
- <p class="zzSTDTitle1">INTERNATIONAL ELECTROTECHNICAL COMMISSION</p>
54
- <p class="zzSTDTitle1">____________</p>
55
- <p class="zzSTDTitle1">&#xA0;</p>
56
- <p class="zzSTDTitle1">
57
- <b></b>
58
- </p>
59
- <p class="zzSTDTitle1">&#xA0;</p>
60
- <div id="">
61
- <h1 class="ForewordTitle" id="toc0">FOREWORD</h1>
62
- <div class="boilerplate_legal"></div>
63
- </div>
64
- <p class="zzSTDTitle1">
65
- <b></b>
66
- </p>
67
- <p class="zzSTDTitle1">&#xA0;</p>
68
- <div id="H"><h1 id="toc1">1&#xA0; Terms, Definitions, Symbols and Abbreviated Terms</h1>
69
- <h2 class="TermNum" id="J">1.1</h2>
70
- <p class="Terms" style="text-align:left;">Term2</p>
71
- </div>
72
- </main>
73
- OUTPUT
133
+ FileUtils.rm_f "test.html"
134
+ processor.output(inputxml, "test.xml", "test.html", :html)
135
+ expect(xmlpp(File.read("test.html", encoding: "utf-8")
136
+ .gsub(%r{^.*<main}m, "<main")
137
+ .gsub(%r{</main>.*}m, "</main>")))
138
+ .to be_equivalent_to xmlpp(<<~"OUTPUT")
139
+ <main class="main-section"><button onclick="topFunction()" id="myBtn" title="Go to top">Top</button>
140
+ <br />
141
+ <p class="zzSTDTitle1">COMMISSION ELECTROTECHNIQUE INTERNATIONALE</p>
142
+ <p class="zzSTDTitle1">____________</p>
143
+ <p class="zzSTDTitle1">&#xA0;</p>
144
+ <p class="zzSTDTitle1">
145
+ <b>French</b>
146
+ </p>
147
+ <p class="zzSTDTitle1">&#xA0;</p>
148
+ <div id="">
149
+ <h1 class="ForewordTitle" id="toc0">AVANT-PROPOS</h1>
150
+ <div class="boilerplate_legal"></div>
151
+ </div>
152
+ <p class="zzSTDTitle1">
153
+ <b>French</b>
154
+ </p>
155
+ <p class="zzSTDTitle1">&#xA0;</p>
156
+ <div id="H"><h1 id="toc1">1&#xA0; Terms, Definitions, Symbols and Abbreviated Terms</h1>
157
+ <h2 class="TermNum" id="J">1.1</h2>
158
+ <p class="Terms" style="text-align:left;">Term2</p>
159
+ </div>
160
+ </main>
161
+ OUTPUT
74
162
  end
75
163
 
164
+ it "generates STS from Metanorma XML" do
165
+ FileUtils.rm_f "test.xml"
166
+ FileUtils.rm_f "test.sts.xml"
167
+ File.open("test.xml", "w") { |f| f.write inputxml }
168
+ processor.output(inputxml, "test.xml", "test.sts.xml", :sts)
169
+ expect(File.exist?("test.sts.xml")).to be true
170
+ end
76
171
  end
@@ -1,6 +1,6 @@
1
1
  require "spec_helper"
2
2
 
3
- RSpec.describe Asciidoctor::Iec do
3
+ RSpec.describe Metanorma::Iec do
4
4
  before(:all) do
5
5
  @blank_hdr = blank_hdr_gen
6
6
  end
@@ -1,7 +1,7 @@
1
1
  require "spec_helper"
2
2
  require "fileutils"
3
3
 
4
- RSpec.describe Asciidoctor::Iec do
4
+ RSpec.describe Metanorma::Iec do
5
5
  context "when xref_error.adoc compilation" do
6
6
  around do |example|
7
7
  FileUtils.rm_f "spec/assets/xref_error.err"
data/spec/spec_helper.rb CHANGED
@@ -27,7 +27,7 @@ end
27
27
 
28
28
  def metadata(xml)
29
29
  xml.sort.to_h.delete_if do |_k, v|
30
- v.nil? || v.respond_to?(:empty?) && v.empty?
30
+ v.nil? || (v.respond_to?(:empty?) && v.empty?)
31
31
  end
32
32
  end
33
33
 
@@ -105,24 +105,23 @@ VALIDATING_BLANK_HDR = <<~"HDR".freeze
105
105
  HDR
106
106
 
107
107
  TERMS_BOILERPLATE = <<~"BOILERPLATE".freeze
108
- <p id="_">ISO and IEC maintain terminological databases for use in
109
- standardization at the following addresses:</p>
110
- #{' '}
111
- <ul id="_">
112
- <li> <p id="_">IEC Electropedia: available at
113
- <link target="http://www.electropedia.org"/>
114
- </p> </li>#{' '}
115
- <li> <p id="_">ISO Online browsing platform: available at
116
- <link target="http://www.iso.org/obp"/></p> </li>
117
- </ul>
108
+ <p id="_">ISO and IEC maintain terminological databases for use in
109
+ standardization at the following addresses:</p>
110
+ <ul id="_">
111
+ <li> <p id="_">IEC Electropedia: available at
112
+ <link target="http://www.electropedia.org"/>
113
+ </p> </li>
114
+ <li> <p id="_">ISO Online browsing platform: available at
115
+ <link target="http://www.iso.org/obp"/></p> </li>
116
+ </ul>
118
117
  BOILERPLATE
119
118
 
120
119
  def boilerplate(xmldoc)
121
120
  file = File.read(
122
- File.join(File.dirname(__FILE__), "..", "lib", "asciidoctor", "iec",
121
+ File.join(File.dirname(__FILE__), "..", "lib", "metanorma", "iec",
123
122
  "iec_intro_en.xml"), encoding: "utf-8"
124
123
  )
125
- conv = Asciidoctor::Iec::Converter.new(nil, backend: :iec,
124
+ conv = Metanorma::Iec::Converter.new(nil, backend: :iec,
126
125
  header_footer: true)
127
126
  conv.init(Asciidoctor::Document.new([]))
128
127
  ret = Nokogiri::XML(
@@ -169,7 +168,6 @@ BLANK_HDR = <<~"HDR".freeze
169
168
  </copyright>
170
169
  <ext>
171
170
  <doctype>article</doctype>
172
- <horizontal>false</horizontal>
173
171
  <editorialgroup>
174
172
  <technical-committee/>
175
173
  <subcommittee/>
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: 1.4.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-15 00:00:00.000000000 Z
11
+ date: 2022-01-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-iso
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 1.10.0
19
+ version: 2.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 1.10.0
26
+ version: 2.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: ruby-jing
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: byebug
42
+ name: debug
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: 0.2.0
103
+ version: 0.3.0
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: 0.2.0
110
+ version: 0.3.0
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -212,16 +212,6 @@ files:
212
212
  - README.adoc
213
213
  - Rakefile
214
214
  - bin/rspec
215
- - lib/asciidoctor/iec/basicdoc.rng
216
- - lib/asciidoctor/iec/biblio.rng
217
- - lib/asciidoctor/iec/converter.rb
218
- - lib/asciidoctor/iec/front.rb
219
- - lib/asciidoctor/iec/iec.rng
220
- - lib/asciidoctor/iec/iec_intro_en.xml
221
- - lib/asciidoctor/iec/iec_intro_fr.xml
222
- - lib/asciidoctor/iec/isodoc.rng
223
- - lib/asciidoctor/iec/isostandard.rng
224
- - lib/asciidoctor/iec/reqt.rng
225
215
  - lib/isodoc/iec/base_convert.rb
226
216
  - lib/isodoc/iec/html/header.html
227
217
  - lib/isodoc/iec/html/html_iec_intro.html
@@ -249,17 +239,19 @@ files:
249
239
  - lib/isodoc/iec/xref.rb
250
240
  - lib/metanorma-iec.rb
251
241
  - lib/metanorma/iec.rb
242
+ - lib/metanorma/iec/basicdoc.rng
243
+ - lib/metanorma/iec/biblio.rng
244
+ - lib/metanorma/iec/converter.rb
245
+ - lib/metanorma/iec/front.rb
246
+ - lib/metanorma/iec/iec.rng
247
+ - lib/metanorma/iec/iec_intro_en.xml
248
+ - lib/metanorma/iec/iec_intro_fr.xml
249
+ - lib/metanorma/iec/isodoc.rng
250
+ - lib/metanorma/iec/isostandard.rng
252
251
  - lib/metanorma/iec/processor.rb
252
+ - lib/metanorma/iec/reqt.rng
253
253
  - lib/metanorma/iec/version.rb
254
254
  - metanorma-iec.gemspec
255
- - spec/asciidoctor/base_spec.rb
256
- - spec/asciidoctor/blocks_spec.rb
257
- - spec/asciidoctor/cleanup_spec.rb
258
- - spec/asciidoctor/iev_spec.rb
259
- - spec/asciidoctor/inline_spec.rb
260
- - spec/asciidoctor/lists_spec.rb
261
- - spec/asciidoctor/section_spec.rb
262
- - spec/asciidoctor/validate_spec.rb
263
255
  - spec/assets/header.html
264
256
  - spec/assets/html.css
265
257
  - spec/assets/iso.xml
@@ -277,7 +269,15 @@ files:
277
269
  - spec/isodoc/ref_spec.rb
278
270
  - spec/isodoc/section_spec.rb
279
271
  - spec/isodoc/terms_spec.rb
272
+ - spec/metanorma/base_spec.rb
273
+ - spec/metanorma/blocks_spec.rb
274
+ - spec/metanorma/cleanup_spec.rb
275
+ - spec/metanorma/iev_spec.rb
276
+ - spec/metanorma/inline_spec.rb
277
+ - spec/metanorma/lists_spec.rb
280
278
  - spec/metanorma/processor_spec.rb
279
+ - spec/metanorma/section_spec.rb
280
+ - spec/metanorma/validate_spec.rb
281
281
  - spec/spec_helper.rb
282
282
  homepage: https://github.com/metanorma/metanorma-iec
283
283
  licenses:
@@ -298,7 +298,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  requirements: []
301
- rubygems_version: 3.2.22
301
+ rubygems_version: 3.2.32
302
302
  signing_key:
303
303
  specification_version: 4
304
304
  summary: metanorma-iec lets you write IEC standards in AsciiDoc.
@@ -1,105 +0,0 @@
1
- require "asciidoctor"
2
- require "metanorma-iso"
3
- require_relative "./front.rb"
4
-
5
- module Asciidoctor
6
- module Iec
7
- class Converter < ISO::Converter
8
- XML_ROOT_TAG = "iec-standard".freeze
9
- XML_NAMESPACE = "https://www.metanorma.org/ns/iec".freeze
10
-
11
- register_for "iec"
12
-
13
- def init(node)
14
- super
15
- @is_iev = node.attr("docnumber") == "60050"
16
- end
17
-
18
- def boilerplate_file(x_orig)
19
- lang = case x_orig&.at("//bibdata/language")&.text
20
- when "fr" then "fr"
21
- else
22
- "en"
23
- end
24
- File.join(@libdir, "iec_intro_#{lang}.xml")
25
- end
26
-
27
- def doctype_validate(xmldoc)
28
- doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
29
- %w(international-standard technical-specification technical-report
30
- publicly-available-specification international-workshop-agreement
31
- guide interpretation-sheet).include? doctype or
32
- @log.add("Document Attributes", nil, "#{doctype} is not a recognised document type")
33
- if function = xmldoc&.at("//bibdata/ext/function")&.text
34
- %w(emc quality-assurance safety environment).include? function or
35
- @log.add("Document Attributes", nil, "#{function} is not a recognised document function")
36
- end
37
- end
38
-
39
- def validate(doc)
40
- content_validate(doc)
41
- schema_validate(formattedstr_strip(doc.dup),
42
- File.join(File.dirname(__FILE__), "iec.rng"))
43
- end
44
-
45
- def html_converter(node)
46
- node.nil? ? IsoDoc::Iec::HtmlConvert.new({}) :
47
- IsoDoc::Iec::HtmlConvert.new(html_extract_attributes(node))
48
- end
49
-
50
- def doc_converter(node)
51
- node.nil? ? IsoDoc::Iec::WordConvert.new({}) :
52
- IsoDoc::Iec::WordConvert.new(doc_extract_attributes(node))
53
- end
54
-
55
- def pdf_converter(node)
56
- return if node.attr("no-pdf")
57
- node.nil? ? IsoDoc::Iec::PdfConvert.new({}) :
58
- IsoDoc::Iec::PdfConvert.new(doc_extract_attributes(node))
59
- end
60
-
61
- def presentation_xml_converter(node)
62
- node.nil? ? IsoDoc::Iec::PresentationXMLConvert.new({}) :
63
- IsoDoc::Iec::PresentationXMLConvert.new(doc_extract_attributes(node))
64
- end
65
-
66
- def norm_ref_preface(f)
67
- return super unless @is_iev
68
- f.at("./title").next =
69
- "<p>#{@i18n.norm_empty_pref}</p>"
70
- end
71
-
72
- def term_defs_boilerplate(div, source, term, preface, isodoc)
73
- return super unless @is_iev
74
- end
75
-
76
- def sts_converter(node)
77
- end
78
-
79
- def sections_names_cleanup(x)
80
- super
81
- @is_iev and replace_title(x, "//introduction", @i18n&.introduction_iev)
82
- end
83
-
84
- def note(n)
85
- if n.title == "Note from TC/SC Officers"
86
- noko do |xml|
87
- xml.tc_sc_officers_note do |c|
88
- wrap_in_para(n, c)
89
- end
90
- end.join("\n")
91
- else
92
- super
93
- end
94
- end
95
-
96
- def note_cleanup(xmldoc)
97
- super
98
- n = xmldoc.at("//tc-sc-officers-note") and xmldoc.at("//bibdata/ext").add_child(n.remove)
99
- end
100
-
101
- def image_name_validate(xmldoc)
102
- end
103
- end
104
- end
105
- end