metanorma-standoc 2.4.1 → 2.4.2
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 +4 -4
- data/Gemfile +1 -0
- data/lib/metanorma/standoc/cleanup.rb +2 -1
- data/lib/metanorma/standoc/cleanup_block.rb +7 -0
- data/lib/metanorma/standoc/cleanup_footnotes.rb +18 -6
- data/lib/metanorma/standoc/cleanup_symbols.rb +2 -2
- data/lib/metanorma/standoc/cleanup_table.rb +15 -1
- data/lib/metanorma/standoc/cleanup_terms.rb +2 -2
- data/lib/metanorma/standoc/cleanup_terms_designations.rb +1 -21
- data/lib/metanorma/standoc/isodoc.rng +29 -7
- data/lib/metanorma/standoc/validate_section.rb +10 -4
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +2 -2
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 04c2c98697be18adacdad75abadd4f5d323d6082091a17de0a70f3ffa2488317
|
4
|
+
data.tar.gz: 8824f124552d8e6ac6d38c5330dbd194bd6171bf24f0b870b9b7dff281e6df52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cfe8279a23b6c7323927907f5063e2b1dc98b64ad83d742ced62f4bdd6b098bd520cbcaa051319ad0d247efab17d2d989554bce9ba70ba8251fa01e28f384fe5
|
7
|
+
data.tar.gz: 261168bf0efc23682c9e9a1fb8294a0e6ecf3c541a3ed4fcc6fb31a8116c211c967b8b8f4c26c021d8eceb84a284996bcf0952443bef289705229d669c86e819
|
data/Gemfile
CHANGED
@@ -31,11 +31,12 @@ module Metanorma
|
|
31
31
|
obligations_cleanup(xmldoc)
|
32
32
|
para_index_cleanup(xmldoc)
|
33
33
|
block_index_cleanup(xmldoc)
|
34
|
-
table_cleanup(xmldoc)
|
34
|
+
table_cleanup(xmldoc) # feeds: blocksource_cleanup
|
35
35
|
formula_cleanup(xmldoc)
|
36
36
|
form_cleanup(xmldoc)
|
37
37
|
sourcecode_cleanup(xmldoc) # feeds: callout_cleanup
|
38
38
|
figure_cleanup(xmldoc)
|
39
|
+
blocksource_cleanup(xmldoc)
|
39
40
|
requirement_cleanup(xmldoc) # feeds: xref_cleanup
|
40
41
|
element_name_cleanup(xmldoc)
|
41
42
|
ref_cleanup(xmldoc) # feeds: bibitem_cleanup
|
@@ -228,6 +228,13 @@ module Metanorma
|
|
228
228
|
"Style override set for ordered list")
|
229
229
|
end
|
230
230
|
end
|
231
|
+
|
232
|
+
def blocksource_cleanup(xmldoc)
|
233
|
+
xmldoc.xpath("//figure//termsource | //table//termsource").each do |s|
|
234
|
+
s.name = "source"
|
235
|
+
s.delete("type")
|
236
|
+
end
|
237
|
+
end
|
231
238
|
end
|
232
239
|
end
|
233
240
|
end
|
@@ -90,16 +90,28 @@ module Metanorma
|
|
90
90
|
end
|
91
91
|
|
92
92
|
def footnote_block_cleanup(xmldoc)
|
93
|
-
xmldoc.xpath("//footnoteblock").
|
93
|
+
ids = xmldoc.xpath("//footnoteblock").each_with_object([]) do |f, m|
|
94
94
|
f.name = "fn"
|
95
|
+
m << f.text
|
95
96
|
if id = xmldoc.at("//*[@id = '#{f.text}']")
|
96
|
-
f.children = id.
|
97
|
-
else
|
98
|
-
@log.add("Crossreferences", f,
|
99
|
-
"Could not resolve footnoteblock:[#{f.text}]")
|
100
|
-
f.children = "[ERROR]"
|
97
|
+
f.children = id.dup.children
|
98
|
+
else footnote_block_error(f)
|
101
99
|
end
|
102
100
|
end
|
101
|
+
footnote_block_remove(xmldoc, ids)
|
102
|
+
end
|
103
|
+
|
104
|
+
def footnote_block_remove(xmldoc, ids)
|
105
|
+
ids.each do |id|
|
106
|
+
n = xmldoc.at("//*[@id = '#{id}']") and
|
107
|
+
n.remove
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
def footnote_block_error(fnote)
|
112
|
+
@log.add("Crossreferences", fnote,
|
113
|
+
"Could not resolve footnoteblock:[#{fnote.text}]")
|
114
|
+
fnote.children = "[ERROR]"
|
103
115
|
end
|
104
116
|
|
105
117
|
def footnote_cleanup(xmldoc)
|
@@ -17,9 +17,9 @@ module Metanorma
|
|
17
17
|
def asciimath_key(sym)
|
18
18
|
key = sym.dup
|
19
19
|
key.traverse do |n|
|
20
|
-
if n.name == "
|
20
|
+
if n.name == "stem" && a = n.at(".//asciimath")
|
21
21
|
n.children = @c.encode(
|
22
|
-
@c.decode(grkletters(
|
22
|
+
@c.decode(grkletters(a.text)), :basic
|
23
23
|
)
|
24
24
|
end
|
25
25
|
end
|
@@ -46,16 +46,30 @@ module Metanorma
|
|
46
46
|
def table_cleanup(xmldoc)
|
47
47
|
dl1_table_cleanup(xmldoc)
|
48
48
|
dl2_table_cleanup(xmldoc)
|
49
|
+
sources_table_cleanup(xmldoc)
|
49
50
|
notes_table_cleanup(xmldoc)
|
50
51
|
header_rows_cleanup(xmldoc)
|
51
52
|
end
|
52
53
|
|
54
|
+
def sources_table_cleanup(xmldoc)
|
55
|
+
nomatches = false
|
56
|
+
until nomatches
|
57
|
+
nomatches = true
|
58
|
+
xmldoc.xpath("//table/following-sibling::*[1]" \
|
59
|
+
"[self::termsource]").each do |n|
|
60
|
+
n.previous_element << n.remove
|
61
|
+
nomatches = false
|
62
|
+
# will be renamed source from termsource later
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
53
67
|
# move notes into table
|
54
68
|
def notes_table_cleanup(xmldoc)
|
55
69
|
nomatches = false
|
56
70
|
until nomatches
|
57
71
|
nomatches = true
|
58
|
-
xmldoc.xpath("//table/following-sibling::*[1]"\
|
72
|
+
xmldoc.xpath("//table/following-sibling::*[1]" \
|
59
73
|
"[self::note[not(@keep-separate = 'true')]]").each do |n|
|
60
74
|
n.delete("keep-separate")
|
61
75
|
n.previous_element << n.remove
|
@@ -27,7 +27,7 @@ module Metanorma
|
|
27
27
|
end
|
28
28
|
|
29
29
|
TERMDEF_BLOCKS =
|
30
|
-
"./p | ./ol | ./dl[not(@metadata = 'true')] | ./ul | ./figure | "\
|
30
|
+
"./p | ./ol | ./dl[not(@metadata = 'true')] | ./ul | ./figure | " \
|
31
31
|
"./formula | ./table".freeze
|
32
32
|
|
33
33
|
def generate_termdefinitions(xmldoc)
|
@@ -47,7 +47,7 @@ module Metanorma
|
|
47
47
|
if d.at("./p | ./ol | ./dl | ./ul")
|
48
48
|
d.children = "<verbal-definition>#{d.children}</verbal-definition>"
|
49
49
|
else
|
50
|
-
d.children = "<non-verbal-representation>"\
|
50
|
+
d.children = "<non-verbal-representation>" \
|
51
51
|
"#{d.children}</non-verbal-representation>"
|
52
52
|
end
|
53
53
|
end
|
@@ -2,7 +2,6 @@ module Metanorma
|
|
2
2
|
module Standoc
|
3
3
|
module Cleanup
|
4
4
|
def termdef_stem_cleanup(xmldoc)
|
5
|
-
termdef_stem2admitted(xmldoc)
|
6
5
|
xmldoc.xpath("//term//expression/name[stem]").each do |n|
|
7
6
|
test = n.dup
|
8
7
|
test.at("./stem").remove
|
@@ -12,25 +11,6 @@ module Metanorma
|
|
12
11
|
end
|
13
12
|
end
|
14
13
|
|
15
|
-
def termdef_stem2admitted(xmldoc)
|
16
|
-
xmldoc.xpath("//term/p/stem").each do |a|
|
17
|
-
if initial_formula(a.parent)
|
18
|
-
parent = a.parent
|
19
|
-
parent.replace("<admitted>#{term_expr(a.to_xml)}</admitted>")
|
20
|
-
end
|
21
|
-
end
|
22
|
-
xmldoc.xpath("//term/formula").each do |a|
|
23
|
-
initial_formula(a) and
|
24
|
-
a.replace("<admitted>#{term_expr(a.children.to_xml)}</admitted>")
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
def initial_formula(elem)
|
29
|
-
elem.elements.size == 1 && # para contains just stem expression
|
30
|
-
!elem.at("./preceding-sibling::p | ./preceding-sibling::dl | "\
|
31
|
-
"./preceding-sibling::ol | ./preceding-sibling::ul")
|
32
|
-
end
|
33
|
-
|
34
14
|
# release termdef tags from surrounding paras
|
35
15
|
def termdef_unnest_cleanup(xmldoc)
|
36
16
|
desgn = "//p/admitted | //p/deprecates | //p/preferred | //p//related"
|
@@ -136,7 +116,7 @@ module Metanorma
|
|
136
116
|
def dl_to_designation(dlist)
|
137
117
|
prev = dlist.previous_element
|
138
118
|
unless %w(preferred admitted deprecates related).include? prev&.name
|
139
|
-
@log.add("AsciiDoc Input", dlist, "Metadata definition list does "\
|
119
|
+
@log.add("AsciiDoc Input", dlist, "Metadata definition list does " \
|
140
120
|
"not follow a term designation")
|
141
121
|
return nil
|
142
122
|
end
|
@@ -382,6 +382,9 @@
|
|
382
382
|
<optional>
|
383
383
|
<ref name="dl"/>
|
384
384
|
</optional>
|
385
|
+
<optional>
|
386
|
+
<ref name="source"/>
|
387
|
+
</optional>
|
385
388
|
</element>
|
386
389
|
</define>
|
387
390
|
<define name="figure">
|
@@ -404,9 +407,6 @@
|
|
404
407
|
<attribute name="class"/>
|
405
408
|
</optional>
|
406
409
|
<ref name="BlockAttributes"/>
|
407
|
-
<optional>
|
408
|
-
<ref name="source"/>
|
409
|
-
</optional>
|
410
410
|
<optional>
|
411
411
|
<ref name="tname"/>
|
412
412
|
</optional>
|
@@ -431,6 +431,20 @@
|
|
431
431
|
<zeroOrMore>
|
432
432
|
<ref name="note"/>
|
433
433
|
</zeroOrMore>
|
434
|
+
<optional>
|
435
|
+
<ref name="source"/>
|
436
|
+
</optional>
|
437
|
+
</element>
|
438
|
+
</define>
|
439
|
+
<define name="source">
|
440
|
+
<element name="source">
|
441
|
+
<attribute name="status">
|
442
|
+
<ref name="SourceStatusType"/>
|
443
|
+
</attribute>
|
444
|
+
<ref name="origin"/>
|
445
|
+
<optional>
|
446
|
+
<ref name="modification"/>
|
447
|
+
</optional>
|
434
448
|
</element>
|
435
449
|
</define>
|
436
450
|
<define name="sourcecode">
|
@@ -2099,10 +2113,7 @@
|
|
2099
2113
|
<define name="termsource">
|
2100
2114
|
<element name="termsource">
|
2101
2115
|
<attribute name="status">
|
2102
|
-
<
|
2103
|
-
<value>identical</value>
|
2104
|
-
<value>modified</value>
|
2105
|
-
</choice>
|
2116
|
+
<ref name="SourceStatusType"/>
|
2106
2117
|
</attribute>
|
2107
2118
|
<attribute name="type">
|
2108
2119
|
<choice>
|
@@ -2116,6 +2127,17 @@
|
|
2116
2127
|
</optional>
|
2117
2128
|
</element>
|
2118
2129
|
</define>
|
2130
|
+
<define name="SourceStatusType">
|
2131
|
+
<choice>
|
2132
|
+
<value>identical</value>
|
2133
|
+
<value>modified</value>
|
2134
|
+
<value>restyled</value>
|
2135
|
+
<value>context-added</value>
|
2136
|
+
<value>generalisation</value>
|
2137
|
+
<value>specialisation</value>
|
2138
|
+
<value>unspecified</value>
|
2139
|
+
</choice>
|
2140
|
+
</define>
|
2119
2141
|
<define name="origin">
|
2120
2142
|
<element name="origin">
|
2121
2143
|
<choice>
|
@@ -13,10 +13,16 @@ module Metanorma
|
|
13
13
|
root.xpath("//sourcecode").each do |x|
|
14
14
|
callouts = x.elements.select { |e| e.name == "callout" }
|
15
15
|
annotations = x.elements.select { |e| e.name == "annotation" }
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
16
|
+
callouts_error(x, callouts, annotations)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def callouts_error(elem, callouts, annotations)
|
21
|
+
if callouts.size != annotations.size && !annotations.empty?
|
22
|
+
err = "mismatch of callouts (#{callouts.size}) and annotations " \
|
23
|
+
"(#{annotations.size})"
|
24
|
+
@log.add("AsciiDoc Input", elem, err)
|
25
|
+
@fatalerror << err
|
20
26
|
end
|
21
27
|
end
|
22
28
|
|
data/metanorma-standoc.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.add_dependency "asciidoctor", "~> 2.0.0"
|
32
32
|
spec.add_dependency "iev", "~> 0.3.0"
|
33
33
|
spec.add_dependency "isodoc", "~> 2.5.0"
|
34
|
-
spec.add_dependency "metanorma"
|
34
|
+
spec.add_dependency "metanorma", ">= 1.5.0"
|
35
35
|
spec.add_dependency "metanorma-plugin-datastruct", "~> 0.2.0"
|
36
36
|
spec.add_dependency "metanorma-plugin-lutaml"
|
37
37
|
spec.add_dependency "ruby-jing"
|
@@ -41,7 +41,7 @@ Gem::Specification.new do |spec|
|
|
41
41
|
spec.add_dependency "plurimath"
|
42
42
|
spec.add_dependency "pngcheck"
|
43
43
|
spec.add_dependency "relaton-cli", "~> 1.15.0"
|
44
|
-
spec.add_dependency "relaton-iev", "~> 1.1.
|
44
|
+
spec.add_dependency "relaton-iev", "~> 1.1.5"
|
45
45
|
spec.add_dependency "unicode2latex", "~> 0.0.1"
|
46
46
|
|
47
47
|
spec.add_development_dependency "debug"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-standoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 1.5.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 1.5.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: metanorma-plugin-datastruct
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -184,14 +184,14 @@ dependencies:
|
|
184
184
|
requirements:
|
185
185
|
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 1.1.
|
187
|
+
version: 1.1.5
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 1.1.
|
194
|
+
version: 1.1.5
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: unicode2latex
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|