metanorma-standoc 2.4.1 → 2.4.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|