metanorma-iec 1.3.13 → 1.4.3

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: 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\)";