metanorma-iso 1.0.7 → 1.0.8

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: 42be35a908161b2b1c90252599c743ebc821ca814b948425cfd0e58c43b2fe35
4
- data.tar.gz: 4962fcc892f8ce7ac514d227d36d499b0f1c2df44994073d44b9efb14b6346c8
3
+ metadata.gz: fcfe1b51276c62b73efaf0a7ecfd97c5aae10b34823647cae97942e5e2e1cf1e
4
+ data.tar.gz: e5a96003b94cc1965abebb14112755a1c4134078a233279f8b070bed0c09ea58
5
5
  SHA512:
6
- metadata.gz: 48a0e630835efcbf208346515d28a879cdf155b3c02d1fe52f314b86e370de01884ff7dfa36fc89dca8cccf5ce08cb70fea433c67f879f46dcce75cf9a34a9cc
7
- data.tar.gz: 1fce93f337ad4a87713e58be9d839b06d23bf4a58f45a288fd8d8203bdc17bb5eaa977714bd47cd218b73181ada19c599d73f185b76dde215dc7385b6b6e44ee
6
+ metadata.gz: c6217989c8151c10b50280795f8d9b63de4dd6277e3a9ac0cf01f6648ef3721dc3d05b547d88b3b1c376a05d1fd6020f195021df2e87afb83940ace8264d8579
7
+ data.tar.gz: 83bc724ef641add5682d9a6f0eaa08187dad5c76aeb5109d0b59af5f5bb0896597bd37377934ee6b0ce082cc510fd490e4b7337e3ecae42fdb48652788ed9931
data/README.adoc CHANGED
@@ -487,6 +487,13 @@ not supplied. Example values: `JWG`, `JAG`, `AG` (advisory group), `AHG`, `SWG`,
487
487
  `:publisher:`:: The standards agency publishing the standard; can be multiple
488
488
  (comma-delimited). Defaults to `ISO`.
489
489
 
490
+ `:uri:`:: The URI to which this standard is published.
491
+ `:xml-uri:`:: The URI to which the (Metanorma) XML representation of this standard is published.
492
+ `:html-uri:`:: The URI to which the HTML representation of this standard is published.
493
+ `:pdf-uri:`:: The URI to which the PDF representation of this standard is published.
494
+ `:doc-uri:`:: The URI to which the DOC representation of this standard is published.
495
+ `:relaton-uri:`:: The URI to which the Relaton XML representation of this standard is published.
496
+
490
497
  `:body-font:`:: Font for body text; will be inserted into CSS. Defaults to
491
498
  Cambria for Latin script, SimSun for Simplified Chinese.
492
499
 
data/docs/outputs.adoc ADDED
@@ -0,0 +1,42 @@
1
+ = Outputs
2
+
3
+ The metanorma toolset currently outputs documents in four formats.
4
+
5
+ == Metanorma XML
6
+
7
+ The Metanorma XML output is the intermediate format which marks up the semantic content of the standards document, and is
8
+ used to drive the other formats. The Metanorma XML file is also the file which is used for validation of the standards
9
+ document: line numbers in the validation output refer to this file.
10
+
11
+ == HTML
12
+
13
+ The HTML output is in HTML 5. It has optional Data-URI encoding of local images; if images in the output are are not Data-URI encoded,
14
+ they are moved to a folder called `{filename}_images`, and renamed with GUID names, to prevent collisions. Audio and video files are
15
+ not supported. All HTML output has a sidebar with a Javascript-generated Table of Contents, which is two section levels deep.
16
+
17
+ == PDF
18
+
19
+ PDF output, for those standards gems that support it, is generated from the HTML output via Google Puppeteer (which runs in Node.js).
20
+ The PDF output generation takes advantage of the print mode in the HTML CSS stylesheet, so much of the browser-like styling of the HTML
21
+ is rendered as a more print-like document. Because it is generated from HTML, the PDF output does not support page numbers in its
22
+ Table of Contents. Nor does it support advanced paragraph formatting, such as Keep With Next or Widow/Orphan control.
23
+
24
+ == Word
25
+
26
+ The Word output is output as a DOC format rather than DOCX (i.e. the pre-2007 version of Word), and it is generated using the
27
+ Microsoft Office flavour of HTML 4, as a Multipart HTML Word Document (MHT). (This is a MIME-encoded counterpart to the HTML obtained
28
+ when you save a Word document as HTML.)
29
+
30
+ Using DOC HTML makes it much easier to generate documents with
31
+ the advanced formatting requirements of Metanorma (including complex tables, formulas, footnotes, headers and footers,
32
+ nested list numbering and crossreferences) than generating either native DOCX (in OOXML), or the DOCX flavour of MHT. For more
33
+ on the choice to use DOC, see https://github.com/riboseinc/html2doc/wiki/Why-not-docx%3F
34
+
35
+ The constraint on using DOC, however, imposes some constraints.
36
+
37
+ * SVG images are not supported. (Word internally converts them into PNG files to render them in Word HTML.)
38
+ * DOC files are a legacy format of Word.
39
+ * DOC files cannot be processed by Pages or LibreOffice: they can only be processed by Microsoft Word. To open the Word output in LibreOffice in particular, you will need to convert the DOC file as a DOCX file, taking the following steps.
40
+ ** Open with MS Word
41
+ ** Save it once by changing the Extension to `.doc`. (When it asks you to overwrite, say Yes.)
42
+ * "Save As" as a `.docx` file.
@@ -414,6 +414,20 @@
414
414
  <ref name="BibliographicItem"/>
415
415
  </element>
416
416
  </define>
417
+ <define name="relaton_collection">
418
+ <element name="relaton-collection">
419
+ <optional>
420
+ <attribute name="type"/>
421
+ </optional>
422
+ <ref name="btitle"/>
423
+ <zeroOrMore>
424
+ <ref name="contributor"/>
425
+ </zeroOrMore>
426
+ <zeroOrMore>
427
+ <ref name="docrelation"/>
428
+ </zeroOrMore>
429
+ </element>
430
+ </define>
417
431
  <define name="BibItemType" combine="choice">
418
432
  <choice>
419
433
  <value>article</value>
@@ -531,7 +545,10 @@
531
545
  </define>
532
546
  <define name="fetched">
533
547
  <element name="fetched">
534
- <data type="dateTime"/>
548
+ <choice>
549
+ <data type="dateTime"/>
550
+ <data type="date"/>
551
+ </choice>
535
552
  </element>
536
553
  </define>
537
554
  <define name="validity">
@@ -549,17 +566,26 @@
549
566
  </define>
550
567
  <define name="validityBegins">
551
568
  <element name="validityBegins">
552
- <data type="dateTime"/>
569
+ <choice>
570
+ <data type="dateTime"/>
571
+ <data type="date"/>
572
+ </choice>
553
573
  </element>
554
574
  </define>
555
575
  <define name="validityEnds">
556
576
  <element name="validityEnds">
557
- <data type="dateTime"/>
577
+ <choice>
578
+ <data type="dateTime"/>
579
+ <data type="date"/>
580
+ </choice>
558
581
  </element>
559
582
  </define>
560
583
  <define name="validityRevision">
561
584
  <element name="revision">
562
- <data type="dateTime"/>
585
+ <choice>
586
+ <data type="dateTime"/>
587
+ <data type="date"/>
588
+ </choice>
563
589
  </element>
564
590
  </define>
565
591
  <define name="TypedTitleString">
@@ -744,6 +770,7 @@
744
770
  <element name="from">
745
771
  <choice>
746
772
  <data type="dateTime"/>
773
+ <data type="date"/>
747
774
  <data type="gYear"/>
748
775
  </choice>
749
776
  </element>
@@ -752,6 +779,7 @@
752
779
  <element name="to">
753
780
  <choice>
754
781
  <data type="dateTime"/>
782
+ <data type="date"/>
755
783
  <data type="gYear"/>
756
784
  </choice>
757
785
  </element>
@@ -83,19 +83,6 @@ module Asciidoctor
83
83
  end
84
84
  end
85
85
 
86
- def metadata(node, xml)
87
- title node, xml
88
- metadata_id(node, xml)
89
- metadata_author(node, xml)
90
- metadata_publisher(node, xml)
91
- xml.language (node.attr("language") || "en")
92
- xml.script (node.attr("script") || "Latn")
93
- metadata_status(node, xml)
94
- metadata_copyright(node, xml)
95
- metadata_committee(node, xml)
96
- metadata_ics(node, xml)
97
- end
98
-
99
86
  def title_intro(node, t, lang, at)
100
87
  return unless node.attr("title-intro-#{lang}")
101
88
  t.title_intro(**attr_code(at)) do |t1|
@@ -1,7 +1,19 @@
1
1
  <div id='toggle'> <span>•</span> </div>
2
- <p class="coverpage_docnumber">{{ agency }} {{ docnumber }}:{{ docyear }}(E) {{ draftinfo }}</p>
2
+ {% if tc_docnumber %}
3
+ <p class="coverpage_docnumber">{{ tc_docnumber }}</p>
4
+ {% else %}
5
+ <p class="coverpage_docnumber">{{ docnumber }}:{{ docyear }}(E) {{ draftinfo }}</p>
6
+ {% endif %}
7
+
8
+ {% if revdate %}
9
+ <p class="coverpage_docnumber">Date: {{ revdate }}</p>
10
+ {% endif %}
11
+
12
+ {% if tc_docnumber %}
13
+ <p class="coverpage_docnumber">{{ docnumber }}:{{ docyear }}(E) {{ draftinfo }}</p>
14
+ {% endif %}
3
15
 
4
- <p class="coverpage_techcommittee">{{ agency }}&nbsp;{{ editorialgroup | join: "/" }}</p>
16
+ <p class="coverpage_techcommittee">{{ agency }}/{{ editorialgroup | join: "/" }}</p>
5
17
 
6
18
  <p class="coverpage_techcommittee"><a
7
19
  name="CVP_Secretariat_Loca">Secretariat</a>: {{ secretariat }}</p>
@@ -478,6 +478,8 @@ table.MsoISOTable
478
478
  mso-yfti-tbllook:480;
479
479
  mso-border-insideh:.75pt solid windowtext;
480
480
  mso-border-insidev:.75pt solid windowtext;
481
+ mso-table-anchor-vertical:paragraph;
482
+ mso-table-bspace:12.0pt;
481
483
  font-size:10.0pt;
482
484
  font-family:$bodyfont;}
483
485
  table.MsoISOTable tr
@@ -504,6 +506,8 @@ table.MsoTableGrid
504
506
  mso-para-margin:0cm;
505
507
  mso-para-margin-bottom:.0001pt;
506
508
  mso-pagination:widow-orphan;
509
+ mso-table-anchor-vertical:paragraph;
510
+ mso-table-bspace:12.0pt;
507
511
  font-size:10.0pt;
508
512
  font-family:$bodyfont;}
509
513
  td { page-break-inside:avoid; }
@@ -664,6 +668,15 @@ p.example, li.example, div.example, td.example
664
668
  mso-pagination:none;
665
669
  font-size:10.0pt;
666
670
  font-family:$bodyfont;}
671
+
672
+ table.example {
673
+ margin-bottom:12pt;
674
+ }
675
+
676
+ td.example p.MsoListParagraph {
677
+ font-size: 10.0pt;
678
+ }
679
+
667
680
  span.note_label, span.example_label, td.example_label, td.note_label
668
681
  {
669
682
  font-size: 10.0pt;
@@ -362,7 +362,13 @@ p.Terms {
362
362
  }
363
363
  }
364
364
 
365
-
365
+ @media screen {
366
+ img {
367
+ width: 100%;
368
+ height: auto;
369
+ }
370
+ }
371
+
366
372
 
367
373
  #toc ul {
368
374
  margin: 0;
@@ -365,6 +365,13 @@ p.Terms {
365
365
  }
366
366
  }
367
367
 
368
+ @media screen {
369
+ img {
370
+ width: 100%;
371
+ height: auto;
372
+ }
373
+ }
374
+
368
375
 
369
376
 
370
377
  #toc ul {
@@ -1,9 +1,23 @@
1
+ {% if tc_docnumber %}
2
+ <p class="MsoNormal" align="right" style='text-align:right'><b style='mso-bidi-font-weight:
3
+ normal'><span lang="EN-GB" style='font-size:14.0pt;mso-no-proof:yes'>{{ tc_docnumber }}</span></b><b
4
+ style='mso-bidi-font-weight:normal'><span lang="EN-GB" style='font-size:14.0pt'><o:p></o:p></span></b></p>
5
+ {% else %}
1
6
  <p class="MsoNormal" align="right" style='text-align:right'><b style='mso-bidi-font-weight:
2
7
  normal'><span lang="EN-GB" style='font-size:14.0pt;mso-no-proof:yes'>{{ docnumber }}:{{ docyear }}(E) {{ draftinfo }}</span></b><b
3
8
  style='mso-bidi-font-weight:normal'><span lang="EN-GB" style='font-size:14.0pt'><o:p></o:p></span></b></p>
9
+ {% endif %}
10
+
11
+ {% if revdate %}
12
+ <p class="MsoNormal" align="right" style='text-align:right'><span lang="EN-GB" style='mso-no-proof:yes'>Date: {{ revdate }}</span></p>
13
+ {% endif %}
14
+
15
+ {% if tc_docnumber %}
16
+ <p class="MsoNormal" align="right" style='text-align:right'><span lang="EN-GB" style='mso-no-proof:yes'>{{ docnumber }}:{{ docyear }}(E) {{ draftinfo }}</span></p>
17
+ {% endif %}
4
18
 
5
19
  <p class="MsoNormal" align="right" style='text-align:right'><span lang="EN-GB"
6
- style='mso-no-proof:yes'>{{ agency }}&nbsp;{{ editorialgroup | join: "/" }}</span></p>
20
+ style='mso-no-proof:yes'>{{ agency }}/{{ editorialgroup | join: "/" }}</span></p>
7
21
 
8
22
  <p class="MsoNormal" align="right" style='margin-bottom:100.0pt;text-align:right'><span lang="EN-GB">Secretariat: <span style='mso-no-proof:yes'>{{ secretariat }}</span></span></p>
9
23
 
@@ -114,10 +114,8 @@ p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
114
114
  mso-style-qformat:yes;
115
115
  margin-top:0cm;
116
116
  margin-right:0cm;
117
- margin-bottom:0cm;
117
+ margin-bottom:12.0pt;
118
118
  /* do not put in margin-left, it is specific to list level */
119
- margin-bottom:.0001pt;
120
- mso-add-space:auto;
121
119
  mso-pagination:widow-orphan;
122
120
  font-size:11.0pt;
123
121
  font-family:$bodyfont;
@@ -130,10 +128,8 @@ p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphC
130
128
  mso-style-type:export-only;
131
129
  margin-top:0cm;
132
130
  margin-right:0cm;
133
- margin-bottom:0cm;
131
+ margin-bottom:12.0pt;
134
132
  /* do not put in margin-left, it is specific to list level */
135
- margin-bottom:.0001pt;
136
- mso-add-space:auto;
137
133
  mso-pagination:widow-orphan;
138
134
  font-size:11.0pt;
139
135
  font-family:$bodyfont;
@@ -146,10 +142,8 @@ p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagrap
146
142
  mso-style-type:export-only;
147
143
  margin-top:0cm;
148
144
  margin-right:0cm;
149
- margin-bottom:0cm;
145
+ margin-bottom:12.0pt;
150
146
  /* do not put in margin-left, it is specific to list level */
151
- margin-bottom:.0001pt;
152
- mso-add-space:auto;
153
147
  mso-pagination:widow-orphan;
154
148
  font-size:11.0pt;
155
149
  font-family:$bodyfont;
@@ -162,10 +156,8 @@ p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxS
162
156
  mso-style-type:export-only;
163
157
  margin-top:0cm;
164
158
  margin-right:0cm;
165
- margin-bottom:0cm;
166
- /* do not put in margin-left, it is specific to list level */
167
159
  margin-bottom:12.0pt;
168
- mso-add-space:auto;
160
+ /* do not put in margin-left, it is specific to list level */
169
161
  mso-pagination:widow-orphan;
170
162
  font-size:11.0pt;
171
163
  font-family:$bodyfont;
@@ -1250,6 +1242,8 @@ table.MsoNormalTable
1250
1242
  mso-para-margin:0cm;
1251
1243
  mso-para-margin-bottom:.0001pt;
1252
1244
  mso-pagination:widow-orphan;
1245
+ mso-table-anchor-vertical:paragraph;
1246
+ mso-table-bspace:12.0pt;
1253
1247
  font-size:10.0pt;
1254
1248
  font-family:$bodyfont;}
1255
1249
  br.section
@@ -35,6 +35,8 @@ module IsoDoc
35
35
  isoxml.at(ns("//version/draft")))
36
36
  set(:stageabbr, abbr)
37
37
  end
38
+ revdate = isoxml.at(ns("//version/revision-date"))
39
+ set(:revdate, revdate&.text)
38
40
  end
39
41
 
40
42
  def docid(isoxml, _out)
@@ -43,9 +45,11 @@ module IsoDoc
43
45
  if docstatus
44
46
  abbr = get[:stageabbr]
45
47
  docstatus = get[:stage]
46
- (docstatus.to_i < 60) && dn = dn.sub(/ /, " #{abbr} ")
48
+ (docstatus.to_i < 60) && dn = dn.sub(/ /, "/#{abbr} ")
47
49
  end
48
50
  set(:docnumber, dn)
51
+ tcdn = isoxml.at(ns("//bibdata/docidentifier/tc-document-number"))
52
+ set(:tc_docnumber, tcdn&.text)
49
53
  end
50
54
 
51
55
  # we don't leave this to i18n.rb, because we have both English and
@@ -53,6 +53,8 @@ module IsoDoc
53
53
  end
54
54
 
55
55
  def colophon(body, docxml)
56
+ stage = @meta.get[:stage_int]
57
+ return if !stage.nil? && stage < 60
56
58
  body.br **{ clear: "all", style: "page-break-before:left;mso-break-type:section-break" }
57
59
  body.div **{ class: "colophon" } do |div|
58
60
  end
@@ -22,8 +22,8 @@ module Metanorma
22
22
  "Metanorma::ISO #{Metanorma::ISO::VERSION}"
23
23
  end
24
24
 
25
- def input_to_isodoc(file)
26
- Metanorma::Input::Asciidoc.new.process(file, @asciidoctor_backend)
25
+ def input_to_isodoc(file, filename)
26
+ Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
27
27
  end
28
28
 
29
29
  def output(isodoc_node, outname, format, options={})
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.0.7".freeze
3
+ VERSION = "1.0.8".freeze
4
4
  end
5
5
  end
@@ -33,7 +33,6 @@ Gem::Specification.new do |spec|
33
33
  spec.add_dependency "ruby-jing"
34
34
  spec.add_dependency "isodoc", "~> 0.9.0"
35
35
  spec.add_dependency "iev", "~> 0.2.0"
36
- spec.add_dependency "relaton", "~> 0.2.0"
37
36
  spec.add_dependency "metanorma-standoc", "~> 1.0.0"
38
37
 
39
38
  spec.add_development_dependency "bundler", "~> 1.15"
@@ -46,7 +45,5 @@ Gem::Specification.new do |spec|
46
45
  spec.add_development_dependency "rubocop", "~> 0.50"
47
46
  spec.add_development_dependency "simplecov", "~> 0.15"
48
47
  spec.add_development_dependency "timecop", "~> 0.9"
49
- spec.add_development_dependency "metanorma", "~> 0.2.6"
50
- spec.add_development_dependency "isobib", "~> 0.3.0"
51
- spec.add_development_dependency "ietfbib", "~> 0.4.0"
48
+ spec.add_development_dependency "metanorma", "~> 0.3.0"
52
49
  end
@@ -8,7 +8,9 @@ RSpec.describe Asciidoctor::ISO do
8
8
 
9
9
  it "generates output for the Rice document" do
10
10
  FileUtils.rm_f %w(spec/examples/rice.xml spec/examples/rice.doc spec/examples/rice.html spec/examples/rice_alt.html)
11
- system "cd spec/examples; asciidoctor --trace -b iso -r 'metanorma-iso' rice.adoc; cd ../.."
11
+ FileUtils.cd "spec/examples"
12
+ Asciidoctor.convert_file "rice.adoc", {:attributes=>{"backend"=>"iso"}, :safe=>0, :header_footer=>true, :requires=>["metanorma-iso"], :failure_level=>4, :mkdirs=>true, :to_file=>nil}
13
+ FileUtils.cd "../.."
12
14
  expect(File.exist?("spec/examples/rice.xml")).to be true
13
15
  expect(File.exist?("spec/examples/rice.doc")).to be true
14
16
  expect(File.exist?("spec/examples/rice.html")).to be true
@@ -32,6 +34,7 @@ RSpec.describe Asciidoctor::ISO do
32
34
  Author
33
35
  :docfile: test.adoc
34
36
  :novalid:
37
+ :no-isobib:
35
38
  INPUT
36
39
  #{BLANK_HDR}
37
40
  <sections/>
@@ -48,6 +51,7 @@ RSpec.describe Asciidoctor::ISO do
48
51
  :docfile: test.adoc
49
52
  :nodoc:
50
53
  :novalid:
54
+ :no-isobib:
51
55
  :docnumber: 1000
52
56
  :partnumber: 1
53
57
  :edition: 2
@@ -167,6 +171,7 @@ RSpec.describe Asciidoctor::ISO do
167
171
  :docfile: test.adoc
168
172
  :nodoc:
169
173
  :novalid:
174
+ :no-isobib:
170
175
  :docnumber: 1000
171
176
  :partnumber: 1-1
172
177
  :tc-docnumber: 2000
@@ -277,6 +282,7 @@ RSpec.describe Asciidoctor::ISO do
277
282
  Author
278
283
  :docfile: test.adoc
279
284
  :novalid:
285
+ :no-isobib:
280
286
  INPUT
281
287
  html = File.read("test.html", encoding: "utf-8")
282
288
  expect(html).to match(%r{<script>})
@@ -289,6 +295,7 @@ RSpec.describe Asciidoctor::ISO do
289
295
  Author
290
296
  :docfile: test.adoc
291
297
  :novalid:
298
+ :no-isobib:
292
299
  INPUT
293
300
  html = File.read("test.html", encoding: "utf-8")
294
301
  expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
@@ -303,6 +310,7 @@ RSpec.describe Asciidoctor::ISO do
303
310
  Author
304
311
  :docfile: test.adoc
305
312
  :novalid:
313
+ :no-isobib:
306
314
  INPUT
307
315
  html = File.read("test_alt.html", encoding: "utf-8")
308
316
  expect(html).to match(%r[\.Sourcecode[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
@@ -317,6 +325,7 @@ RSpec.describe Asciidoctor::ISO do
317
325
  Author
318
326
  :docfile: test.adoc
319
327
  :novalid:
328
+ :no-isobib:
320
329
  :script: Hans
321
330
  INPUT
322
331
  html = File.read("test.html", encoding: "utf-8")
@@ -332,6 +341,7 @@ RSpec.describe Asciidoctor::ISO do
332
341
  Author
333
342
  :docfile: test.adoc
334
343
  :novalid:
344
+ :no-isobib:
335
345
  :script: Hans
336
346
  :body-font: Zapf Chancery
337
347
  :header-font: Comic Sans
@@ -351,6 +361,7 @@ RSpec.describe Asciidoctor::ISO do
351
361
  Author
352
362
  :docfile: test.adoc
353
363
  :novalid:
364
+ :no-isobib:
354
365
  INPUT
355
366
  word = File.read("test.doc", encoding: "utf-8")
356
367
  html = File.read("test.html", encoding: "utf-8")
@@ -79,6 +79,7 @@ RSpec.describe Asciidoctor::ISO do
79
79
  :nodoc:
80
80
  :novalid:
81
81
  :draft: 1.2
82
+ :no-isobib:
82
83
 
83
84
  [[foreword]]
84
85
  .Foreword
@@ -70,6 +70,7 @@ RSpec.describe Asciidoctor::ISO do
70
70
  :nodoc:
71
71
  :novalid:
72
72
  :stem:
73
+ :no-isobib:
73
74
 
74
75
  == Terms and Definitions
75
76
 
@@ -80,8 +80,9 @@ RSpec.describe Asciidoctor::ISO do
80
80
  </sections><bibliography><references id="_" obligation="informative">
81
81
  <title>Normative References</title>
82
82
  <bibitem type="international-standard" id="iso123">
83
- <title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title>
84
- <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- ?chantillonnage</title>
83
+ <fetched>#{Date.today}</fetched>
84
+ <title format="text/plain" language="en" script="Latn">Rubber latex — Sampling</title>
85
+ <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc — ?chantillonnage</title>
85
86
  <uri type="src">https://www.iso.org/standard/23281.html</uri>
86
87
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
87
88
  <uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
@@ -173,8 +174,9 @@ RSpec.describe Asciidoctor::ISO do
173
174
  </sections><bibliography><references id="_" obligation="informative">
174
175
  <title>Normative References</title>
175
176
  <bibitem type="international-standard" id="iso123">
177
+ <fetched>#{Date.today}</fetched>
176
178
  <title format="text/plain" language="en" script="Latn">Permuted index of the vocabulary of information technology</title>
177
- <title format="text/plain" language="fr" script="Latn">Index permuté du vocabulaire des technologies de l'information</title>
179
+ <title format="text/plain" language="fr" script="Latn">Index permuté du vocabulaire des technologies de linformation</title>
178
180
  <uri type="src">https://www.iso.org/standard/21071.html</uri>
179
181
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:21071:en</uri>
180
182
  <uri type="rss">https://www.iso.org/contents/data/standard/02/10/21071.detail.rss</uri>
@@ -228,8 +230,9 @@ RSpec.describe Asciidoctor::ISO do
228
230
  </ics>
229
231
  </bibitem>
230
232
  <bibitem type="international-standard" id="iso124">
231
- <title format="text/plain" language="en" script="Latn">Latex, rubber -- Determination of total solids content</title>
232
- <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Détermination des matières solides totales</title>
233
+ <fetched>#{Date.today}</fetched>
234
+ <title format="text/plain" language="en" script="Latn">Latex, rubber — Determination of total solids content</title>
235
+ <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc — Détermination des matières solides totales</title>
233
236
  <uri type="src">https://www.iso.org/standard/61884.html</uri>
234
237
  <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:61884:en</uri>
235
238
  <uri type="rss">https://www.iso.org/contents/data/standard/06/18/61884.detail.rss</uri>
@@ -360,13 +363,13 @@ RSpec.describe Asciidoctor::ISO do
360
363
 
361
364
  </sections><bibliography><references id="_" obligation="informative">
362
365
  <title>Normative References</title>
363
- <bibitem type="" id="iso123">
364
- <title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
366
+ <bibitem id="iso123">
367
+ <fetched>#{Date.today}</fetched>
368
+ <title format="plain" language="en" script="Latn">Network Configuration Access Control Model</title>
365
369
  <docidentifier type="IETF">RFC 8341</docidentifier>
366
370
  <date type="published">
367
371
  <on>2018</on>
368
372
  </date>
369
- <status>published</status>
370
373
  </bibitem>
371
374
  </references>
372
375
  </bibliography>
@@ -508,16 +511,17 @@ RSpec.describe Asciidoctor::ISO do
508
511
 
509
512
  def mock_isobib_get_123
510
513
  expect(Isobib::IsoBibliography).to receive(:get).with("ISO 123", nil, {}) do
511
- IsoBibItem.from_xml(<<~"OUTPUT")
512
- <bibitem type=\"international-standard\" id=\"ISO123\">\n <title format=\"text/plain\" language=\"en\" script=\"Latn\">Rubber latex -- Sampling</title>\n <title format=\"text/plain\" language=\"fr\" script=\"Latn\">Latex de caoutchouc -- ?chantillonnage</title>\n <uri type=\"src\">https://www.iso.org/standard/23281.html</uri>\n <uri type=\"obp\">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>\n <uri type=\"rss\">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>\n <docidentifier type="ISO">ISO 123:2001</docidentifier>\n <date type=\"published\">\n <on>2001</on>\n </date>\n <contributor>\n <role type=\"publisher\"/>\n <organization>\n <name>International Organization for Standardization</name>\n <abbreviation>ISO</abbreviation>\n <uri>www.iso.org</uri>\n </organization>\n </contributor>\n <edition>3</edition>\n <language>en</language>\n <language>fr</language>\n <script>Latn</script>\n <status>Published</status>\n <copyright>\n <from>2001</from>\n <owner>\n <organization>\n <name>ISO</name>\n <abbreviation></abbreviation>\n </organization>\n </owner>\n </copyright>\n <relation type=\"obsoletes\">\n <bibitem>\n <formattedref>ISO 123:1985</formattedref>\n </bibitem>\n </relation>\n <relation type=\"updates\">\n <bibitem>\n <formattedref>ISO 123:2001</formattedref>\n </bibitem>\n </relation>\n</bibitem>
514
+ IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
515
+ <bibitem type=\"international-standard\" id=\"ISO123\">\n <fetched>#{Date.today}</fetched>\n<title format=\"text/plain\" language=\"en\" script=\"Latn\">Rubber latex -- Sampling</title>\n <title format=\"text/plain\" language=\"fr\" script=\"Latn\">Latex de caoutchouc -- ?chantillonnage</title>\n <uri type=\"src\">https://www.iso.org/standard/23281.html</uri>\n <uri type=\"obp\">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>\n <uri type=\"rss\">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>\n <docidentifier type="ISO">ISO 123:2001</docidentifier>\n <date type=\"published\">\n <on>2001</on>\n </date>\n <contributor>\n <role type=\"publisher\"/>\n <organization>\n <name>International Organization for Standardization</name>\n <abbreviation>ISO</abbreviation>\n <uri>www.iso.org</uri>\n </organization>\n </contributor>\n <edition>3</edition>\n <language>en</language>\n <language>fr</language>\n <script>Latn</script>\n <status>Published</status>\n <copyright>\n <from>2001</from>\n <owner>\n <organization>\n <name>ISO</name>\n <abbreviation></abbreviation>\n </organization>\n </owner>\n </copyright>\n <relation type=\"obsoletes\">\n <bibitem>\n <formattedref>ISO 123:1985</formattedref>\n </bibitem>\n </relation>\n <relation type=\"updates\">\n <bibitem>\n <formattedref>ISO 123:2001</formattedref>\n </bibitem>\n </relation>\n</bibitem>
513
516
  OUTPUT
514
517
  end
515
518
  end
516
519
 
517
520
  def mock_isobib_get_124
518
521
  expect(Isobib::IsoBibliography).to receive(:get).with("ISO 124", "2014", {}) do
519
- IsoBibItem.from_xml(<<~"OUTPUT")
522
+ IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
520
523
  <bibitem type="international-standard" id="iso124">
524
+ <fetched>#{Date.today}</fetched>
521
525
  <title format="text/plain" language="en" script="Latn">Latex, rubber -- Determination of total solids content</title>
522
526
  <title format="text/plain" language="fr" script="Latn">Latex de caoutchouc -- Détermination des matières solides totales</title>
523
527
  <uri type="src">https://www.iso.org/standard/61884.html</uri>
@@ -566,8 +570,9 @@ RSpec.describe Asciidoctor::ISO do
566
570
 
567
571
  def mock_isobib_get_iec12382
568
572
  expect(Isobib::IsoBibliography).to receive(:get).with("ISO/IEC TR 12382", "1992", {}) do
569
- IsoBibItem.from_xml(<<~"OUTPUT")
573
+ IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
570
574
  <bibitem type="international-standard" id="iso123">
575
+ <fetched>#{Date.today}</fetched>
571
576
  <title format="text/plain" language="en" script="Latn">Permuted index of the vocabulary of information technology</title>
572
577
  <title format="text/plain" language="fr" script="Latn">Index permuté du vocabulaire des technologies de l'information</title>
573
578
  <uri type="src">https://www.iso.org/standard/21071.html</uri>
@@ -628,8 +633,9 @@ end
628
633
 
629
634
  def mock_rfcbib_get_rfc8341
630
635
  expect(IETFBib::RfcBibliography).to receive(:get).with("RFC 8341", nil, {}) do
631
- IsoBibItem.from_xml(<<~"OUTPUT")
636
+ IETFBib::XMLParser.from_xml(<<~"OUTPUT")
632
637
  <bibitem id="RFC8341">
638
+ <fetched>#{Date.today}</fetched>
633
639
  <title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
634
640
  <docidentifier type="IETF">RFC 8341</docidentifier>
635
641
  <date type="published">