metanorma-iec 1.3.13 → 1.4.3

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: b51046ee2b4e5d29d837265595d89d6f6601c73f15beaeba18625912619e5fdb
4
- data.tar.gz: 619dd4dcbafc822109e7ff0c84027979aeb85f0abbce9c5a0e8aa1ad2c09e23d
3
+ metadata.gz: 4e9809afe49796fd5ec400dd387616e73df0a09771bd0a69b55a9bf13e4e8480
4
+ data.tar.gz: 674ef4144aaa385a8d24a571468809e8e49a196fd6aeb3b9e19cd5072b24f0c9
5
5
  SHA512:
6
- metadata.gz: cc584b9bfcb447f04e734635663cd78352cf50ca68017c9680e9120519c53ec9ad64f439233ae6f808800a741412dfbd24c76831086808399b1716556bdd471d
7
- data.tar.gz: bf17ef358d040747a3b43754533609c7cfe5e6aedf35bd397eb06a669e8b97de8ee8dd7b8d446b2694aef619dc48fe77b22eb45058200319c310d43982d36d2a
6
+ metadata.gz: ad5a896dc162a2640a028136d6820dbf7cebae8c2b1bbfb18180edf3b7fb667797fd1e0936fade92fcf8a839d962804c2d935e928e8c1e0dd8c40693a449828c
7
+ data.tar.gz: 968027433e37c6b82322621798d0b0c99007ed00cf01e6da4c531f0e2eec6859911c09598713db705a44b2ee54835f943215aeb26761178cf60d7472afc5ee84
data/Rakefile CHANGED
@@ -1,6 +1,6 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
- require 'isodoc/gem_tasks'
3
+ require "isodoc/gem_tasks"
4
4
 
5
5
  IsoDoc::GemTasks.install
6
6
  RSpec::Core::RakeTask.new(:spec)
@@ -1,6 +1,6 @@
1
1
  require "asciidoctor"
2
2
  require "metanorma-iso"
3
- require_relative "./front.rb"
3
+ require_relative "./front"
4
4
 
5
5
  module Asciidoctor
6
6
  module Iec
@@ -12,7 +12,10 @@ module Asciidoctor
12
12
 
13
13
  def init(node)
14
14
  super
15
- @is_iev = node.attr("docnumber") == "60050"
15
+ if @is_iev = node.attr("docnumber") == "60050"
16
+ @vocab = true
17
+ node.set_attr("docsubtype", "vocabulary")
18
+ end
16
19
  end
17
20
 
18
21
  def boilerplate_file(x_orig)
@@ -26,13 +29,15 @@ module Asciidoctor
26
29
 
27
30
  def doctype_validate(xmldoc)
28
31
  doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
29
- %w(international-standard technical-specification technical-report
30
- publicly-available-specification international-workshop-agreement
31
- guide interpretation-sheet).include? doctype or
32
- @log.add("Document Attributes", nil, "#{doctype} is not a recognised document type")
32
+ %w(international-standard technical-specification technical-report
33
+ publicly-available-specification international-workshop-agreement
34
+ guide interpretation-sheet).include? doctype or
35
+ @log.add("Document Attributes", nil,
36
+ "#{doctype} is not a recognised document type")
33
37
  if function = xmldoc&.at("//bibdata/ext/function")&.text
34
- %w(emc quality-assurance safety environment).include? function or
35
- @log.add("Document Attributes", nil, "#{function} is not a recognised document function")
38
+ %w(emc quality-assurance safety environment).include? function or
39
+ @log.add("Document Attributes", nil,
40
+ "#{function} is not a recognised document function")
36
41
  end
37
42
  end
38
43
 
@@ -43,29 +48,43 @@ module Asciidoctor
43
48
  end
44
49
 
45
50
  def html_converter(node)
46
- node.nil? ? IsoDoc::Iec::HtmlConvert.new({}) :
51
+ if node.nil?
52
+ IsoDoc::Iec::HtmlConvert.new({})
53
+ else
47
54
  IsoDoc::Iec::HtmlConvert.new(html_extract_attributes(node))
55
+ end
48
56
  end
49
57
 
50
58
  def doc_converter(node)
51
- node.nil? ? IsoDoc::Iec::WordConvert.new({}) :
59
+ if node.nil?
60
+ IsoDoc::Iec::WordConvert.new({})
61
+ else
52
62
  IsoDoc::Iec::WordConvert.new(doc_extract_attributes(node))
63
+ end
53
64
  end
54
65
 
55
66
  def pdf_converter(node)
56
67
  return if node.attr("no-pdf")
57
- node.nil? ? IsoDoc::Iec::PdfConvert.new({}) :
68
+
69
+ if node.nil?
70
+ IsoDoc::Iec::PdfConvert.new({})
71
+ else
58
72
  IsoDoc::Iec::PdfConvert.new(doc_extract_attributes(node))
73
+ end
59
74
  end
60
75
 
61
76
  def presentation_xml_converter(node)
62
- node.nil? ? IsoDoc::Iec::PresentationXMLConvert.new({}) :
77
+ if node.nil?
78
+ IsoDoc::Iec::PresentationXMLConvert.new({})
79
+ else
63
80
  IsoDoc::Iec::PresentationXMLConvert.new(doc_extract_attributes(node))
81
+ end
64
82
  end
65
83
 
66
- def norm_ref_preface(f)
84
+ def norm_ref_preface(node)
67
85
  return super unless @is_iev
68
- f.at("./title").next =
86
+
87
+ node.at("./title").next =
69
88
  "<p>#{@i18n.norm_empty_pref}</p>"
70
89
  end
71
90
 
@@ -73,19 +92,17 @@ module Asciidoctor
73
92
  return super unless @is_iev
74
93
  end
75
94
 
76
- def sts_converter(node)
77
- end
78
-
79
- def sections_names_cleanup(x)
95
+ def sections_names_cleanup(xml)
80
96
  super
81
- @is_iev and replace_title(x, "//introduction", @i18n&.introduction_iev)
97
+ @is_iev and replace_title(xml, "//introduction",
98
+ @i18n&.introduction_iev)
82
99
  end
83
100
 
84
- def note(n)
85
- if n.title == "Note from TC/SC Officers"
101
+ def note(note)
102
+ if note.title == "Note from TC/SC Officers"
86
103
  noko do |xml|
87
104
  xml.tc_sc_officers_note do |c|
88
- wrap_in_para(n, c)
105
+ wrap_in_para(note, c)
89
106
  end
90
107
  end.join("\n")
91
108
  else
@@ -95,11 +112,11 @@ module Asciidoctor
95
112
 
96
113
  def note_cleanup(xmldoc)
97
114
  super
98
- n = xmldoc.at("//tc-sc-officers-note") and xmldoc.at("//bibdata/ext").add_child(n.remove)
115
+ n = xmldoc.at("//tc-sc-officers-note") and
116
+ xmldoc.at("//bibdata/ext").add_child(n.remove)
99
117
  end
100
118
 
101
- def image_name_validate(xmldoc)
102
- end
119
+ def image_name_validate(xmldoc); end
103
120
  end
104
121
  end
105
122
  end
@@ -199,9 +199,8 @@ module Asciidoctor
199
199
  end
200
200
  end
201
201
 
202
- def metadata_doctype(node, xml)
203
- xml.doctype doctype(node)
204
- xml.horizontal (node.attr("horizontal") || "false")
202
+ def metadata_subdoctype(node, xml)
203
+ super
205
204
  a = node.attr("function") and xml.function a
206
205
  end
207
206
 
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
20
+ <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">
21
21
  <include href="reqt.rng"/>
22
22
  <!-- include "biblio.rnc" { } -->
23
23
  <include href="basicdoc.rng">
@@ -58,7 +58,7 @@
58
58
  <attribute name="alt"/>
59
59
  </optional>
60
60
  <optional>
61
- <attribute name="updatetype">
61
+ <attribute name="update-type">
62
62
  <data type="boolean"/>
63
63
  </attribute>
64
64
  </optional>
@@ -1803,17 +1803,17 @@
1803
1803
  <ref name="admitted"/>
1804
1804
  </zeroOrMore>
1805
1805
  <zeroOrMore>
1806
- <ref name="related"/>
1806
+ <ref name="deprecates"/>
1807
1807
  </zeroOrMore>
1808
1808
  <zeroOrMore>
1809
- <ref name="deprecates"/>
1809
+ <ref name="related"/>
1810
1810
  </zeroOrMore>
1811
1811
  <optional>
1812
1812
  <ref name="termdomain"/>
1813
1813
  </optional>
1814
- <zeroOrMore>
1815
- <ref name="termgrammar"/>
1816
- </zeroOrMore>
1814
+ <optional>
1815
+ <ref name="termsubject"/>
1816
+ </optional>
1817
1817
  <oneOrMore>
1818
1818
  <ref name="termdefinition"/>
1819
1819
  </oneOrMore>
@@ -1830,41 +1830,232 @@
1830
1830
  </define>
1831
1831
  <define name="preferred">
1832
1832
  <element name="preferred">
1833
- <oneOrMore>
1834
- <ref name="TextElement"/>
1835
- </oneOrMore>
1833
+ <ref name="Designation"/>
1836
1834
  </element>
1837
1835
  </define>
1838
1836
  <define name="admitted">
1839
1837
  <element name="admitted">
1840
- <oneOrMore>
1841
- <ref name="TextElement"/>
1842
- </oneOrMore>
1838
+ <ref name="Designation"/>
1843
1839
  </element>
1844
1840
  </define>
1845
1841
  <define name="related">
1846
1842
  <element name="related">
1843
+ <attribute name="type">
1844
+ <ref name="RelatedTermType"/>
1845
+ </attribute>
1846
+ <element name="preferred">
1847
+ <ref name="Designation"/>
1848
+ </element>
1849
+ <choice>
1850
+ <ref name="eref"/>
1851
+ <ref name="xref"/>
1852
+ <ref name="termref"/>
1853
+ </choice>
1854
+ </element>
1855
+ </define>
1856
+ <define name="RelatedTermType">
1857
+ <choice>
1858
+ <value>deprecates</value>
1859
+ <value>supersedes</value>
1860
+ <value>narrower</value>
1861
+ <value>broader</value>
1862
+ <value>equivalent</value>
1863
+ <value>compare</value>
1864
+ <value>contrast</value>
1865
+ <value>see</value>
1866
+ </choice>
1867
+ </define>
1868
+ <define name="deprecates">
1869
+ <element name="deprecates">
1870
+ <ref name="Designation"/>
1871
+ </element>
1872
+ </define>
1873
+ <define name="Designation">
1874
+ <optional>
1875
+ <attribute name="absent">
1876
+ <data type="boolean"/>
1877
+ </attribute>
1878
+ </optional>
1879
+ <optional>
1880
+ <attribute name="geographic-area"/>
1881
+ </optional>
1882
+ <choice>
1883
+ <ref name="expression_designation"/>
1884
+ <ref name="letter_symbol_designation"/>
1885
+ <ref name="graphical_symbol_designation"/>
1886
+ </choice>
1887
+ <optional>
1888
+ <ref name="fieldofapplication"/>
1889
+ </optional>
1890
+ <optional>
1891
+ <ref name="usageinfo"/>
1892
+ </optional>
1893
+ <zeroOrMore>
1894
+ <ref name="termsource"/>
1895
+ </zeroOrMore>
1896
+ </define>
1897
+ <define name="fieldofapplication">
1898
+ <element name="field-of-application">
1899
+ <oneOrMore>
1900
+ <ref name="PureTextElement"/>
1901
+ </oneOrMore>
1902
+ </element>
1903
+ </define>
1904
+ <define name="usageinfo">
1905
+ <element name="usage-info">
1906
+ <oneOrMore>
1907
+ <ref name="PureTextElement"/>
1908
+ </oneOrMore>
1909
+ </element>
1910
+ </define>
1911
+ <define name="letter_symbol_designation">
1912
+ <element name="letter-symbol">
1847
1913
  <optional>
1848
- <attribute name="type">
1914
+ <attribute name="isInternational">
1915
+ <data type="boolean"/>
1916
+ </attribute>
1917
+ </optional>
1918
+ <element name="name">
1919
+ <oneOrMore>
1849
1920
  <choice>
1850
- <value>compare</value>
1851
- <value>contrast</value>
1852
- <value>see</value>
1921
+ <ref name="PureTextElement"/>
1922
+ <ref name="stem"/>
1853
1923
  </choice>
1924
+ </oneOrMore>
1925
+ </element>
1926
+ </element>
1927
+ </define>
1928
+ <define name="graphical_symbol_designation">
1929
+ <element name="graphical-symbol">
1930
+ <optional>
1931
+ <attribute name="isInternational">
1932
+ <data type="boolean"/>
1854
1933
  </attribute>
1855
1934
  </optional>
1856
- <oneOrMore>
1857
- <ref name="TextElement"/>
1858
- </oneOrMore>
1935
+ <ref name="figure"/>
1859
1936
  </element>
1860
1937
  </define>
1861
- <define name="deprecates">
1862
- <element name="deprecates">
1863
- <oneOrMore>
1864
- <ref name="TextElement"/>
1865
- </oneOrMore>
1938
+ <define name="expression_designation">
1939
+ <element name="expression">
1940
+ <optional>
1941
+ <attribute name="language">
1942
+ <a:documentation>ISO-639</a:documentation>
1943
+ </attribute>
1944
+ </optional>
1945
+ <optional>
1946
+ <attribute name="script">
1947
+ <a:documentation>ISO-15924</a:documentation>
1948
+ </attribute>
1949
+ </optional>
1950
+ <optional>
1951
+ <attribute name="type">
1952
+ <ref name="ExpressionDesignationType"/>
1953
+ </attribute>
1954
+ </optional>
1955
+ <optional>
1956
+ <attribute name="isInternational">
1957
+ <data type="boolean"/>
1958
+ </attribute>
1959
+ </optional>
1960
+ <element name="name">
1961
+ <zeroOrMore>
1962
+ <ref name="PureTextElement"/>
1963
+ </zeroOrMore>
1964
+ </element>
1965
+ <optional>
1966
+ <element name="abbreviation-type">
1967
+ <ref name="AbbreviationType"/>
1968
+ </element>
1969
+ </optional>
1970
+ <optional>
1971
+ <element name="pronunciation">
1972
+ <ref name="LocalizedString"/>
1973
+ </element>
1974
+ </optional>
1975
+ <optional>
1976
+ <element name="grammar-info">
1977
+ <ref name="Grammar"/>
1978
+ </element>
1979
+ </optional>
1866
1980
  </element>
1867
1981
  </define>
1982
+ <define name="ExpressionDesignationType">
1983
+ <choice>
1984
+ <value>prefix</value>
1985
+ <value>suffix</value>
1986
+ <value>abbreviation</value>
1987
+ <value>full</value>
1988
+ </choice>
1989
+ </define>
1990
+ <define name="AbbreviationType">
1991
+ <choice>
1992
+ <value>truncation</value>
1993
+ <value>acronym</value>
1994
+ <value>initialism</value>
1995
+ </choice>
1996
+ </define>
1997
+ <define name="Grammar">
1998
+ <zeroOrMore>
1999
+ <element name="gender">
2000
+ <ref name="GrammarGender"/>
2001
+ </element>
2002
+ </zeroOrMore>
2003
+ <zeroOrMore>
2004
+ <element name="number">
2005
+ <ref name="GrammarNumber"/>
2006
+ </element>
2007
+ </zeroOrMore>
2008
+ <optional>
2009
+ <element name="isPreposition">
2010
+ <data type="boolean"/>
2011
+ </element>
2012
+ </optional>
2013
+ <optional>
2014
+ <element name="isParticiple">
2015
+ <data type="boolean"/>
2016
+ </element>
2017
+ </optional>
2018
+ <optional>
2019
+ <element name="isAdjective">
2020
+ <data type="boolean"/>
2021
+ </element>
2022
+ </optional>
2023
+ <optional>
2024
+ <element name="isVerb">
2025
+ <data type="boolean"/>
2026
+ </element>
2027
+ </optional>
2028
+ <optional>
2029
+ <element name="isAdverb">
2030
+ <data type="boolean"/>
2031
+ </element>
2032
+ </optional>
2033
+ <optional>
2034
+ <element name="isNoun">
2035
+ <data type="boolean"/>
2036
+ </element>
2037
+ </optional>
2038
+ <zeroOrMore>
2039
+ <element name="grammar-value">
2040
+ <text/>
2041
+ </element>
2042
+ </zeroOrMore>
2043
+ </define>
2044
+ <define name="GrammarGender">
2045
+ <choice>
2046
+ <value>masculine</value>
2047
+ <value>feminine</value>
2048
+ <value>neuter</value>
2049
+ <value>common</value>
2050
+ </choice>
2051
+ </define>
2052
+ <define name="GrammarNumber">
2053
+ <choice>
2054
+ <value>singular</value>
2055
+ <value>dual</value>
2056
+ <value>plural</value>
2057
+ </choice>
2058
+ </define>
1868
2059
  <define name="termdomain">
1869
2060
  <element name="domain">
1870
2061
  <oneOrMore>
@@ -1872,8 +2063,8 @@
1872
2063
  </oneOrMore>
1873
2064
  </element>
1874
2065
  </define>
1875
- <define name="termgrammar">
1876
- <element name="grammar">
2066
+ <define name="termsubject">
2067
+ <element name="subject">
1877
2068
  <oneOrMore>
1878
2069
  <ref name="TextElement"/>
1879
2070
  </oneOrMore>
@@ -1881,9 +2072,39 @@
1881
2072
  </define>
1882
2073
  <define name="termdefinition">
1883
2074
  <element name="definition">
2075
+ <choice>
2076
+ <ref name="verbaldefinition"/>
2077
+ <ref name="nonverbalrep"/>
2078
+ <group>
2079
+ <ref name="verbaldefinition"/>
2080
+ <ref name="nonverbalrep"/>
2081
+ </group>
2082
+ </choice>
2083
+ </element>
2084
+ </define>
2085
+ <define name="verbaldefinition">
2086
+ <element name="verbal-definition">
1884
2087
  <oneOrMore>
1885
2088
  <choice>
1886
2089
  <ref name="paragraph"/>
2090
+ <ref name="dl"/>
2091
+ <ref name="ol"/>
2092
+ <ref name="ul"/>
2093
+ <ref name="table"/>
2094
+ <ref name="figure"/>
2095
+ <ref name="formula"/>
2096
+ </choice>
2097
+ </oneOrMore>
2098
+ <zeroOrMore>
2099
+ <ref name="termsource"/>
2100
+ </zeroOrMore>
2101
+ </element>
2102
+ </define>
2103
+ <define name="nonverbalrep">
2104
+ <element name="non-verbal-representation">
2105
+ <oneOrMore>
2106
+ <choice>
2107
+ <ref name="table"/>
1887
2108
  <ref name="figure"/>
1888
2109
  <ref name="formula"/>
1889
2110
  </choice>
@@ -1972,6 +2193,12 @@
1972
2193
  <value>modified</value>
1973
2194
  </choice>
1974
2195
  </attribute>
2196
+ <attribute name="type">
2197
+ <choice>
2198
+ <value>authoritative</value>
2199
+ <value>lineage</value>
2200
+ </choice>
2201
+ </attribute>
1975
2202
  <ref name="origin"/>
1976
2203
  <optional>
1977
2204
  <ref name="modification"/>
@@ -56,10 +56,10 @@ module IsoDoc
56
56
  return super unless @is_iev
57
57
  end
58
58
 
59
- def biblio_list(f, div, biblio)
59
+ def biblio_list(elem, div, biblio)
60
60
  return super unless @is_iev
61
61
 
62
- f.children.each do |b|
62
+ elem.children.each do |b|
63
63
  parse(b, div) unless %w(title bibitem).include? b.name
64
64
  end
65
65
  end
@@ -95,39 +95,6 @@ module IsoDoc
95
95
  def set_termdomain(termdomain)
96
96
  return super unless @is_iev
97
97
  end
98
-
99
- def term_suffix(node, out)
100
- return unless @is_iev
101
-
102
- domain = node&.at(ns("../domain"))&.text
103
- return unless domain
104
-
105
- out << ", &lt;#{domain}&gt;"
106
- end
107
-
108
- def deprecated_term_parse(node, out)
109
- out.p **{ class: "DeprecatedTerms", style: "text-align:left;" } do |p|
110
- p << l10n("#{@i18n.deprecated}: ")
111
- node.children.each { |c| parse(c, p) }
112
- term_suffix(node, p)
113
- end
114
- end
115
-
116
- def admitted_term_parse(node, out)
117
- out.p **{ class: "AltTerms", style: "text-align:left;" } do |p|
118
- node.children.each { |c| parse(c, p) }
119
- term_suffix(node, p)
120
- end
121
- end
122
-
123
- def term_parse(node, out)
124
- return super unless @is_iev
125
-
126
- out.p **{ class: "Terms", style: "text-align:left;" } do |p|
127
- node.children.each { |c| parse(c, p) }
128
- term_suffix(node, p)
129
- end
130
- end
131
98
  end
132
99
  end
133
100
  end
@@ -365,9 +365,11 @@ p.AltTerms {
365
365
  margin-left: 2em; }
366
366
 
367
367
  p.Terms {
368
- font-weight: bold;
369
368
  margin-top: 0em; }
370
369
 
370
+ p.TermNum {
371
+ font-weight: bold; }
372
+
371
373
  /* Navigation*/
372
374
  @media screen and (min-width: 768px) {
373
375
  nav {
@@ -188,10 +188,13 @@ p.AltTerms {
188
188
  }
189
189
 
190
190
  p.Terms {
191
- font-weight: bold;
192
191
  margin-top: 0em;
193
192
  }
194
193
 
194
+ p.TermNum {
195
+ font-weight: bold;
196
+ }
197
+
195
198
  /* Navigation*/
196
199
 
197
200
  nav {
@@ -325,8 +325,7 @@ p.Terms, li.Terms, div.Terms {
325
325
  mso-fareast-font-family: "Times New Roman";
326
326
  letter-spacing: .4pt;
327
327
  mso-ansi-language: EN-GB;
328
- mso-fareast-language: ZH-CN;
329
- font-weight: bold; }
328
+ mso-fareast-language: ZH-CN; }
330
329
 
331
330
  /* IEC: TERM-admitted */
332
331
  p.AltTerms, li.AltTerms, div.AltTerms {
@@ -314,8 +314,7 @@ p.Terms, li.Terms, div.Terms
314
314
  mso-fareast-font-family:"Times New Roman";
315
315
  letter-spacing:.4pt;
316
316
  mso-ansi-language:EN-GB;
317
- mso-fareast-language:ZH-CN;
318
- font-weight:bold;}
317
+ mso-fareast-language:ZH-CN;}
319
318
  /* IEC: TERM-admitted */
320
319
  p.AltTerms, li.AltTerms, div.AltTerms
321
320
  {mso-style-name:"AltTerm\(s\)";