metanorma-ieee 1.1.10 → 1.2.0

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: a3a6c74c844149f002a1ebd200b398e2d5ab166858d2a8131fea9f348f5f2d58
4
- data.tar.gz: dd9a99edeaa959c3d199eb6906baedd93af2f3e189ee9dd18fb6ea033fc26a97
3
+ metadata.gz: 4c8b36f29257a62401c8357b433057740ec7d9a1a94bf0f1d44916aaf7bcb2ad
4
+ data.tar.gz: c1e3293746afb9c5af22399b9cc5c896f92caa2cbca50000802ee401378a3029
5
5
  SHA512:
6
- metadata.gz: bd5300a786ae9e99557b8bdb96cd60f79a23fbcd713a512229eef84e38c33e3196d840e9ac9d4c5ba44070d3ab4aa4dee3910d49cce5b372dec7b4196f97a713
7
- data.tar.gz: f0d1fafb3146544b1423ec9f4e7d3b5daebe5d6584d320d06040c40d2b645902e49af7a7a427e53e2e8dd3632bf099fd930c91d1f5bc4489fdb997872be40bb7
6
+ metadata.gz: d405aac6ed448e8763c5f0de08b8edefffb6a883f394dffb8d59205085d07a0c4436d8ac13c115d84c3258de97205bf28eb3fd2857b675124d9da1966f2784b7
7
+ data.tar.gz: c509c9af29dbd57d59189adbd85e636d198c14702dd5cb4f530a6e4af7383066845c04df1b3595a08cc03debdbcf0517acd7b19a62ac37bf6b574a921874461c
@@ -12335,14 +12335,16 @@
12335
12335
 
12336
12336
  <xsl:template match="*[local-name() = 'annex']">
12337
12337
  <fo:block break-after="page"/>
12338
- <fo:block id="{@id}">
12338
+ <fo:block>
12339
12339
 
12340
12340
  <xsl:call-template name="setBlockSpanAll"/>
12341
12341
 
12342
12342
  <xsl:call-template name="refine_annex_style"/>
12343
12343
 
12344
12344
  </fo:block>
12345
- <xsl:apply-templates/>
12345
+ <fo:block id="{@id}">
12346
+ <xsl:apply-templates/>
12347
+ </fo:block>
12346
12348
  </xsl:template>
12347
12349
 
12348
12350
  <xsl:template name="refine_annex_style">
@@ -12335,14 +12335,16 @@
12335
12335
 
12336
12336
  <xsl:template match="*[local-name() = 'annex']">
12337
12337
  <fo:block break-after="page"/>
12338
- <fo:block id="{@id}">
12338
+ <fo:block>
12339
12339
 
12340
12340
  <xsl:call-template name="setBlockSpanAll"/>
12341
12341
 
12342
12342
  <xsl:call-template name="refine_annex_style"/>
12343
12343
 
12344
12344
  </fo:block>
12345
- <xsl:apply-templates/>
12345
+ <fo:block id="{@id}">
12346
+ <xsl:apply-templates/>
12347
+ </fo:block>
12346
12348
  </xsl:template>
12347
12349
 
12348
12350
  <xsl:template name="refine_annex_style">
@@ -143,8 +143,7 @@ module IsoDoc
143
143
  end
144
144
 
145
145
  def ddMMMyyyy(isodate)
146
- return nil if isodate.nil?
147
-
146
+ isodate.nil? and return nil
148
147
  arr = isodate.split("-")
149
148
  if arr.size == 1 && (/^\d+$/.match isodate)
150
149
  Date.new(*arr.map(&:to_i)).strftime("%Y")
@@ -50,10 +50,10 @@ module IsoDoc
50
50
 
51
51
  def bibrender_relaton(xml, renderings)
52
52
  f = renderings[xml["id"]][:formattedref]
53
- f &&= "<formattedref>#{f}</formattedref>"
53
+ fn = availability_note(xml)
54
+ f &&= "<formattedref>#{f}#{fn}</formattedref>"
54
55
  keep = "./docidentifier | ./uri | ./note | ./title | ./biblio-tag"
55
- xml.children =
56
- "#{f}#{xml.xpath(ns(keep)).to_xml}"
56
+ xml.children = "#{f}#{xml.xpath(ns(keep)).to_xml}"
57
57
  @author[xml["id"]] = renderings[xml["id"]][:author]
58
58
  end
59
59
 
@@ -82,6 +82,12 @@ module IsoDoc
82
82
  def expand_citeas(text)
83
83
  std_docid_semantic(super)
84
84
  end
85
+
86
+ def availability_note(bib)
87
+ note = bib.at(ns("./note[@type = 'Availability']")) or return ""
88
+ id = UUIDTools::UUID.random_create.to_s
89
+ "<fn reference='#{id}'><p>#{note.content}</p></fn>"
90
+ end
85
91
  end
86
92
  end
87
93
  end
@@ -34,8 +34,7 @@ module IsoDoc
34
34
 
35
35
  def unwrap_definition(docxml)
36
36
  docxml.xpath(ns(".//definition/verbal-definition")).each do |v|
37
- next unless v.elements.all? { |e| %w(termsource p).include?(e.name) }
38
-
37
+ v.elements.all? { |e| %w(termsource p).include?(e.name) } or next
39
38
  p = v.xpath(ns("./p"))
40
39
  v.children =
41
40
  "<p>#{p.map(&:children).map { |x| to_xml(x) }.join("\n")}</p>" \
@@ -73,7 +72,7 @@ module IsoDoc
73
72
  "./preferred/graphical-symbol/figure/@id | " \
74
73
  "./preferred"))
75
74
  f = term.at(ns("./field-of-application")) || term.at(ns("./domain"))
76
- HTMLEntities.new.decode("#{sort_terms_key1(d)} :: #{sort_terms_key1(f)}")
75
+ @c.decode("#{sort_terms_key1(d)} :: #{sort_terms_key1(f)}")
77
76
  end
78
77
 
79
78
  def sort_terms_key1(elem)
@@ -190,8 +189,7 @@ module IsoDoc
190
189
  end
191
190
 
192
191
  def collapse_unwrap_definition(defn)
193
- return nil if defn.nil?
194
-
192
+ defn.nil? and return nil
195
193
  s = defn.remove.xpath(ns("./termsource"))
196
194
  p = defn.at(ns("./p"))
197
195
  !s.empty? && p and p << s.map(&:remove).map(&:children)
@@ -95,8 +95,89 @@
95
95
  <ref name="pagebreak"/>
96
96
  <ref name="hr"/>
97
97
  <ref name="bookmark"/>
98
+ <ref name="amend"/>
98
99
  </choice>
99
100
  </define>
101
+ <define name="amend">
102
+ <element name="amend">
103
+ <ref name="AmendType"/>
104
+ </element>
105
+ </define>
106
+ <define name="AmendType">
107
+ <optional>
108
+ <attribute name="id">
109
+ <data type="ID"/>
110
+ </attribute>
111
+ </optional>
112
+ <attribute name="change">
113
+ <choice>
114
+ <value>add</value>
115
+ <value>modify</value>
116
+ <value>delete</value>
117
+ <value>replace</value>
118
+ </choice>
119
+ </attribute>
120
+ <optional>
121
+ <attribute name="path"/>
122
+ </optional>
123
+ <optional>
124
+ <attribute name="path_end"/>
125
+ </optional>
126
+ <optional>
127
+ <attribute name="title"/>
128
+ </optional>
129
+ <optional>
130
+ <element name="location">
131
+ <zeroOrMore>
132
+ <choice>
133
+ <ref name="locality"/>
134
+ <ref name="localityStack"/>
135
+ </choice>
136
+ </zeroOrMore>
137
+ </element>
138
+ </optional>
139
+ <optional>
140
+ <element name="description">
141
+ <zeroOrMore>
142
+ <ref name="BasicBlock"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </optional>
146
+ <optional>
147
+ <element name="newcontent">
148
+ <optional>
149
+ <attribute name="id">
150
+ <data type="ID"/>
151
+ </attribute>
152
+ </optional>
153
+ <zeroOrMore>
154
+ <ref name="BasicBlock"/>
155
+ </zeroOrMore>
156
+ </element>
157
+ </optional>
158
+ <zeroOrMore>
159
+ <ref name="classification"/>
160
+ </zeroOrMore>
161
+ <zeroOrMore>
162
+ <ref name="contributor"/>
163
+ </zeroOrMore>
164
+ </define>
165
+ <define name="classification">
166
+ <element name="classification">
167
+ <ref name="classification_tag"/>
168
+ <ref name="classification_value"/>
169
+ </element>
170
+ </define>
171
+ <define name="classification_tag">
172
+ <element name="tag">
173
+ <text/>
174
+ </element>
175
+ </define>
176
+ <define name="classification_value">
177
+ <element name="value">
178
+ <text/>
179
+ </element>
180
+ </define>
100
181
  <define name="paragraph">
101
182
  <element name="p">
102
183
  <ref name="ParagraphType"/>
@@ -939,18 +1020,12 @@
939
1020
  </optional>
940
1021
  <optional>
941
1022
  <attribute name="width">
942
- <choice>
943
- <data type="int"/>
944
- <value>auto</value>
945
- </choice>
1023
+ <ref name="ImageSize"/>
946
1024
  </attribute>
947
1025
  </optional>
948
1026
  <optional>
949
1027
  <attribute name="height">
950
- <choice>
951
- <data type="int"/>
952
- <value>auto</value>
953
- </choice>
1028
+ <ref name="ImageSize"/>
954
1029
  </attribute>
955
1030
  </optional>
956
1031
  <optional>
@@ -965,6 +1040,14 @@
965
1040
  </attribute>
966
1041
  </optional>
967
1042
  </define>
1043
+ <define name="ImageSize">
1044
+ <choice>
1045
+ <data type="string">
1046
+ <param name="pattern">\d+([.]\d+)?(%?)</param>
1047
+ </data>
1048
+ <value>auto</value>
1049
+ </choice>
1050
+ </define>
968
1051
  <define name="video">
969
1052
  <element name="video">
970
1053
  <attribute name="id">
@@ -9,11 +9,42 @@
9
9
  -->
10
10
  <include href="biblio.rng">
11
11
  <define name="BibData">
12
- <ref name="BibliographicItem"/>
12
+ <ref name="StandardBibliographicItem"/>
13
13
  <optional>
14
14
  <ref name="ext"/>
15
15
  </optional>
16
16
  </define>
17
+ <define name="docrelation">
18
+ <element name="relation">
19
+ <attribute name="type">
20
+ <ref name="DocRelationType"/>
21
+ </attribute>
22
+ <optional>
23
+ <element name="description">
24
+ <ref name="FormattedString"/>
25
+ </element>
26
+ </optional>
27
+ <element name="bibitem">
28
+ <ref name="StandardReducedBibliographicItem"/>
29
+ </element>
30
+ <choice>
31
+ <zeroOrMore>
32
+ <ref name="locality"/>
33
+ </zeroOrMore>
34
+ <zeroOrMore>
35
+ <ref name="localityStack"/>
36
+ </zeroOrMore>
37
+ </choice>
38
+ <choice>
39
+ <zeroOrMore>
40
+ <ref name="sourceLocality"/>
41
+ </zeroOrMore>
42
+ <zeroOrMore>
43
+ <ref name="sourceLocalityStack"/>
44
+ </zeroOrMore>
45
+ </choice>
46
+ </element>
47
+ </define>
17
48
  </include>
18
49
  <define name="ext">
19
50
  <element name="ext">
@@ -161,4 +192,16 @@
161
192
  </optional>
162
193
  </element>
163
194
  </define>
195
+ <define name="StandardBibliographicItem">
196
+ <ref name="BibliographicItem"/>
197
+ <zeroOrMore>
198
+ <ref name="amend"/>
199
+ </zeroOrMore>
200
+ </define>
201
+ <define name="StandardReducedBibliographicItem">
202
+ <ref name="ReducedBibliographicItem"/>
203
+ <zeroOrMore>
204
+ <ref name="amend"/>
205
+ </zeroOrMore>
206
+ </define>
164
207
  </grammar>
@@ -241,6 +241,9 @@
241
241
  </element>
242
242
  </define>
243
243
  <define name="FullNameType">
244
+ <optional>
245
+ <ref name="name_abbreviation"/>
246
+ </optional>
244
247
  <choice>
245
248
  <group>
246
249
  <zeroOrMore>
@@ -266,6 +269,11 @@
266
269
  <ref name="variantname"/>
267
270
  </zeroOrMore>
268
271
  </define>
272
+ <define name="name_abbreviation">
273
+ <element name="abbreviation">
274
+ <ref name="LocalizedString"/>
275
+ </element>
276
+ </define>
269
277
  <define name="prefix">
270
278
  <element name="prefix">
271
279
  <ref name="LocalizedString"/>
@@ -870,6 +878,9 @@
870
878
  <optional>
871
879
  <ref name="validity"/>
872
880
  </optional>
881
+ <optional>
882
+ <ref name="depiction"/>
883
+ </optional>
873
884
  </define>
874
885
  <define name="btitle">
875
886
  <element name="title">
@@ -15,13 +15,11 @@ module Metanorma
15
15
  if ref.at("./note[@type = 'boilerplate']")
16
16
  unwrap_boilerplate_clauses(ref, ".")
17
17
  else
18
- pref = @i18n.biblio_pref
19
- ref.at("./title").next = "<p>#{pref}</p>"
18
+ ref.at("./title").next = "<p>#{@i18n.biblio_pref}</p>"
20
19
  end
21
20
  end
22
21
 
23
22
  def sort_biblio(bib)
24
- @c = HTMLEntities.new
25
23
  @i = IsoDoc::IEEE::PresentationXMLConvert
26
24
  .new({ lang: @lang, script: @script, locale: @locale })
27
25
  @i.i18n_init(@lang, @script, @locale)
@@ -75,12 +73,13 @@ module Metanorma
75
73
  trademark_ieee_erefs(xmldoc)
76
74
  end
77
75
 
76
+ IEEE = "Institute of Electrical and Electronics Engineers".freeze
77
+
78
78
  # Style manual 12.3.5
79
79
  def trademark_ieee_erefs(xmldoc)
80
80
  ieee = xmldoc.xpath("//references/bibitem")
81
81
  .each_with_object({}) do |b, m|
82
- n = b.at("./contributor[role/@type = 'publisher']/organization/name")
83
- n&.text == "Institute of Electrical and Electronics Engineers" and
82
+ bib_pubs(b).include?(IEEE) and
84
83
  m[b["id"]] = b.at("./docidentifier[@scope = 'trademark']")&.text
85
84
  end
86
85
  trademark_ieee_erefs1(xmldoc, "//preface//eref", ieee)
@@ -127,10 +126,114 @@ module Metanorma
127
126
  end
128
127
 
129
128
  def section_names_refs_cleanup(xml)
130
- if @doctype == "whitepaper"
131
- replace_title(xml, "//bibliography/references",
132
- @i18n&.references, true)
133
- else super
129
+ @doctype == "whitepaper" or return super
130
+ replace_title(xml, "//bibliography/references", @i18n&.references, true)
131
+ end
132
+
133
+ def bibitem_cleanup(xmldoc)
134
+ super
135
+ f = File.join(File.dirname(__FILE__), "ieee-footnotes.yaml")
136
+ @provenance_notes = YAML.safe_load(File.read(f))
137
+ withdrawn_note(xmldoc, @provenance_notes)
138
+ end
139
+
140
+ def biblio_reorder(xmldoc)
141
+ super
142
+ available_note(xmldoc, @provenance_notes)
143
+ end
144
+
145
+ def bib_pubs(bib)
146
+ bib.xpath("./contributor[role/@type = 'publisher']/organization/name")
147
+ .map(&:text)
148
+ end
149
+
150
+ BIBITEM_NO_AVAIL =
151
+ "//references/bibitem[not(note[@type = 'Availability'])]".freeze
152
+
153
+ def withdrawn_note(xmldoc, provenance_notes)
154
+ xmldoc.xpath(BIBITEM_NO_AVAIL).each do |b|
155
+ bib_pubs(b).include?(IEEE) or next
156
+ b.at("./status/stage")&.text == "withdrawn" or next
157
+ docid = b.at("./docidentifier[@type = 'IEEE'][not(@scope)]")
158
+ note = provenance_notes["ieee-withdrawn"].sub("%", docid.text)
159
+ insert_availability_note(b, note)
160
+ end
161
+ end
162
+
163
+ AVAIL_PUBS = {
164
+ ieee: IEEE,
165
+ cispr: "International special committee on radio interference",
166
+ etsi: "European Telecommunications Standards Institute",
167
+ oasis: "OASIS",
168
+ "w3c": "World Wide Web Consortium",
169
+ "3gpp": "3rd Generation Partnership Project",
170
+ }.freeze
171
+
172
+ def available_note(xmldoc, provenance_notes)
173
+ iso_iec_available_note(xmldoc, provenance_notes["iso-iec"], true, true)
174
+ iso_iec_available_note(xmldoc, provenance_notes["iso"], true, false)
175
+ iso_iec_available_note(xmldoc, provenance_notes["iec"], false, true)
176
+ itu_available_note(xmldoc, provenance_notes["itut"], true)
177
+ itu_available_note(xmldoc, provenance_notes["itur"], false)
178
+ nist_available_note(xmldoc, provenance_notes["fips"], true)
179
+ nist_available_note(xmldoc, provenance_notes["nist"], false)
180
+ ietf_available_note(xmldoc, provenance_notes["ietf"])
181
+ AVAIL_PUBS.each do |k, v|
182
+ sdo_available_note(xmldoc, provenance_notes[k.to_s], v)
183
+ end
184
+ end
185
+
186
+ def sdo_available_note(xmldoc, note, publisher)
187
+ ret = xmldoc.xpath(BIBITEM_NO_AVAIL).detect do |b|
188
+ bib_pubs(b).include?(publisher)
189
+ end
190
+ insert_availability_note(ret, note)
191
+ end
192
+
193
+ def iso_iec_available_note(xmldoc, note, iso, iec)
194
+ ret = xmldoc.xpath(BIBITEM_NO_AVAIL).detect do |b|
195
+ pubs = bib_pubs(b)
196
+ has_iec = pubs.include?("International Electrotechnical Commission")
197
+ has_iso = pubs.include?("International Organization for Standardization")
198
+ ((has_iec && iec) || (!has_iec && !iec)) &&
199
+ ((has_iso && iso) || (!has_iso && !iso))
200
+ end
201
+ insert_availability_note(ret, note)
202
+ end
203
+
204
+ def ietf_available_note(xmldoc, note)
205
+ ret = xmldoc.xpath(BIBITEM_NO_AVAIL).detect do |b|
206
+ b.at("./docidentifier[@type = 'IETF']")
207
+ end
208
+ insert_availability_note(ret, note)
209
+ end
210
+
211
+ def itu_available_note(xmldoc, note, itu_t)
212
+ ret = xmldoc.xpath(BIBITEM_NO_AVAIL).detect do |b|
213
+ has_itu_t = /^ITU-T/.match?(b.at("./docidentifier[@type = 'ITU']")&.text)
214
+ bib_pubs(b).include?("International Telecommunication Union") &&
215
+ (!has_itu_t && !itu_t) || (has_itu_t && itu_t)
216
+ end
217
+ insert_availability_note(ret, note)
218
+ end
219
+
220
+ def nist_available_note(xmldoc, note, fips)
221
+ ret = xmldoc.xpath(BIBITEM_NO_AVAIL).detect do |b|
222
+ id = b.at("./docidentifier[@type = 'NIST']")
223
+ has_fips = /\bFIPS\b/.match?(id&.text)
224
+ id && ((has_fips && !fips) || (!has_fips && fips))
225
+ end
226
+ insert_availability_note(ret, note)
227
+ end
228
+
229
+ def insert_availability_note(bib, msg)
230
+ bib or return
231
+ note = %(<note type="Availability"><p>#{msg}</p></note>)
232
+ if b = bib.at("./language | ./script | ./abstract | ./status")
233
+ b.previous = note
234
+ else b = bib.at("./contributor") || bib.at("./date") ||
235
+ bib.at("./docnumber") || bib.at("./docidentifier") ||
236
+ bib.at("./title") and b.next = note
134
237
  end
135
238
  end
136
239
  end
@@ -0,0 +1,77 @@
1
+ ---
2
+ ieee: |
3
+ IEEE publications are available from The Institute of Electrical and
4
+ Electronics Engineers (http://standards.ieee.org/).
5
+
6
+ iec: |
7
+ IEC publications are available from the International Electrotechnical
8
+ Commission (http://www.iec.ch/). IEC publications are also available in
9
+ the United States from the American National Standards Institute
10
+ (http://www.ansi.org/).
11
+
12
+ cispr: |
13
+ CISPR documents are available from the International Electrotechnical
14
+ Commission (http://www.iec.ch/). CISPR documents are also available in
15
+ the United States from the American National Standards Institute
16
+ (http://www.ansi.org)
17
+
18
+ ietf: |
19
+ IETF documents (e.g., RFCs) are available from the Internet Engineering Task Force (http://www.ietf.org/).
20
+
21
+ iso: |
22
+ ISO publications are available from the ISO Central Secretariat
23
+ (http://www.iso.org/). ISO publications are also available in the United
24
+ States from the American National Standards Institute
25
+ (http://www.ansi.org/).
26
+
27
+ iso-iec: |
28
+ ISO/IEC documents are available from the International Organization for
29
+ Standardization (https://www.iso.org/). ISO/IEC publications are also
30
+ available in the United States from Global Engineering Documents
31
+ (https://global.ihs.com/). Electronic copies are available in the United
32
+ States from the American National Standards Institute
33
+ (https://www.ansi.org/)
34
+
35
+ fips: |
36
+ FIPS publications are available from the National Technical Information
37
+ Service (NTIS) (http://csrc.nist.gov).
38
+
39
+ nist: |
40
+ NIST publications are available from the National Institute of Standards
41
+ and Technology (http://www.nist.gov/).
42
+
43
+ astm: |
44
+ ASTM publications are available from the American Society for Testing
45
+ and Materials (http://www.astm.org/).
46
+
47
+ etsi: |
48
+ ETSI publications are available the European Telecommunications
49
+ Standards Institute (http://www.etsi.org).
50
+
51
+ ansi: |
52
+ ANSI publications are available from the American National Standards
53
+ Institute (http://www.ansi.org/).
54
+
55
+ itut: |
56
+ ITU-T publications are available from the International
57
+ Telecommunications Union (http://www.itu.int/).
58
+
59
+ itur: |
60
+ ITU publications are available from the International Telecommunications
61
+ Union (http://www.itu.int/).
62
+
63
+ w3c: |
64
+ W3C recommendations are available from the World Wide Web Consortium
65
+ (https://www.w3.org).
66
+
67
+ oasis: |
68
+ OASIS publications are available from the Organization for the
69
+ Organization for the Advancement of Structured Information Standards
70
+ (http://www.oasis-open.org)
71
+
72
+ 3gpp: |
73
+ 3GPP(TM) documents are available from the 3rd Generation Partnership
74
+ Project Web site (http://www.3gpp.org).
75
+
76
+ ieee-withdrawn: |
77
+ % has been withdrawn; however, copies can be obtained from Global Engineering, 15 Inverness Way East, Englewood, CO 80112-5704, USA, tel. (303) 792-2181 (http://global.ihs.com/).
@@ -17,10 +17,19 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.2.9 -->
20
+ <!-- VERSION v1.2.12 -->
21
21
  <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">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
24
+ <define name="amend">
25
+ <element name="amend">
26
+ <ref name="BlockAttributes"/>
27
+ <ref name="AmendType"/>
28
+ <zeroOrMore>
29
+ <ref name="autonumber"/>
30
+ </zeroOrMore>
31
+ </element>
32
+ </define>
24
33
  <define name="admonition">
25
34
  <element name="admonition">
26
35
  <attribute name="type">
@@ -2319,69 +2328,6 @@
2319
2328
  <ref name="CitationType"/>
2320
2329
  </element>
2321
2330
  </define>
2322
- <define name="amend">
2323
- <element name="amend">
2324
- <optional>
2325
- <attribute name="id">
2326
- <data type="ID"/>
2327
- </attribute>
2328
- </optional>
2329
- <attribute name="change">
2330
- <choice>
2331
- <value>add</value>
2332
- <value>modify</value>
2333
- <value>delete</value>
2334
- <value>replace</value>
2335
- </choice>
2336
- </attribute>
2337
- <optional>
2338
- <attribute name="path"/>
2339
- </optional>
2340
- <optional>
2341
- <attribute name="path_end"/>
2342
- </optional>
2343
- <optional>
2344
- <attribute name="title"/>
2345
- </optional>
2346
- <ref name="BlockAttributes"/>
2347
- <optional>
2348
- <element name="location">
2349
- <zeroOrMore>
2350
- <ref name="locality"/>
2351
- </zeroOrMore>
2352
- </element>
2353
- </optional>
2354
- <zeroOrMore>
2355
- <ref name="autonumber"/>
2356
- </zeroOrMore>
2357
- <optional>
2358
- <element name="description">
2359
- <zeroOrMore>
2360
- <ref name="BasicBlock"/>
2361
- </zeroOrMore>
2362
- </element>
2363
- </optional>
2364
- <optional>
2365
- <element name="newcontent">
2366
- <optional>
2367
- <attribute name="id">
2368
- <data type="ID"/>
2369
- </attribute>
2370
- </optional>
2371
- <zeroOrMore>
2372
- <ref name="BasicBlock"/>
2373
- </zeroOrMore>
2374
- </element>
2375
- </optional>
2376
- <optional>
2377
- <element name="description">
2378
- <zeroOrMore>
2379
- <ref name="BasicBlock"/>
2380
- </zeroOrMore>
2381
- </element>
2382
- </optional>
2383
- </element>
2384
- </define>
2385
2331
  <define name="autonumber">
2386
2332
  <element name="autonumber">
2387
2333
  <attribute name="type">
@@ -207,20 +207,4 @@
207
207
  <value>permission</value>
208
208
  </choice>
209
209
  </define>
210
- <define name="classification">
211
- <element name="classification">
212
- <ref name="classification_tag"/>
213
- <ref name="classification_value"/>
214
- </element>
215
- </define>
216
- <define name="classification_tag">
217
- <element name="tag">
218
- <text/>
219
- </element>
220
- </define>
221
- <define name="classification_value">
222
- <element name="value">
223
- <text/>
224
- </element>
225
- </define>
226
210
  </grammar>
@@ -149,7 +149,6 @@ module Metanorma
149
149
  (xmldoc.xpath("//figure") - xmldoc.xpath("//table//figure"))
150
150
  .each do |f|
151
151
  (i = f.at("./image") and !i["src"]&.start_with?("data:")) or next
152
-
153
152
  num = xrefs.anchor(f["id"], :label)
154
153
  base = File.basename(i["src"], ".*")
155
154
  base == "#{pref}_fig#{num}" or
@@ -170,7 +169,6 @@ module Metanorma
170
169
  xmldoc.xpath("//table[.//figure]").each do |t|
171
170
  xmldoc.xpath(".//figure").each do |f|
172
171
  (i = f.at("./image") and !i["src"]&.start_with?("data:")) or next
173
-
174
172
  num = tablefigurenumber(t, f, xrefs)
175
173
  base = File.basename(i["src"])
176
174
  base == num or
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module IEEE
3
- VERSION = "1.1.10".freeze
3
+ VERSION = "1.2.0".freeze
4
4
  end
5
5
  end
@@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.require_paths = ["lib"]
26
26
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
27
27
 
28
- spec.add_dependency "metanorma-standoc", "~> 2.7.0"
28
+ spec.add_dependency "metanorma-standoc", "~> 2.8.0"
29
29
  spec.add_dependency "mnconvert", "~> 1.20"
30
30
  #spec.add_dependency "pubid-ieee", "~> 0.1.1"
31
31
  #spec.add_dependency "pubid-iso", "~> 0.5.3"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ieee
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.10
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-22 00:00:00.000000000 Z
11
+ date: 2024-01-09 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: 2.7.0
19
+ version: 2.8.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: 2.7.0
26
+ version: 2.8.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: mnconvert
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -289,6 +289,7 @@ files:
289
289
  - lib/metanorma/ieee/cleanup_ref.rb
290
290
  - lib/metanorma/ieee/converter.rb
291
291
  - lib/metanorma/ieee/front.rb
292
+ - lib/metanorma/ieee/ieee-footnotes.yaml
292
293
  - lib/metanorma/ieee/ieee.rng
293
294
  - lib/metanorma/ieee/isodoc.rng
294
295
  - lib/metanorma/ieee/processor.rb