metanorma-iso 2.7.4 → 2.7.6

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.
@@ -156,44 +156,7 @@
156
156
  </define>
157
157
  <define name="xref">
158
158
  <element name="xref">
159
- <attribute name="target">
160
- <data type="string">
161
- <param name="pattern">\i\c*|\c+#\c+</param>
162
- </data>
163
- </attribute>
164
- <optional>
165
- <attribute name="to">
166
- <data type="string">
167
- <param name="pattern">\i\c*|\c+#\c+</param>
168
- </data>
169
- </attribute>
170
- </optional>
171
- <optional>
172
- <attribute name="type">
173
- <ref name="ReferenceFormat"/>
174
- </attribute>
175
- </optional>
176
- <optional>
177
- <attribute name="alt"/>
178
- </optional>
179
- <optional>
180
- <attribute name="case">
181
- <choice>
182
- <value>capital</value>
183
- <value>lowercase</value>
184
- </choice>
185
- </attribute>
186
- </optional>
187
- <optional>
188
- <attribute name="droploc">
189
- <data type="boolean"/>
190
- </attribute>
191
- </optional>
192
- <optional>
193
- <attribute name="style">
194
- <ref name="XrefStyleType"/>
195
- </attribute>
196
- </optional>
159
+ <ref name="XrefAttributes"/>
197
160
  <ref name="XrefBody"/>
198
161
  </element>
199
162
  </define>
@@ -407,23 +370,7 @@
407
370
  </define>
408
371
  <define name="figure">
409
372
  <element name="figure">
410
- <attribute name="id">
411
- <data type="ID"/>
412
- </attribute>
413
- <optional>
414
- <attribute name="unnumbered">
415
- <data type="boolean"/>
416
- </attribute>
417
- </optional>
418
- <optional>
419
- <attribute name="number"/>
420
- </optional>
421
- <optional>
422
- <attribute name="subsequence"/>
423
- </optional>
424
- <optional>
425
- <attribute name="class"/>
426
- </optional>
373
+ <ref name="FigureAttributes"/>
427
374
  <ref name="BlockAttributes"/>
428
375
  <optional>
429
376
  <ref name="tname"/>
@@ -2450,6 +2397,49 @@
2450
2397
  </zeroOrMore>
2451
2398
  </element>
2452
2399
  </define>
2400
+ <define name="XrefAttributes">
2401
+ <attribute name="target">
2402
+ <data type="string">
2403
+ <param name="pattern">\i\c*|\c+#\c+</param>
2404
+ </data>
2405
+ </attribute>
2406
+ <optional>
2407
+ <attribute name="to">
2408
+ <data type="string">
2409
+ <param name="pattern">\i\c*|\c+#\c+</param>
2410
+ </data>
2411
+ </attribute>
2412
+ </optional>
2413
+ <optional>
2414
+ <attribute name="type">
2415
+ <ref name="ReferenceFormat"/>
2416
+ </attribute>
2417
+ </optional>
2418
+ <optional>
2419
+ <attribute name="alt"/>
2420
+ </optional>
2421
+ <optional>
2422
+ <attribute name="case">
2423
+ <choice>
2424
+ <value>capital</value>
2425
+ <value>lowercase</value>
2426
+ </choice>
2427
+ </attribute>
2428
+ </optional>
2429
+ <optional>
2430
+ <attribute name="droploc">
2431
+ <data type="boolean"/>
2432
+ </attribute>
2433
+ </optional>
2434
+ <optional>
2435
+ <attribute name="style">
2436
+ <ref name="XrefStyleType"/>
2437
+ </attribute>
2438
+ </optional>
2439
+ <optional>
2440
+ <attribute name="label"/>
2441
+ </optional>
2442
+ </define>
2453
2443
  <define name="XrefBody">
2454
2444
  <zeroOrMore>
2455
2445
  <ref name="XrefTarget"/>
@@ -2528,6 +2518,28 @@
2528
2518
  <attribute name="columns"/>
2529
2519
  </optional>
2530
2520
  </define>
2521
+ <define name="FigureAttributes">
2522
+ <attribute name="id">
2523
+ <data type="ID"/>
2524
+ </attribute>
2525
+ <optional>
2526
+ <attribute name="unnumbered">
2527
+ <data type="boolean"/>
2528
+ </attribute>
2529
+ </optional>
2530
+ <optional>
2531
+ <attribute name="number"/>
2532
+ </optional>
2533
+ <optional>
2534
+ <attribute name="subsequence"/>
2535
+ </optional>
2536
+ <optional>
2537
+ <attribute name="class"/>
2538
+ </optional>
2539
+ <optional>
2540
+ <attribute name="width"/>
2541
+ </optional>
2542
+ </define>
2531
2543
  <start>
2532
2544
  <ref name="standard-document"/>
2533
2545
  </start>
@@ -125,13 +125,6 @@ module Metanorma
125
125
  "#{@doctype} is not a recognised document type")
126
126
  end
127
127
 
128
- def script_validate(xmldoc)
129
- script = xmldoc&.at("//bibdata/script")&.text
130
- %w(Cyrl Latn).include?(script) or
131
- @log.add("Document Attributes", nil,
132
- "#{script} is not a recognised script")
133
- end
134
-
135
128
  def iteration_validate(xmldoc)
136
129
  iteration = xmldoc&.at("//bibdata/status/iteration")&.text or return
137
130
  /^\d+/.match(iteration) or
@@ -141,7 +134,6 @@ module Metanorma
141
134
 
142
135
  def bibdata_validate(doc)
143
136
  doctype_validate(doc)
144
- script_validate(doc)
145
137
  iteration_validate(doc)
146
138
  end
147
139
 
@@ -6,10 +6,10 @@ module Metanorma
6
6
  module ISO
7
7
  class Converter < Standoc::Converter
8
8
  def extract_text(node)
9
- return "" if node.nil?
10
-
9
+ node.nil? and return ""
11
10
  node1 = Nokogiri::XML.fragment(node.to_s)
12
- node1.xpath("//link | //locality | //localityStack").each(&:remove)
11
+ node1.xpath(".//link | .//locality | .//localityStack | .//stem")
12
+ .each(&:remove)
13
13
  ret = ""
14
14
  node1.traverse { |x| ret += x.text if x.text? }
15
15
  HTMLEntities.new.decode(ret)
@@ -17,30 +17,26 @@ module Metanorma
17
17
 
18
18
  # ISO/IEC DIR 2, 12.2
19
19
  def foreword_style(node)
20
- return if @novalid
21
-
20
+ @novalid and return
22
21
  style_no_guidance(node, extract_text(node), "Foreword")
23
22
  end
24
23
 
25
24
  # ISO/IEC DIR 2, 14.2
26
25
  def scope_style(node)
27
- return if @novalid
28
-
26
+ @novalid and return
29
27
  style_no_guidance(node, extract_text(node), "Scope")
30
28
  end
31
29
 
32
30
  # ISO/IEC DIR 2, 13.2
33
31
  def introduction_style(node)
34
- return if @novalid
35
-
32
+ @novalid and return
36
33
  r = requirement_check(extract_text(node))
37
34
  style_warning(node, "Introduction may contain requirement", r) if r
38
35
  end
39
36
 
40
37
  # ISO/IEC DIR 2, 16.5.6
41
38
  def definition_style(node)
42
- return if @novalid
43
-
39
+ @novalid and return
44
40
  r = requirement_check(extract_text(node))
45
41
  style_warning(node, "Definition may contain requirement", r) if r
46
42
  end
@@ -48,24 +44,21 @@ module Metanorma
48
44
  # ISO/IEC DIR 2, 16.5.7
49
45
  # ISO/IEC DIR 2, 25.5
50
46
  def example_style(node)
51
- return if @novalid
52
-
47
+ @novalid and return
53
48
  style_no_guidance(node, extract_text(node), "Example")
54
49
  style(node, extract_text(node))
55
50
  end
56
51
 
57
52
  # ISO/IEC DIR 2, 24.5
58
53
  def note_style(node)
59
- return if @novalid
60
-
54
+ @novalid and return
61
55
  style_no_guidance(node, extract_text(node), "Note")
62
56
  style(node, extract_text(node))
63
57
  end
64
58
 
65
59
  # ISO/IEC DIR 2, 26.5
66
60
  def footnote_style(node)
67
- return if @novalid
68
-
61
+ @novalid and return
69
62
  style_no_guidance(node, extract_text(node), "Footnote")
70
63
  style(node, extract_text(node))
71
64
  end
@@ -91,7 +84,7 @@ module Metanorma
91
84
 
92
85
  def style(node, text)
93
86
  @novalid and return
94
- style_number(node, text)
87
+ @novalid_number or style_number(node, text)
95
88
  style_percent(node, text)
96
89
  style_abbrev(node, text)
97
90
  style_units(node, text)
@@ -116,6 +109,8 @@ module Metanorma
116
109
  def style_ambig_words(node, text)
117
110
  r = ambig_words_check(text) and
118
111
  style_warning(node, "may contain ambiguous provision", r)
112
+ @lang == "en" and style_regex(/\b(?<num>billions?)\b/i,
113
+ "ambiguous number", node, text)
119
114
  end
120
115
 
121
116
  # ISO/IEC DIR 2, 9.1
@@ -124,11 +119,12 @@ module Metanorma
124
119
  def style_number(node, text)
125
120
  style_number_grouping(node, text)
126
121
  style_regex(/(?:^|\p{Zs})(?<num>[0-9]+\.[0-9]+)(?!\.[0-9])/i,
127
- "possible decimal point", node, text)
122
+ "possible decimal point: mark up numbers with stem:[]", node, text)
128
123
  @lang == "en" and style_regex(/\b(?<num>billions?)\b/i,
129
124
  "ambiguous number", node, text)
130
125
  style_regex(/(?:^|\p{Zs})(?<num>-[0-9][0-9,.]*)/i,
131
126
  "hyphen instead of minus sign U+2212", node, text)
127
+ @novalid_number = true
132
128
  end
133
129
 
134
130
  def style_number_grouping(node, text)
@@ -136,13 +132,13 @@ module Metanorma
136
132
  style_two_regex_not_prev(
137
133
  node, text, /^(?<num>-?[0-9]{4,}[,0-9]*)\Z/,
138
134
  %r{\b(ISO|IEC|IEEE|(in|January|February|March|April|May|June|August|September|October|November|December)\b)\Z},
139
- "number not broken up in threes"
135
+ "number not broken up in threes: mark up numbers with stem:[]"
140
136
  )
141
137
  else
142
138
  style_two_regex_not_prev(
143
139
  node, text, /^(?<num>-?(?:[0-9]{5,}[,0-9]*|[03-9]\d\d\d|1[0-8]\d\d|2[1-9]\d\d|20[5-9]\d))\Z/,
144
140
  %r{\b(ISO|IEC|IEEE|\b)\Z},
145
- "number not broken up in threes"
141
+ "number not broken up in threes: mark up numbers with stem:[]"
146
142
  )
147
143
  end
148
144
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.7.4".freeze
3
+ VERSION = "2.7.6".freeze
4
4
  end
5
5
  end
@@ -34,9 +34,7 @@ Gem::Specification.new do |spec|
34
34
 
35
35
  spec.add_dependency "metanorma-standoc", "~> 2.8.4"
36
36
  spec.add_dependency "mnconvert", "~> 1.14"
37
- spec.add_dependency "pubid-cen"
38
- spec.add_dependency "pubid-iec"
39
- spec.add_dependency "pubid-iso"
37
+ spec.add_dependency "pubid"
40
38
  spec.add_dependency "tokenizer", "~> 0.3.0"
41
39
 
42
40
  spec.add_development_dependency "debug"
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: 2.7.4
4
+ version: 2.7.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-10 00:00:00.000000000 Z
11
+ date: 2024-04-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-standoc
@@ -39,35 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.14'
41
41
  - !ruby/object:Gem::Dependency
42
- name: pubid-cen
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: pubid-iec
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
69
- - !ruby/object:Gem::Dependency
70
- name: pubid-iso
42
+ name: pubid
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
45
  - - ">="
@@ -375,6 +347,7 @@ files:
375
347
  - lib/metanorma/iso/boilerplate-ru.adoc
376
348
  - lib/metanorma/iso/boilerplate.adoc
377
349
  - lib/metanorma/iso/cleanup.rb
350
+ - lib/metanorma/iso/cleanup_biblio.rb
378
351
  - lib/metanorma/iso/converter.rb
379
352
  - lib/metanorma/iso/front.rb
380
353
  - lib/metanorma/iso/front_contributor.rb