metanorma-iso 3.0.8 → 3.0.10

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.
@@ -31,11 +31,12 @@ module IsoDoc
31
31
  end
32
32
 
33
33
  def bibdata_i18n(bib)
34
- hash_translate(bib, @i18n.get["doctype_dict"], "./ext/doctype")
34
+ hash_translate(bib, @i18n.get["doctype_dict"], "./ext/doctype",
35
+ "//presentation-metadata/doctype-alias", @lang)
35
36
  bibdata_i18n_stage(bib, bib.at(ns("./status/stage")),
36
37
  bib.at(ns("./ext/doctype")))
37
38
  hash_translate(bib, @i18n.get["substage_dict"],
38
- "./status/substage")
39
+ "./status/substage", nil, @lang)
39
40
  edition_translate(bib)
40
41
  end
41
42
 
@@ -68,7 +69,7 @@ module IsoDoc
68
69
  stage or return
69
70
  i18n.get.dig("stage_dict", stage.text).is_a?(Hash) or
70
71
  return hash_translate(bib, i18n.get["stage_dict"],
71
- "./status/stage", lang)
72
+ "./status/stage", nil, lang)
72
73
  bibdata_i18n_stage1(stage, type, lang, i18n)
73
74
  end
74
75
 
@@ -28,9 +28,8 @@ module IsoDoc
28
28
 
29
29
  def warning_for_missing_metadata_post(docxml, ret)
30
30
  from = docxml.at(ns("//sections/*/@id"))&.text or return
31
- id = UUIDTools::UUID.random_create
32
31
  ret = <<~REVIEW
33
- <review date='#{Date.today}' reviewer='Metanorma' id='_#{id}' from='#{from}' to='#{from}'>
32
+ <review date='#{Date.today}' reviewer='Metanorma' #{add_id_text} from='#{from}' to='#{from}'>
34
33
  <p><strong>Metadata warnings:</strong></p> #{ret}
35
34
  </review>
36
35
  REVIEW
@@ -1,8 +1,9 @@
1
1
  module IsoDoc
2
2
  module Iso
3
3
  class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
4
- def xref_init(lang, script, klass, labels, options)
5
- @xrefs = Xref.new(lang, script, klass, labels, options)
4
+ def xref_init(lang, script, _klass, labels, options)
5
+ html = HtmlConvert.new(language: @lang, script: @script)
6
+ @xrefs = Xref.new(lang, script, html, labels, options)
6
7
  end
7
8
 
8
9
  def eref_delim(delim, type)
@@ -160,7 +160,7 @@ module IsoDoc
160
160
  s.xpath(ns(".//appendix//ol")) - s.xpath(ns(".//ol//ol"))
161
161
  c = Counter.new
162
162
  notes.noblank.each do |n|
163
- n["id"] ||= "_#{UUIDTools::UUID.random_create}"
163
+ #n["id"] ||= "_#{UUIDTools::UUID.random_create}"
164
164
  @anchors[n["id"]] = anchor_struct(increment_label(notes, n, c), n,
165
165
  @labels["list"], "list",
166
166
  { unnumb: false, container: true })
@@ -13,30 +13,6 @@ module IsoDoc
13
13
  end
14
14
  end
15
15
 
16
- # KILL
17
- def annex_namesx(clause, num)
18
- appendix_names(clause, num)
19
- super
20
- end
21
-
22
- # KILL
23
- def appendix_namesx(clause, _num)
24
- i = clause_counter(0)
25
- clause.xpath(ns("./appendix")).each do |c|
26
- i.increment(c)
27
- num = semx(c, i.print)
28
- lbl = labelled_autonum(@labels["appendix"], num)
29
- @anchors[c["id"]] =
30
- anchor_struct(i.print, c, @labels["appendix"],
31
- "clause").merge(level: 2, subtype: "annex",
32
- container: clause["id"])
33
- j = clause_counter(0)
34
- c.xpath(ns("./clause | ./references")).each do |c1|
35
- appendix_names1(c1, lbl, j.increment(c1).print, 3, clause["id"])
36
- end
37
- end
38
- end
39
-
40
16
  # subclauses are not prefixed with "Clause"
41
17
  # retaining subtype for the semantics
42
18
  def section_name_anchors(clause, num, level)
@@ -65,17 +41,6 @@ module IsoDoc
65
41
  end
66
42
  @anchors[clause["id"]] = ret.merge(ret2)
67
43
  end
68
-
69
- # KILL
70
- def appendix_names1x(clause, parentnum, num, level, container)
71
- num = clause_number_semx(parentnum, clause, num)
72
- @anchors[clause["id"]] = { label: num, xref: num, level: level,
73
- container: container }
74
- i = clause_counter(0)
75
- clause.xpath(ns("./clause | ./references")).each do |c|
76
- appendix_names1(c, num, i.increment(c).print, level + 1, container)
77
- end
78
- end
79
44
  end
80
45
  end
81
46
  end
@@ -73,6 +73,7 @@ module Metanorma
73
73
  fn = n.children.to_xml
74
74
  n.elements&.first&.name == "p" or fn = "<p>#{fn}</p>"
75
75
  e.next = "<fn>#{fn}</fn>"
76
+ add_id(e.next)
76
77
  end
77
78
  end
78
79
 
@@ -131,7 +131,7 @@ module Metanorma
131
131
  @amd and amd = node.attr("title-amendment-#{lang}")
132
132
  node.attr("addendum-number") and
133
133
  add = node.attr("title-addendum-#{lang}")
134
- [title, intro, part, amd, add]
134
+ [title, intro, part, amd, add].map { |x| x&.empty? ? nil : x }
135
135
  end
136
136
 
137
137
  def title(node, xml)
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
- <!-- VERSION v2.0.6 -->
3
+ <!-- VERSION v2.0.7 -->
4
4
 
5
5
  <!--
6
6
  ALERT: cannot have root comments, because of https://github.com/metanorma/metanorma/issues/437
@@ -76,6 +76,7 @@ but to `@anchor`, the user-supplied cross-reference</a:documentation>
76
76
  <a:documentation>Title(s) of a clause</a:documentation>
77
77
  <element name="title">
78
78
  <a:documentation>Title proper for a clause</a:documentation>
79
+ <ref name="RequiredId"/>
79
80
  <zeroOrMore>
80
81
  <ref name="TextElement"/>
81
82
  </zeroOrMore>
@@ -83,10 +84,19 @@ but to `@anchor`, the user-supplied cross-reference</a:documentation>
83
84
  <zeroOrMore>
84
85
  <element name="variant-title">
85
86
  <a:documentation>Alternate title for a clause</a:documentation>
87
+ <ref name="RequiredId"/>
86
88
  <ref name="TypedTitleString"/>
87
89
  </element>
88
90
  </zeroOrMore>
89
91
  </define>
92
+ <define name="tname">
93
+ <element name="name">
94
+ <ref name="RequiredId"/>
95
+ <oneOrMore>
96
+ <ref name="NestedTextElement"/>
97
+ </oneOrMore>
98
+ </element>
99
+ </define>
90
100
  <define name="UlBody">
91
101
  <optional>
92
102
  <ref name="tname">
@@ -475,6 +485,7 @@ normative or informative references, some split references into sections organiz
475
485
  <!-- exclude figures? -->
476
486
  <define name="dd">
477
487
  <element name="dd">
488
+ <ref name="OptionalId"/>
478
489
  <zeroOrMore>
479
490
  <!-- exclude figures? -->
480
491
  <ref name="BasicBlock"/>
@@ -526,6 +537,7 @@ normative or informative references, some split references into sections organiz
526
537
  </choice>
527
538
  </define>
528
539
  <define name="TrAttributes">
540
+ <ref name="OptionalId"/>
529
541
  <optional>
530
542
  <attribute name="style">
531
543
  <a:documentation>CSS style: only background-color supported</a:documentation>
@@ -595,6 +607,7 @@ gives an explicit page orientation</a:documentation>
595
607
  </include>
596
608
  <!-- end overrides -->
597
609
  <define name="FnAttributes" combine="interleave">
610
+ <ref name="RequiredId"/>
598
611
  <optional>
599
612
  <attribute name="hiddenref">
600
613
  <a:documentation>If true, number the footnote as normal, but suppress display of the footnote reference in the document body.
@@ -604,6 +617,7 @@ This is done if the footnote reference is already presented in some other form,
604
617
  </optional>
605
618
  </define>
606
619
  <define name="TdAttributes" combine="interleave">
620
+ <ref name="RequiredId"/>
607
621
  <optional>
608
622
  <attribute name="style">
609
623
  <a:documentation>CSS style: only background-color supported</a:documentation>
@@ -1821,7 +1835,7 @@ used in document amendments</a:documentation>
1821
1835
  </element>
1822
1836
  </define>
1823
1837
  <define name="TermAttributes">
1824
- <ref name="OptionalId"/>
1838
+ <ref name="RequiredId"/>
1825
1839
  <ref name="LocalizedStringAttributes"/>
1826
1840
  <ref name="BlockAttributes"/>
1827
1841
  </define>
@@ -2164,6 +2178,7 @@ used in document amendments</a:documentation>
2164
2178
  <define name="termdefinition">
2165
2179
  <a:documentation>The definition of a term applied in the current document</a:documentation>
2166
2180
  <element name="definition">
2181
+ <ref name="RequiredId"/>
2167
2182
  <optional>
2168
2183
  <attribute name="type">
2169
2184
  <a:documentation>Type of definition, used to differentiate it from other definitions of the same term if present</a:documentation>
@@ -2185,6 +2200,7 @@ used in document amendments</a:documentation>
2185
2200
  </define>
2186
2201
  <define name="verbaldefinition">
2187
2202
  <element name="verbal-definition">
2203
+ <ref name="RequiredId"/>
2188
2204
  <oneOrMore>
2189
2205
  <choice>
2190
2206
  <a:documentation>Content of the verbal representation of the term</a:documentation>
@@ -2205,6 +2221,7 @@ used in document amendments</a:documentation>
2205
2221
  <define name="nonverbalrep">
2206
2222
  <a:documentation>Non-verbal representation of the term</a:documentation>
2207
2223
  <element name="non-verbal-representation">
2224
+ <ref name="RequiredId"/>
2208
2225
  <oneOrMore>
2209
2226
  <choice>
2210
2227
  <a:documentation>Content of the non-verbal representation of the term</a:documentation>
@@ -5,27 +5,11 @@ module Metanorma
5
5
  module Iso
6
6
  class Converter < Standoc::Converter
7
7
 
8
- # KILL
9
- def clause_parsex(attrs, xml, node)
10
- node.option? "appendix" and return appendix_parse(attrs, xml, node)
11
- super
12
- end
13
-
14
8
  def scope_parse(attrs, xml, node)
15
9
  attrs = attrs.merge(type: "scope") unless @amd
16
10
  clause_parse(attrs, xml, node)
17
11
  end
18
12
 
19
- # KILL
20
- def appendix_parsex(attrs, xml, node)
21
- attrs[:"inline-header"] = node.option? "inline-header"
22
- set_obligation(attrs, node)
23
- xml.appendix **attr_code(attrs) do |xml_section|
24
- xml_section.title { |name| name << node.title }
25
- xml_section << node.content
26
- end
27
- end
28
-
29
13
  def support_appendix?(_node)
30
14
  true
31
15
  end
@@ -77,8 +77,7 @@ module Metanorma
77
77
  def image_name_validate(xmldoc)
78
78
  prefix = image_name_prefix(xmldoc) or return
79
79
  xmldoc.xpath("//image").each do |i|
80
- next if i["src"].start_with?("data:")
81
-
80
+ i["src"].start_with?("data:") and next
82
81
  case File.basename(i["src"])
83
82
  when /^ISO_\d+_/
84
83
  when /^(SL)?#{prefix}fig/ then image_name_validate1(i, prefix)
@@ -155,10 +155,12 @@ module Metanorma
155
155
  "Normative References")
156
156
  end
157
157
  end
158
+ elem.nil? and return
158
159
  elem&.at("./self::references[@normative = 'true']") ||
159
160
  @log.add("Style", nil, "Document must include (references) " \
160
161
  "Normative References")
161
162
  elem = names&.shift
163
+ elem.nil? and return
162
164
  elem&.at("./self::references[@normative = 'false']") ||
163
165
  @log.add("Style", elem,
164
166
  "Final section must be (references) Bibliography")
@@ -167,7 +169,9 @@ module Metanorma
167
169
  "There are sections after the final Bibliography")
168
170
  end
169
171
 
170
- NORM_ISO_WARN = "non-ISO/IEC reference not expected as normative".freeze
172
+ NORM_ISO_WARN = <<~WARN.freeze
173
+ non-ISO/IEC reference is allowed as normative only subject to the conditions in ISO/IEC DIR 2 10.2
174
+ WARN
171
175
  SCOPE_WARN = "Scope contains subclauses: should be succinct".freeze
172
176
 
173
177
  def section_style(root)
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Iso
3
- VERSION = "3.0.8".freeze
3
+ VERSION = "3.0.10".freeze
4
4
  end
5
5
  end
@@ -8,36 +8,36 @@ extenttemplate:
8
8
  inbook: "{{ volume }} {{ page }}"
9
9
  misc: "{{ volume }} {{issue}} {{ page }}, {{ duration }}"
10
10
  nametemplate:
11
- one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %}"
12
- two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , & {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}.{% endif %}"
13
- more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} {{initials[0] | join: ''}}.{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{surname[1]}} {{initials[1] | join: ''}}. {% endif %} , & {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{surname[2]}} {{initials[2] | join: ''}}.{% endif %}"
11
+ one: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} ,_{{initials[0] | join: ' ' | remove_last: '.' }}{% endif %}"
12
+ two: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} ,_{{initials[0] | join: ' ' }}{% endif %} +++{{ labels['author_and'] }}+++ {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{initials[1] | join: ' ' }} {{surname[1]}}{% endif %}"
13
+ more: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0]}} ,_{{initials[0] | join: ' ' }}{% endif %} , {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{{initials[1] | join: ' ' }} {{surname[1]}}{% endif %} +++{{ labels['author_and'] }}+++ {% if nonpersonal[2] %}{{ nonpersonal[2] }}{% else %}{{initials[2] | join: ' ' }} {{surname[2]}}{% endif %}"
14
14
  # disabled the following: they should be provided in inheriting calls
15
- # etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} <em>et al.</em>"
15
+ # etal: "{% if nonpersonal[0] %}{{ nonpersonal[0] }}{% else %}{{surname[0] | upcase}} ,_{%if given[0]%}{{given[0]}} {{middle[0]}}{%else%}{{initials[0] | join: ' '}}.{%endif%}{% endif %}, {% if nonpersonal[1] %}{{ nonpersonal[1] }}{% else %}{%if given[1]%}{{given[1]}} {{middle[1]}}{%else%}{{initials[1] | join: ' '}}.{%endif%} {{surname[1] | upcase}}{% endif %} +++<em>et al.</em>+++"
16
16
  # etal_count: 5
17
17
  seriestemplate: "{% if series_formatted %}{{ series_formatted }}{%else%}{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %} ({{series_run}}) {{series_num}}|({{series_partnumber}}){%endif%}"
18
18
  journaltemplate: "<em>{% if series_abbr %}{{series_abbr}}{% else %}{{series_title}}{% endif %}</em> ({{series_run}}) {{ labels['volume'] }}_{{series_num}} {{ labels['part'] }}_{{series_partnumber}}"
19
19
  template:
20
20
  # skip standardidentifier, it is inserted in front of formattedref within metanorma
21
- standard: "{% if home_standard %}<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}{% else %}<smallcap>{{ creatornames }}</smallcap>. <em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{labels['updated'] | capitalize }}_{{date_updated}}. {{status | capitalize}}. {{ authorizer }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>.{% endif %}"
22
- website: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em><span_class='stddocTitle'>{{ title }}</span></em> [{{ labels['website'] }}]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{place}}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
23
- book: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . <em>{{ title }}</em> . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
21
+ standard: "{% if home_standard %}<em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }}{% else %}{{ creatornames | selective_upcase }}. <em><span_class='stddocTitle'>{{ title }}</span></em> ,_{{ extent }} . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{labels['updated'] | capitalize }}_{{date_updated}}. {{status | capitalize}}. {{ authorizer }}. {{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>.{% endif %}"
22
+ website: "{{ creatornames | selective_upcase }}. ({{ role }}) <em><span_class='stddocTitle'>{{ title }}</span></em> [{{ labels['website'] }}]. {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{place}}: {{ publisher }}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
23
+ book: "{{ creatornames | selective_upcase }}. ({{role}}) <em>{{ title }}</em> . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}:{%endif%} {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
24
24
  booklet: book
25
25
  manual: book
26
26
  techreport: book
27
27
  proceedings: book
28
- inbook: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . {{ title }} . <em>{{host_title}}</em> ({{host_role}} {{ host_creatornames}}). {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}{%else%}{{ labels['no_place']}}{%endif%}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
28
+ inbook: "{{ creatornames | selective_upcase }}. ({{role}}) {{ title }} . <em>{{host_title}}</em> ({{host_role}} {{ host_creatornames | replace: '+++', ''}}.) . {{ edition | capitalize_first }}. ({{ series }}). {% if place %}{{place}}:{%endif%} {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
29
29
  inproceedings: inbook
30
30
  incollection: inbook
31
31
  journal: "<em>{{ title}}</em> . {{ edition | capitalize_first }}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
32
- article: "<smallcap>{{ creatornames }}</smallcap> ({{role}}) . {{ title }}. {{ series }} . {{date}}, {{ extent }}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
33
- software: "<smallcap>{{ creatornames }}</smallcap> ({{ role}}) . <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize}}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
32
+ article: "{{ creatornames | selective_upcase }}. ({{role}}) {{ title }}. {{ series }} . {{date}}, {{ extent }}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ labels['at'] | capitalize}}:_{{ access_location }}. [{{ labels['viewed'] }}:_{{date_accessed}}]."
33
+ software: "{{ creatornames | selective_upcase }}. ({{ role}}) <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize}}. {{place}}: {{publisher}}. {{date}}. {{size}}. {{extent}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
34
34
  electronic resource: software
35
- dataset: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize }}. {{ labels['in'] | capitalize }}:_{{series}}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. {{ authoritative_identifier | join '. ' }}. {{ other_identifier | join '. ' }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ size }}. {{ extent}}. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
35
+ dataset: "{{ creatornames | selective_upcase }}. ({{ role }}) <em>{{ title }}</em> . {{ labels['version'] | capitalize }}_{{ edition_raw }}. {{medium | capitalize }}. {{ labels['in'] | capitalize }}:_{{series}}. {{date}}. {{ labels['updated'] | capitalize }}:_{{date_updated}}. {{ authoritative_identifier | join '. ' }}. {{ other_identifier | join '. ' }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. {{ size }}. {{ extent}}. [{{ labels['viewed'] }}:_{{date_accessed}}]. "
36
36
  webresource: website
37
- unpublished: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ medium | capitalize }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
37
+ unpublished: "{{ creatornames | selective_upcase }}. ({{ role }}) <em>{{ title }}</em> . {{ medium | capitalize }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
38
38
  presentation: unpublished
39
- thesis: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ medium | capitalize }}. {{place}}: {{ publisher }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
40
- misc: "<smallcap>{{ creatornames }}</smallcap> ({{ role }}) . <em>{{ title }}</em> . {{ date }}."
39
+ thesis: "{{ creatornames | selective_upcase }}. ({{ role }}) <em>{{ title }}</em> . {{ medium | capitalize }}. {{place}}: {{ publisher }}. {{ date }}. {{ labels['at'] | capitalize}}:_{{ access_location }}. ._{{ labels['availablefrom'] }}:_<span_class='biburl'>{{ uri }}</span>. [{{ labels['viewed'] }}:_{{date_accessed}}]."
40
+ misc: "{{ creatornames | selective_upcase }}. ({{ role }}) <em>{{ title }}</em> . {{ date }}."
41
41
  # following are # unsupported types:
42
42
  map: misc
43
43
  audiovisual: misc
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
33
33
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
34
34
 
35
- spec.add_dependency "metanorma-standoc", "~> 3.0.0"
35
+ spec.add_dependency "metanorma-standoc", "~> 3.1.0"
36
36
  spec.add_dependency "mnconvert", "~> 1.14"
37
37
  spec.add_dependency "pubid"
38
38
  spec.add_dependency "tokenizer", "~> 0.3.0"
@@ -49,7 +49,6 @@ spec.add_development_dependency "rubocop-performance"
49
49
  spec.add_development_dependency "sassc-embedded", "~> 1"
50
50
  spec.add_development_dependency "simplecov", "~> 0.15"
51
51
  spec.add_development_dependency "timecop", "~> 0.9"
52
- spec.add_development_dependency "vcr", "~> 6.1.0"
53
52
  spec.add_development_dependency "webmock"
54
53
  spec.add_development_dependency "xml-c14n"
55
54
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-iso
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.8
4
+ version: 3.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-05-26 00:00:00.000000000 Z
11
+ date: 2025-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0
19
+ version: 3.1.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: 3.0.0
26
+ version: 3.1.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mnconvert
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -234,20 +234,6 @@ dependencies:
234
234
  - - "~>"
235
235
  - !ruby/object:Gem::Version
236
236
  version: '0.9'
237
- - !ruby/object:Gem::Dependency
238
- name: vcr
239
- requirement: !ruby/object:Gem::Requirement
240
- requirements:
241
- - - "~>"
242
- - !ruby/object:Gem::Version
243
- version: 6.1.0
244
- type: :development
245
- prerelease: false
246
- version_requirements: !ruby/object:Gem::Requirement
247
- requirements:
248
- - - "~>"
249
- - !ruby/object:Gem::Version
250
- version: 6.1.0
251
237
  - !ruby/object:Gem::Dependency
252
238
  name: webmock
253
239
  requirement: !ruby/object:Gem::Requirement