metanorma-iec 1.1.0 → 1.2.1
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/.github/workflows/macos.yml +0 -1
- data/.github/workflows/ubuntu.yml +10 -7
- data/.github/workflows/windows.yml +0 -1
- data/Rakefile +2 -0
- data/lib/asciidoctor/iec/converter.rb +6 -15
- data/lib/asciidoctor/iec/isodoc.rng +12 -6
- data/lib/isodoc/iec/base_convert.rb +9 -41
- data/lib/isodoc/iec/html/htmlstyle.css +962 -0
- data/lib/isodoc/iec/html/htmlstyle.scss +0 -3
- data/lib/isodoc/iec/html/isodoc.css +845 -0
- data/lib/isodoc/iec/html/isodoc.scss +0 -1
- data/lib/isodoc/iec/html/wordstyle.css +2013 -0
- data/lib/isodoc/iec/html/wordstyle.scss +0 -1
- data/lib/isodoc/iec/html_convert.rb +2 -0
- data/lib/isodoc/iec/i18n-en.yaml +13 -0
- data/lib/isodoc/iec/i18n-fr.yaml +13 -0
- data/lib/isodoc/iec/i18n-zh-Hans.yaml +11 -0
- data/lib/isodoc/iec/i18n.rb +19 -0
- data/lib/isodoc/iec/iec.international-standard.xsl +1302 -1227
- data/lib/isodoc/iec/init.rb +29 -0
- data/lib/isodoc/iec/presentation_xml_convert.rb +26 -1
- data/lib/isodoc/iec/word_convert.rb +5 -3
- data/lib/isodoc/iec/xref.rb +1 -1
- data/lib/metanorma/iec/processor.rb +0 -4
- data/lib/metanorma/iec/version.rb +1 -1
- data/metanorma-iec.gemspec +3 -2
- data/spec/asciidoctor-iec/blocks_spec.rb +1 -1
- data/spec/asciidoctor-iec/cleanup_spec.rb +2 -2
- data/spec/asciidoctor-iec/iev_spec.rb +74 -1
- data/spec/asciidoctor-iec/inline_spec.rb +1 -1
- data/spec/asciidoctor-iec/section_spec.rb +17 -15
- data/spec/isodoc/blocks_spec.rb +66 -1
- data/spec/isodoc/i18n_spec.rb +296 -244
- data/spec/isodoc/iev_spec.rb +221 -14
- data/spec/isodoc/inline_spec.rb +97 -73
- data/spec/isodoc/iso_spec.rb +6 -0
- data/spec/isodoc/postproc_spec.rb +15 -29
- data/spec/isodoc/ref_spec.rb +129 -2
- data/spec/isodoc/section_spec.rb +112 -102
- data/spec/isodoc/terms_spec.rb +67 -53
- data/spec/metanorma/processor_spec.rb +2 -1
- metadata +25 -9
- data/lib/asciidoctor/iec/i18n-en.yaml +0 -12
- data/lib/asciidoctor/iec/i18n-fr.yaml +0 -11
- data/lib/asciidoctor/iec/i18n-zh-Hans.yaml +0 -9
data/spec/isodoc/i18n_spec.rb
CHANGED
@@ -2,7 +2,7 @@ require "spec_helper"
|
|
2
2
|
|
3
3
|
RSpec.describe IsoDoc do
|
4
4
|
it "processes English" do
|
5
|
-
|
5
|
+
input = <<~INPUT
|
6
6
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
7
7
|
<bibdata>
|
8
8
|
<docnumber>1</docnumber>
|
@@ -18,7 +18,7 @@ RSpec.describe IsoDoc do
|
|
18
18
|
</clause>
|
19
19
|
<p>This is patent boilerplate</p>
|
20
20
|
</introduction></preface><sections>
|
21
|
-
<clause id="D" obligation="normative">
|
21
|
+
<clause id="D" obligation="normative" type="scope">
|
22
22
|
<title>Scope</title>
|
23
23
|
<p id="E">Text</p>
|
24
24
|
</clause>
|
@@ -71,6 +71,78 @@ RSpec.describe IsoDoc do
|
|
71
71
|
</bibliography>
|
72
72
|
</iso-standard>
|
73
73
|
INPUT
|
74
|
+
|
75
|
+
presxml = <<~OUTPUT
|
76
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
77
|
+
<bibdata>
|
78
|
+
<docnumber>1</docnumber>
|
79
|
+
<language>en</language>
|
80
|
+
</bibdata>
|
81
|
+
<preface>
|
82
|
+
<foreword obligation="informative">
|
83
|
+
<title>Foreword</title>
|
84
|
+
<p id="A">This is a preamble</p>
|
85
|
+
</foreword>
|
86
|
+
<introduction id="B" obligation="informative"><title depth="1">0<tab/>Introduction</title><clause id="C" inline-header="false" obligation="informative">
|
87
|
+
<title depth="2">0.1<tab/>Introduction Subsection</title>
|
88
|
+
</clause>
|
89
|
+
<p>This is patent boilerplate</p>
|
90
|
+
</introduction></preface><sections>
|
91
|
+
<clause id="D" obligation="normative" type="scope">
|
92
|
+
<title depth="1">1<tab/>Scope</title>
|
93
|
+
<p id="E">Text</p>
|
94
|
+
</clause>
|
95
|
+
|
96
|
+
<clause id="H" obligation="normative"><title depth="1">3<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
|
97
|
+
<title depth="2">3.1<tab/>Normal Terms</title>
|
98
|
+
<term id="J"><name>3.1.1</name>
|
99
|
+
<preferred>Term2</preferred>
|
100
|
+
</term>
|
101
|
+
</terms>
|
102
|
+
<definitions id="K"><title>3.2</title>
|
103
|
+
<dl>
|
104
|
+
<dt>Symbol</dt>
|
105
|
+
<dd>Definition</dd>
|
106
|
+
</dl>
|
107
|
+
</definitions>
|
108
|
+
</clause>
|
109
|
+
<definitions id="L"><title>4</title>
|
110
|
+
<dl>
|
111
|
+
<dt>Symbol</dt>
|
112
|
+
<dd>Definition</dd>
|
113
|
+
</dl>
|
114
|
+
</definitions>
|
115
|
+
<clause id="M" inline-header="false" obligation="normative"><title depth="1">5<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
116
|
+
<title depth="2">5.1<tab/>Introduction</title>
|
117
|
+
</clause>
|
118
|
+
<clause id="O" inline-header="false" obligation="normative">
|
119
|
+
<title depth="2">5.2<tab/>Clause 4.2</title>
|
120
|
+
</clause></clause>
|
121
|
+
|
122
|
+
</sections><annex id="P" inline-header="false" obligation="normative">
|
123
|
+
<title><strong>Annex A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
|
124
|
+
<clause id="Q" inline-header="false" obligation="normative">
|
125
|
+
<title depth="2">A.1<tab/>Annex A.1</title>
|
126
|
+
<clause id="Q1" inline-header="false" obligation="normative">
|
127
|
+
<title depth="3">A.1.1<tab/>Annex A.1a</title>
|
128
|
+
</clause>
|
129
|
+
</clause>
|
130
|
+
<appendix id="Q2" inline-header="false" obligation="normative">
|
131
|
+
<title depth="2">Appendix 1<tab/>An Appendix</title>
|
132
|
+
</appendix>
|
133
|
+
</annex><bibliography><references id="R" obligation="informative" normative="true">
|
134
|
+
<title depth="1">2<tab/>Normative References</title>
|
135
|
+
</references><clause id="S" obligation="informative">
|
136
|
+
<title depth="1">Bibliography</title>
|
137
|
+
<references id="T" obligation="informative" normative="false">
|
138
|
+
<title depth="2">Bibliography Subsection</title>
|
139
|
+
</references>
|
140
|
+
</clause>
|
141
|
+
</bibliography>
|
142
|
+
</iso-standard>
|
143
|
+
OUTPUT
|
144
|
+
|
145
|
+
html = <<~OUTPUT
|
74
146
|
#{HTML_HDR}
|
75
147
|
<div>
|
76
148
|
<h1 class="ForewordTitle">FOREWORD</h1>
|
@@ -79,7 +151,7 @@ RSpec.describe IsoDoc do
|
|
79
151
|
</div>
|
80
152
|
<br/>
|
81
153
|
<div class="Section3" id="B">
|
82
|
-
<h1 class="IntroTitle">0 
|
154
|
+
<h1 class="IntroTitle">0  Introduction</h1>
|
83
155
|
<div id="C"><h2>0.1  Introduction Subsection</h2>
|
84
156
|
|
85
157
|
</div>
|
@@ -91,7 +163,7 @@ RSpec.describe IsoDoc do
|
|
91
163
|
<p id="E">Text</p>
|
92
164
|
</div>
|
93
165
|
<div>
|
94
|
-
<h1>2  Normative
|
166
|
+
<h1>2  Normative References</h1>
|
95
167
|
</div>
|
96
168
|
<div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1>
|
97
169
|
<div id="I"><h2>3.1  Normal Terms</h2>
|
@@ -99,11 +171,11 @@ RSpec.describe IsoDoc do
|
|
99
171
|
<p class="TermNum" id="J">3.1.1</p>
|
100
172
|
<p class="Terms" style="text-align:left;">Term2</p>
|
101
173
|
|
102
|
-
</div><div id="K"><h2>3.2
|
174
|
+
</div><div id="K"><h2>3.2</h2>
|
103
175
|
<dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
|
104
176
|
</div></div>
|
105
177
|
<div id="L" class="Symbols">
|
106
|
-
<h1>4
|
178
|
+
<h1>4</h1>
|
107
179
|
<dl>
|
108
180
|
<dt>
|
109
181
|
<p>Symbol</p>
|
@@ -122,7 +194,7 @@ RSpec.describe IsoDoc do
|
|
122
194
|
</div>
|
123
195
|
<br/>
|
124
196
|
<div id="P" class="Section3">
|
125
|
-
<h1 class="Annex"><b>Annex A</b><br
|
197
|
+
<h1 class="Annex"><b>Annex A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
|
126
198
|
<div id="Q"><h2>A.1  Annex A.1</h2>
|
127
199
|
|
128
200
|
<div id="Q1"><h3>A.1.1  Annex A.1a</h3>
|
@@ -144,10 +216,12 @@ RSpec.describe IsoDoc do
|
|
144
216
|
</body>
|
145
217
|
</html>
|
146
218
|
OUTPUT
|
219
|
+
expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
220
|
+
expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
147
221
|
end
|
148
222
|
|
149
223
|
it "defaults to English" do
|
150
|
-
expect(xmlpp(IsoDoc::Iec::
|
224
|
+
expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
151
225
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
152
226
|
<bibdata>
|
153
227
|
<language>tlh</language>
|
@@ -162,7 +236,7 @@ RSpec.describe IsoDoc do
|
|
162
236
|
</clause>
|
163
237
|
<p>This is patent boilerplate</p>
|
164
238
|
</introduction></preface><sections>
|
165
|
-
<clause id="D" obligation="normative">
|
239
|
+
<clause id="D" obligation="normative" type="scope">
|
166
240
|
<title>Scope</title>
|
167
241
|
<p id="E">Text</p>
|
168
242
|
</clause>
|
@@ -215,83 +289,146 @@ RSpec.describe IsoDoc do
|
|
215
289
|
</bibliography>
|
216
290
|
</iso-standard>
|
217
291
|
INPUT
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
<
|
225
|
-
<
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
<
|
231
|
-
|
232
|
-
|
233
|
-
<
|
234
|
-
<
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
</
|
240
|
-
<
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
292
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml'>
|
293
|
+
<bibdata>
|
294
|
+
<language>tlh</language>
|
295
|
+
</bibdata>
|
296
|
+
<preface>
|
297
|
+
<foreword obligation='informative'>
|
298
|
+
<title>Foreword</title>
|
299
|
+
<p id='A'>This is a preamble</p>
|
300
|
+
</foreword>
|
301
|
+
<introduction id='B' obligation='informative'>
|
302
|
+
<title depth='1'>
|
303
|
+
0
|
304
|
+
<tab/>
|
305
|
+
Introduction
|
306
|
+
</title>
|
307
|
+
<clause id='C' inline-header='false' obligation='informative'>
|
308
|
+
<title depth='2'>
|
309
|
+
0.1
|
310
|
+
<tab/>
|
311
|
+
Introduction Subsection
|
312
|
+
</title>
|
313
|
+
</clause>
|
314
|
+
<p>This is patent boilerplate</p>
|
315
|
+
</introduction>
|
316
|
+
</preface>
|
317
|
+
<sections>
|
318
|
+
<clause id='D' obligation='normative' type="scope">
|
319
|
+
<title depth='1'>
|
320
|
+
1
|
321
|
+
<tab/>
|
322
|
+
Scope
|
323
|
+
</title>
|
324
|
+
<p id='E'>Text</p>
|
325
|
+
</clause>
|
326
|
+
<clause id='H' obligation='normative'>
|
327
|
+
<title depth='1'>
|
328
|
+
3
|
329
|
+
<tab/>
|
330
|
+
Terms, definitions, symbols and abbreviated terms
|
331
|
+
</title>
|
332
|
+
<terms id='I' obligation='normative'>
|
333
|
+
<title depth='2'>
|
334
|
+
3.1
|
335
|
+
<tab/>
|
336
|
+
Normal Terms
|
337
|
+
</title>
|
338
|
+
<term id='J'>
|
339
|
+
<name>3.1.1</name>
|
340
|
+
<preferred>Term2</preferred>
|
341
|
+
</term>
|
342
|
+
</terms>
|
343
|
+
<definitions id='K'>
|
344
|
+
<title>3.2</title>
|
251
345
|
<dl>
|
252
|
-
<dt>
|
253
|
-
<p>Symbol</p>
|
254
|
-
</dt>
|
346
|
+
<dt>Symbol</dt>
|
255
347
|
<dd>Definition</dd>
|
256
348
|
</dl>
|
257
|
-
</
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
<
|
264
|
-
|
265
|
-
|
266
|
-
|
349
|
+
</definitions>
|
350
|
+
</clause>
|
351
|
+
<definitions id='L'>
|
352
|
+
<title>4</title>
|
353
|
+
<dl>
|
354
|
+
<dt>Symbol</dt>
|
355
|
+
<dd>Definition</dd>
|
356
|
+
</dl>
|
357
|
+
</definitions>
|
358
|
+
<clause id='M' inline-header='false' obligation='normative'>
|
359
|
+
<title depth='1'>
|
360
|
+
5
|
361
|
+
<tab/>
|
362
|
+
Clause 4
|
363
|
+
</title>
|
364
|
+
<clause id='N' inline-header='false' obligation='normative'>
|
365
|
+
<title depth='2'>
|
366
|
+
5.1
|
367
|
+
<tab/>
|
368
|
+
Introduction
|
369
|
+
</title>
|
370
|
+
</clause>
|
371
|
+
<clause id='O' inline-header='false' obligation='normative'>
|
372
|
+
<title depth='2'>
|
373
|
+
5.2
|
374
|
+
<tab/>
|
375
|
+
Clause 4.2
|
376
|
+
</title>
|
377
|
+
</clause>
|
378
|
+
</clause>
|
379
|
+
</sections>
|
380
|
+
<annex id='P' inline-header='false' obligation='normative'>
|
381
|
+
<title>
|
382
|
+
<strong>Annex A</strong>
|
267
383
|
<br/>
|
268
|
-
|
269
|
-
<h1 class="Annex"><b>Annex A</b><br/><br/>(normative)<br/><br/><b>Annex</b></h1>
|
270
|
-
<div id="Q"><h2>A.1  Annex A.1</h2>
|
271
|
-
|
272
|
-
<div id="Q1"><h3>A.1.1  Annex A.1a</h3>
|
273
|
-
|
274
|
-
</div>
|
275
|
-
</div>
|
276
|
-
<div id="Q2"><h2>Appendix 1  An Appendix</h2>
|
277
|
-
|
278
|
-
</div>
|
279
|
-
</div>
|
384
|
+
(normative)
|
280
385
|
<br/>
|
281
|
-
<
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
386
|
+
<br/>
|
387
|
+
<strong>Annex</strong>
|
388
|
+
</title>
|
389
|
+
<clause id='Q' inline-header='false' obligation='normative'>
|
390
|
+
<title depth='2'>
|
391
|
+
A.1
|
392
|
+
<tab/>
|
393
|
+
Annex A.1
|
394
|
+
</title>
|
395
|
+
<clause id='Q1' inline-header='false' obligation='normative'>
|
396
|
+
<title depth='3'>
|
397
|
+
A.1.1
|
398
|
+
<tab/>
|
399
|
+
Annex A.1a
|
400
|
+
</title>
|
401
|
+
</clause>
|
402
|
+
</clause>
|
403
|
+
<appendix id='Q2' inline-header='false' obligation='normative'>
|
404
|
+
<title depth='2'>
|
405
|
+
Appendix 1
|
406
|
+
<tab/>
|
407
|
+
An Appendix
|
408
|
+
</title>
|
409
|
+
</appendix>
|
410
|
+
</annex>
|
411
|
+
<bibliography>
|
412
|
+
<references id='R' obligation='informative' normative='true'>
|
413
|
+
<title depth='1'>
|
414
|
+
2
|
415
|
+
<tab/>
|
416
|
+
Normative References
|
417
|
+
</title>
|
418
|
+
</references>
|
419
|
+
<clause id='S' obligation='informative'>
|
420
|
+
<title depth='1'>Bibliography</title>
|
421
|
+
<references id='T' obligation='informative' normative='false'>
|
422
|
+
<title depth='2'>Bibliography Subsection</title>
|
423
|
+
</references>
|
424
|
+
</clause>
|
425
|
+
</bibliography>
|
426
|
+
</iso-standard>
|
290
427
|
OUTPUT
|
291
428
|
end
|
292
429
|
|
293
430
|
it "processes French" do
|
294
|
-
|
431
|
+
input = <<~INPUT
|
295
432
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
296
433
|
<bibdata>
|
297
434
|
<language>fr</language>
|
@@ -306,7 +443,7 @@ RSpec.describe IsoDoc do
|
|
306
443
|
</clause>
|
307
444
|
<p>This is patent boilerplate</p>
|
308
445
|
</introduction></preface><sections>
|
309
|
-
<clause id="D" obligation="normative">
|
446
|
+
<clause id="D" obligation="normative" type="scope">
|
310
447
|
<title>Scope</title>
|
311
448
|
<p id="E">Text</p>
|
312
449
|
</clause>
|
@@ -359,6 +496,77 @@ RSpec.describe IsoDoc do
|
|
359
496
|
</bibliography>
|
360
497
|
</iso-standard>
|
361
498
|
INPUT
|
499
|
+
|
500
|
+
presxml = <<~OUTPUT
|
501
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
502
|
+
<bibdata>
|
503
|
+
<language>fr</language>
|
504
|
+
</bibdata>
|
505
|
+
<preface>
|
506
|
+
<foreword obligation="informative">
|
507
|
+
<title>Foreword</title>
|
508
|
+
<p id="A">This is a preamble</p>
|
509
|
+
</foreword>
|
510
|
+
<introduction id="B" obligation="informative"><title depth="1">0<tab/>Introduction</title><clause id="C" inline-header="false" obligation="informative">
|
511
|
+
<title depth="2">0.1<tab/>Introduction Subsection</title>
|
512
|
+
</clause>
|
513
|
+
<p>This is patent boilerplate</p>
|
514
|
+
</introduction></preface><sections>
|
515
|
+
<clause id="D" obligation="normative" type="scope">
|
516
|
+
<title depth="1">1<tab/>Scope</title>
|
517
|
+
<p id="E">Text</p>
|
518
|
+
</clause>
|
519
|
+
|
520
|
+
<clause id="H" obligation="normative"><title depth="1">3<tab/>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
|
521
|
+
<title depth="2">3.1<tab/>Normal Terms</title>
|
522
|
+
<term id="J"><name>3.1.1</name>
|
523
|
+
<preferred>Term2</preferred>
|
524
|
+
</term>
|
525
|
+
</terms>
|
526
|
+
<definitions id="K"><title>3.2</title>
|
527
|
+
<dl>
|
528
|
+
<dt>Symbol</dt>
|
529
|
+
<dd>Definition</dd>
|
530
|
+
</dl>
|
531
|
+
</definitions>
|
532
|
+
</clause>
|
533
|
+
<definitions id="L"><title>4</title>
|
534
|
+
<dl>
|
535
|
+
<dt>Symbol</dt>
|
536
|
+
<dd>Definition</dd>
|
537
|
+
</dl>
|
538
|
+
</definitions>
|
539
|
+
<clause id="M" inline-header="false" obligation="normative"><title depth="1">5<tab/>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
540
|
+
<title depth="2">5.1<tab/>Introduction</title>
|
541
|
+
</clause>
|
542
|
+
<clause id="O" inline-header="false" obligation="normative">
|
543
|
+
<title depth="2">5.2<tab/>Clause 4.2</title>
|
544
|
+
</clause></clause>
|
545
|
+
|
546
|
+
</sections><annex id="P" inline-header="false" obligation="normative">
|
547
|
+
<title><strong>Annexe A</strong><br/>(normative)<br/><br/><strong>Annex</strong></title>
|
548
|
+
<clause id="Q" inline-header="false" obligation="normative">
|
549
|
+
<title depth="2">A.1<tab/>Annex A.1</title>
|
550
|
+
<clause id="Q1" inline-header="false" obligation="normative">
|
551
|
+
<title depth="3">A.1.1<tab/>Annex A.1a</title>
|
552
|
+
</clause>
|
553
|
+
</clause>
|
554
|
+
<appendix id="Q2" inline-header="false" obligation="normative">
|
555
|
+
<title depth="2">Appendice 1<tab/>An Appendix</title>
|
556
|
+
</appendix>
|
557
|
+
</annex><bibliography><references id="R" obligation="informative" normative="true">
|
558
|
+
<title depth="1">2<tab/>Normative References</title>
|
559
|
+
</references><clause id="S" obligation="informative">
|
560
|
+
<title depth="1">Bibliography</title>
|
561
|
+
<references id="T" obligation="informative" normative="false">
|
562
|
+
<title depth="2">Bibliography Subsection</title>
|
563
|
+
</references>
|
564
|
+
</clause>
|
565
|
+
</bibliography>
|
566
|
+
</iso-standard>
|
567
|
+
OUTPUT
|
568
|
+
|
569
|
+
html = <<~OUTPUT
|
362
570
|
#{HTML_HDR.sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "COMMISSION ELECTROTECHNIQUE INTERNATIONALE").
|
363
571
|
gsub(/"en"/, '"fr"')}
|
364
572
|
<div>
|
@@ -368,7 +576,7 @@ RSpec.describe IsoDoc do
|
|
368
576
|
</div>
|
369
577
|
<br/>
|
370
578
|
<div class="Section3" id="B">
|
371
|
-
<h1 class="IntroTitle">0 
|
579
|
+
<h1 class="IntroTitle">0  Introduction</h1>
|
372
580
|
<div id="C"><h2>0.1  Introduction Subsection</h2>
|
373
581
|
|
374
582
|
</div>
|
@@ -376,23 +584,23 @@ RSpec.describe IsoDoc do
|
|
376
584
|
</div>
|
377
585
|
#{IEC_TITLE1}
|
378
586
|
<div id="D">
|
379
|
-
<h1>1 
|
587
|
+
<h1>1  Scope</h1>
|
380
588
|
<p id="E">Text</p>
|
381
589
|
</div>
|
382
590
|
<div>
|
383
|
-
<h1>2 
|
591
|
+
<h1>2  Normative References</h1>
|
384
592
|
</div>
|
385
|
-
<div id="H"><h1>3  Terms,
|
593
|
+
<div id="H"><h1>3  Terms, definitions, symbols and abbreviated terms</h1>
|
386
594
|
<div id="I"><h2>3.1  Normal Terms</h2>
|
387
595
|
|
388
596
|
<p class="TermNum" id="J">3.1.1</p>
|
389
597
|
<p class="Terms" style="text-align:left;">Term2</p>
|
390
598
|
|
391
|
-
</div><div id="K"><h2>3.2
|
599
|
+
</div><div id="K"><h2>3.2</h2>
|
392
600
|
<dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
|
393
601
|
</div></div>
|
394
602
|
<div id="L" class="Symbols">
|
395
|
-
<h1>4
|
603
|
+
<h1>4</h1>
|
396
604
|
<dl>
|
397
605
|
<dt>
|
398
606
|
<p>Symbol</p>
|
@@ -411,7 +619,7 @@ RSpec.describe IsoDoc do
|
|
411
619
|
</div>
|
412
620
|
<br/>
|
413
621
|
<div id="P" class="Section3">
|
414
|
-
<h1 class="Annex"><b>Annexe A</b><br
|
622
|
+
<h1 class="Annex"><b>Annexe A</b><br/>(normative)<br/><br/><b>Annex</b></h1>
|
415
623
|
<div id="Q"><h2>A.1  Annex A.1</h2>
|
416
624
|
|
417
625
|
<div id="Q1"><h3>A.1.1  Annex A.1a</h3>
|
@@ -424,165 +632,7 @@ RSpec.describe IsoDoc do
|
|
424
632
|
</div>
|
425
633
|
<br/>
|
426
634
|
<div>
|
427
|
-
<h1 class="Section3">
|
428
|
-
<div>
|
429
|
-
<h2 class="Section3">Bibliography Subsection</h2>
|
430
|
-
</div>
|
431
|
-
</div>
|
432
|
-
</div>
|
433
|
-
</body>
|
434
|
-
</html>
|
435
|
-
OUTPUT
|
436
|
-
end
|
437
|
-
|
438
|
-
it "processes Simplified Chinese" do
|
439
|
-
expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
440
|
-
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
441
|
-
<bibdata>
|
442
|
-
<language>zh</language>
|
443
|
-
<script>Hans</script>
|
444
|
-
</bibdata>
|
445
|
-
<preface>
|
446
|
-
<foreword obligation="informative">
|
447
|
-
<title>Foreword</title>
|
448
|
-
<p id="A">This is a preamble</p>
|
449
|
-
</foreword>
|
450
|
-
<introduction id="B" obligation="informative"><title>Introduction</title><clause id="C" inline-header="false" obligation="informative">
|
451
|
-
<title>Introduction Subsection</title>
|
452
|
-
</clause>
|
453
|
-
<p>This is patent boilerplate</p>
|
454
|
-
</introduction></preface><sections>
|
455
|
-
<clause id="D" obligation="normative">
|
456
|
-
<title>Scope</title>
|
457
|
-
<p id="E"><eref type="inline" bibitemid="ISO712"><locality type="table"><referenceFrom>1</referenceFrom><referenceTo>1</referenceTo></locality></eref></p>
|
458
|
-
</clause>
|
459
|
-
|
460
|
-
<clause id="H" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title><terms id="I" obligation="normative">
|
461
|
-
<title>Normal Terms</title>
|
462
|
-
<term id="J">
|
463
|
-
<preferred>Term2</preferred>
|
464
|
-
</term>
|
465
|
-
</terms>
|
466
|
-
<definitions id="K">
|
467
|
-
<dl>
|
468
|
-
<dt>Symbol</dt>
|
469
|
-
<dd>Definition</dd>
|
470
|
-
</dl>
|
471
|
-
</definitions>
|
472
|
-
</clause>
|
473
|
-
<definitions id="L">
|
474
|
-
<dl>
|
475
|
-
<dt>Symbol</dt>
|
476
|
-
<dd>Definition</dd>
|
477
|
-
</dl>
|
478
|
-
</definitions>
|
479
|
-
<clause id="M" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="N" inline-header="false" obligation="normative">
|
480
|
-
<title>Introduction</title>
|
481
|
-
</clause>
|
482
|
-
<clause id="O" inline-header="false" obligation="normative">
|
483
|
-
<title>Clause 4.2</title>
|
484
|
-
</clause></clause>
|
485
|
-
|
486
|
-
</sections><annex id="P" inline-header="false" obligation="normative">
|
487
|
-
<title>Annex</title>
|
488
|
-
<clause id="Q" inline-header="false" obligation="normative">
|
489
|
-
<title>Annex A.1</title>
|
490
|
-
<clause id="Q1" inline-header="false" obligation="normative">
|
491
|
-
<title>Annex A.1a</title>
|
492
|
-
</clause>
|
493
|
-
</clause>
|
494
|
-
<appendix id="Q2" inline-header="false" obligation="normative">
|
495
|
-
<title>An Appendix</title>
|
496
|
-
</appendix>
|
497
|
-
</annex><bibliography><references id="R" obligation="informative" normative="true">
|
498
|
-
<title>Normative References</title>
|
499
|
-
<bibitem id="ISO712" type="standard">
|
500
|
-
<title format="text/plain">Cereals and cereal products</title>
|
501
|
-
<docidentifier>ISO 712</docidentifier>
|
502
|
-
<contributor>
|
503
|
-
<role type="publisher"/>
|
504
|
-
<organization>
|
505
|
-
<abbreviation>ISO</abbreviation>
|
506
|
-
</organization>
|
507
|
-
</contributor>
|
508
|
-
</bibitem>
|
509
|
-
</references><clause id="S" obligation="informative">
|
510
|
-
<title>Bibliography</title>
|
511
|
-
<references id="T" obligation="informative" normative="false">
|
512
|
-
<title>Bibliography Subsection</title>
|
513
|
-
</references>
|
514
|
-
</clause>
|
515
|
-
</bibliography>
|
516
|
-
</iso-standard>
|
517
|
-
INPUT
|
518
|
-
#{HTML_HDR.gsub(/"en"/, '"zh"').sub(/INTERNATIONAL ELECTROTECHNICAL COMMISSION/, "国际电工委员会")}
|
519
|
-
<div>
|
520
|
-
<h1 class="ForewordTitle">前言</h1>
|
521
|
-
<div class="boilerplate_legal"/>
|
522
|
-
<p id="A">This is a preamble</p>
|
523
|
-
</div>
|
524
|
-
<br/>
|
525
|
-
<div class="Section3" id="B">
|
526
|
-
<h1 class="IntroTitle">0  引言</h1>
|
527
|
-
<div id="C"><h2>0.1  Introduction Subsection</h2>
|
528
|
-
|
529
|
-
</div>
|
530
|
-
<p>This is patent boilerplate</p>
|
531
|
-
</div>
|
532
|
-
#{IEC_TITLE1}
|
533
|
-
<div id="D">
|
534
|
-
<h1>1  范围</h1>
|
535
|
-
<p id="E">
|
536
|
-
<a href="#ISO712">ISO 712、第1–<referenceto>1</referenceto>表</a>
|
537
|
-
</p>
|
538
|
-
</div>
|
539
|
-
<div>
|
540
|
-
<h1>2  规范性引用文件</h1>
|
541
|
-
<p id="ISO712" class="NormRef">ISO 712, <i> Cereals and cereal products</i></p>
|
542
|
-
</div>
|
543
|
-
<div id="H"><h1>3  术语、定义、符号、代号和缩略语</h1>
|
544
|
-
<div id="I"><h2>3.1  Normal Terms</h2>
|
545
|
-
|
546
|
-
<p class="TermNum" id="J">3.1.1</p>
|
547
|
-
<p class="Terms" style="text-align:left;">Term2</p>
|
548
|
-
|
549
|
-
</div><div id="K"><h2>3.2  符号、代号和缩略语</h2>
|
550
|
-
<dl><dt><p>Symbol</p></dt><dd>Definition</dd></dl>
|
551
|
-
</div></div>
|
552
|
-
<div id="L" class="Symbols">
|
553
|
-
<h1>4  符号、代号和缩略语</h1>
|
554
|
-
<dl>
|
555
|
-
<dt>
|
556
|
-
<p>Symbol</p>
|
557
|
-
</dt>
|
558
|
-
<dd>Definition</dd>
|
559
|
-
</dl>
|
560
|
-
</div>
|
561
|
-
<div id="M">
|
562
|
-
<h1>5  Clause 4</h1>
|
563
|
-
<div id="N"><h2>5.1  Introduction</h2>
|
564
|
-
|
565
|
-
</div>
|
566
|
-
<div id="O"><h2>5.2  Clause 4.2</h2>
|
567
|
-
|
568
|
-
</div>
|
569
|
-
</div>
|
570
|
-
<br/>
|
571
|
-
<div id="P" class="Section3">
|
572
|
-
<h1 class="Annex">附件A<br/><br/>(规范性附录)<br/><br/><b>Annex</b></h1>
|
573
|
-
<div id="Q"><h2>A.1  Annex A.1</h2>
|
574
|
-
|
575
|
-
<div id="Q1"><h3>A.1.1  Annex A.1a</h3>
|
576
|
-
|
577
|
-
</div>
|
578
|
-
</div>
|
579
|
-
<div id="Q2"><h2>附录1  An Appendix</h2>
|
580
|
-
|
581
|
-
</div>
|
582
|
-
</div>
|
583
|
-
<br/>
|
584
|
-
<div>
|
585
|
-
<h1 class="Section3">参考文献</h1>
|
635
|
+
<h1 class="Section3">Bibliography</h1>
|
586
636
|
<div>
|
587
637
|
<h2 class="Section3">Bibliography Subsection</h2>
|
588
638
|
</div>
|
@@ -591,6 +641,8 @@ RSpec.describe IsoDoc do
|
|
591
641
|
</body>
|
592
642
|
</html>
|
593
643
|
OUTPUT
|
644
|
+
expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({}).convert("test", input, true))).to be_equivalent_to xmlpp(presxml)
|
645
|
+
expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", presxml, true))).to be_equivalent_to xmlpp(html)
|
594
646
|
end
|
595
647
|
|
596
648
|
end
|