metanorma-iso 1.0.7 → 1.0.8

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 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">