metanorma-standoc 2.10.5 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/metanorma/standoc/base.rb +8 -5
- data/lib/metanorma/standoc/biblio.rng +2 -0
- data/lib/metanorma/standoc/cleanup_bibdata.rb +1 -1
- data/lib/metanorma/standoc/cleanup_boilerplate.rb +1 -1
- data/lib/metanorma/standoc/cleanup_toc.rb +3 -3
- data/lib/metanorma/standoc/cleanup_xref.rb +19 -4
- data/lib/metanorma/standoc/converter.rb +0 -2
- data/lib/metanorma/standoc/isodoc-compile.rng +0 -1
- data/lib/metanorma/standoc/isodoc.rng +12 -6
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35f94b1c019edeb4422907e08dea706e5aa5f1ebfda48b2c6f0d518b66beec9c
|
4
|
+
data.tar.gz: eb5f4dc2f20109119d5d562fc08ce9e425fe4c0b0353ed8283a5b8887bc293ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 197988a7da6707a851cd24b584436825c3130e74ce2b792ad24cb8a86d0fc92c168f9eb0b494798d4119c94e0a915a5537c91d9a4d2de1880873fecbc64fc102
|
7
|
+
data.tar.gz: e7688aaecf8a901914588538d39b52d21bd7b871692c0bf889ab3147f325cd6586fee88210a1aaba50fef05c70d5a37bbb7d5a867013000c7e8eea3a3904b009
|
@@ -14,18 +14,20 @@ require "mn-requirements"
|
|
14
14
|
module Metanorma
|
15
15
|
module Standoc
|
16
16
|
module Base
|
17
|
-
XML_ROOT_TAG = "standard-document".freeze
|
18
|
-
XML_NAMESPACE = "https://www.metanorma.org/ns/standoc".freeze
|
17
|
+
#XML_ROOT_TAG = "standard-document".freeze
|
18
|
+
#XML_NAMESPACE = "https://www.metanorma.org/ns/standoc".freeze
|
19
19
|
FONTS_MANIFEST = "fonts-manifest".freeze
|
20
20
|
|
21
21
|
attr_accessor :log
|
22
22
|
|
23
23
|
def xml_root_tag
|
24
|
-
self.class::XML_ROOT_TAG
|
24
|
+
#self.class::XML_ROOT_TAG
|
25
|
+
"metanorma"
|
25
26
|
end
|
26
27
|
|
27
28
|
def xml_namespace
|
28
|
-
self.class::XML_NAMESPACE
|
29
|
+
#self.class::XML_NAMESPACE
|
30
|
+
"https://www.metanorma.org/ns/standoc"
|
29
31
|
end
|
30
32
|
|
31
33
|
def document(node)
|
@@ -87,7 +89,8 @@ module Metanorma
|
|
87
89
|
def makexml1(node)
|
88
90
|
result = ["<?xml version='1.0' encoding='UTF-8'?>",
|
89
91
|
"<#{xml_root_tag} type='semantic' version='#{version}' " \
|
90
|
-
"schema-version='#{schema_version}'
|
92
|
+
"schema-version='#{schema_version}' " \
|
93
|
+
"flavor='#{processor.new.asciidoctor_backend}'>"]
|
91
94
|
result << noko { |ixml| front node, ixml }
|
92
95
|
result << noko { |ixml| middle node, ixml }
|
93
96
|
result << "</#{xml_root_tag}>"
|
@@ -947,6 +947,8 @@ May be electronic (e.g. Twitter direct message, email) or voice (e.g. a remark m
|
|
947
947
|
typically cited as "personal communication")</a:documentation>
|
948
948
|
<value>conversation</value>
|
949
949
|
<a:documentation>An exchange of messages between two or more persons. May be electronic (e.g. web chat) or voice (e.g. phone call)</a:documentation>
|
950
|
+
<value>collection</value>
|
951
|
+
<a:documentation>A compound resource consisting of other resources, which are themselves presupposed to have their type specified..</a:documentation>
|
950
952
|
<value>misc</value>
|
951
953
|
<a:documentation>Bibliographic type not adequately described in the foregoing</a:documentation>
|
952
954
|
</choice>
|
@@ -132,7 +132,7 @@ module Metanorma
|
|
132
132
|
bibdata = bibdata.at("./relation[@type = 'derivedFrom']/bibitem")
|
133
133
|
ident = bibdata.at("./docidentifier[@primary = 'true']") ||
|
134
134
|
bibdata.at("./docidentifier")
|
135
|
-
xmldoc.xpath("//xref[@target = '#{d}'][normalize-space(text()) = '']")
|
135
|
+
xmldoc.xpath("//xref[@target = '#{d}'][normalize-space(.//text()) = '']")
|
136
136
|
.each { |x| x << ident.text }
|
137
137
|
end
|
138
138
|
end
|
@@ -46,7 +46,7 @@ module Metanorma
|
|
46
46
|
xmldoc.at("//metanorma-extension/semantic-metadata/" \
|
47
47
|
"headless[text() = 'true']") and return nil
|
48
48
|
x = xmldoc.dup
|
49
|
-
x.root.add_namespace(nil,
|
49
|
+
x.root.add_namespace(nil, xml_namespace)
|
50
50
|
xml = Nokogiri::XML(x.to_xml)
|
51
51
|
@isodoc ||= isodoc(@lang, @script, @locale)
|
52
52
|
@isodoc.info(xml, nil)
|
@@ -56,7 +56,7 @@ module Metanorma
|
|
56
56
|
elsif depth < entry[:depth]
|
57
57
|
ret += "<li><ul>" * (entry[:depth] - depth)
|
58
58
|
end
|
59
|
-
ret + "<li><xref target='#{entry[:target]}'>#{entry[:text]}</xref></li>"
|
59
|
+
ret + "<li><xref target='#{entry[:target]}'><display-text>#{entry[:text]}</display-text></xref></li>"
|
60
60
|
end
|
61
61
|
|
62
62
|
def toc_cleanup_clause(xmldoc)
|
@@ -70,10 +70,10 @@ module Metanorma
|
|
70
70
|
end
|
71
71
|
|
72
72
|
def toc_cleanup_clause_entry(xmldoc, list)
|
73
|
-
list.xpath(".//xref[not(text())]").each do |x|
|
73
|
+
list.xpath(".//xref[not(text())][not(display-text)]").each do |x|
|
74
74
|
c1 = xmldoc.at("//*[@id = '#{x['target']}']")
|
75
75
|
t = c1.at("./variant-title[@type = 'toc']") || c1.at("./title")
|
76
|
-
x << t.dup.children
|
76
|
+
x << "<display-text>#{to_xml(t.dup.children)}</display-text>"
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -35,11 +35,12 @@ module Metanorma
|
|
35
35
|
def extract_localities(elem)
|
36
36
|
elem.children.empty? and return
|
37
37
|
f = elem.children.first
|
38
|
-
f.text? or return
|
38
|
+
f.text? or return xref_display_text(elem, elem.children.remove)
|
39
39
|
head = f.remove.text
|
40
40
|
tail = elem.children.remove
|
41
|
-
extract_localities1(elem, head)
|
42
|
-
tail and
|
41
|
+
d = extract_localities1(elem, head)
|
42
|
+
tail and d << tail
|
43
|
+
d.children.empty? and d.remove
|
43
44
|
end
|
44
45
|
|
45
46
|
LOCALITY_REGEX_STR_TRIPLEDASH = <<~REGEXP.freeze
|
@@ -69,7 +70,13 @@ module Metanorma
|
|
69
70
|
b = elem.add_child("<localityStack/>").first if m[:punct] == ";"
|
70
71
|
end
|
71
72
|
fill_in_eref_connectives(elem)
|
72
|
-
elem
|
73
|
+
xref_display_text(elem, text)
|
74
|
+
end
|
75
|
+
|
76
|
+
def xref_display_text(elem, text)
|
77
|
+
d = elem.add_child("<display-text></display-text>").first
|
78
|
+
d.add_child(text) if text
|
79
|
+
d
|
73
80
|
end
|
74
81
|
|
75
82
|
# clause=3;and!5 => clause=3;and!clause=5
|
@@ -135,6 +142,9 @@ module Metanorma
|
|
135
142
|
end
|
136
143
|
|
137
144
|
def eref_stack(xmldoc)
|
145
|
+
xmldoc.xpath("//eref/display-text[eref]").each do |e|
|
146
|
+
e.replace(e.children)
|
147
|
+
end
|
138
148
|
xmldoc.xpath("//eref[eref]").each do |e|
|
139
149
|
e.name = "erefstack"
|
140
150
|
e.delete("bibitemid")
|
@@ -196,6 +206,11 @@ module Metanorma
|
|
196
206
|
xmldoc.xpath("//xref//xref").each do |x|
|
197
207
|
x.name = "location"
|
198
208
|
end
|
209
|
+
xmldoc.xpath("//xref[not(./display-text)]").each do |x|
|
210
|
+
c = x.xpath("./*[not(self::locality or self::localityStack or self::location)] | ./text()")
|
211
|
+
c.empty? and next
|
212
|
+
xref_display_text(x, c.remove)
|
213
|
+
end
|
199
214
|
end
|
200
215
|
|
201
216
|
def xref_cleanup1(xmldoc)
|
@@ -23,10 +23,8 @@ module Metanorma
|
|
23
23
|
Asciidoctor::Extensions.register do
|
24
24
|
preprocessor Metanorma::Standoc::ResolveIncludePreprocessor
|
25
25
|
preprocessor Metanorma::Plugin::Lutaml::LutamlPreprocessor
|
26
|
-
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlAttributesTablePreprocessor
|
27
26
|
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlDatamodelDescriptionPreprocessor
|
28
27
|
preprocessor Metanorma::Plugin::Lutaml::LutamlEaXmiPreprocessor
|
29
|
-
preprocessor Metanorma::Plugin::Lutaml::LutamlUmlClassPreprocessor
|
30
28
|
inline_macro Metanorma::Plugin::Lutaml::LutamlFigureInlineMacro
|
31
29
|
inline_macro Metanorma::Plugin::Lutaml::LutamlTableInlineMacro
|
32
30
|
block_macro Metanorma::Plugin::Lutaml::LutamlDiagramBlockMacro
|
@@ -1,6 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<grammar ns="https://www.metanorma.org/ns/standoc" xmlns="http://relaxng.org/ns/structure/1.0">
|
3
|
-
<!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
|
4
3
|
<include href="biblio-standoc.rng"/>
|
5
4
|
<include href="isodoc.rng"/>
|
6
5
|
</grammar>
|
@@ -17,7 +17,7 @@
|
|
17
17
|
these elements; we just want one namespace for any child grammars
|
18
18
|
of this.
|
19
19
|
-->
|
20
|
-
<!-- VERSION
|
20
|
+
<!-- VERSION v2.0.0 -->
|
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">
|
@@ -459,11 +459,14 @@ gives an explicit page orientation</a:documentation>
|
|
459
459
|
<a:documentation>Description of location in a reference, which can be combined with other locations in a single citation</a:documentation>
|
460
460
|
</ref>
|
461
461
|
</zeroOrMore>
|
462
|
-
<
|
463
|
-
<
|
462
|
+
<optional>
|
463
|
+
<element name="display-text">
|
464
464
|
<a:documentation>The textual content of the element. The `text` is what we wish to show the link as (e.g., the "content" of `<xx>my link text</xx>`)</a:documentation>
|
465
|
-
|
466
|
-
|
465
|
+
<oneOrMore>
|
466
|
+
<ref name="PureTextElement"/>
|
467
|
+
</oneOrMore>
|
468
|
+
</element>
|
469
|
+
</optional>
|
467
470
|
</define>
|
468
471
|
</include>
|
469
472
|
<!-- end overrides -->
|
@@ -1205,10 +1208,13 @@ numbers</a:documentation>
|
|
1205
1208
|
<value>presentation</value>
|
1206
1209
|
</choice>
|
1207
1210
|
</attribute>
|
1211
|
+
<attribute name="flavor">
|
1212
|
+
<a:documentation>Metanorma flavor, indicating SDO whose requiremnts the realisation aligns to</a:documentation>
|
1213
|
+
</attribute>
|
1208
1214
|
</define>
|
1209
1215
|
<define name="standard-document">
|
1210
1216
|
<a:documentation>Representation of a standardisation document</a:documentation>
|
1211
|
-
<element name="
|
1217
|
+
<element name="metanorma">
|
1212
1218
|
<ref name="Root-Attributes"/>
|
1213
1219
|
<ref name="bibdata">
|
1214
1220
|
<a:documentation>Bibliographic description of the document itself, expressed in the Relaton model</a:documentation>
|
data/metanorma-standoc.gemspec
CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.add_dependency "asciidoctor", "~> 2.0.0"
|
33
33
|
spec.add_dependency "crass", "~> 1.0.0"
|
34
34
|
spec.add_dependency "iev", "~> 0.3.5"
|
35
|
-
spec.add_dependency "isodoc", "~>
|
35
|
+
spec.add_dependency "isodoc", "~> 3.0.0"
|
36
36
|
spec.add_dependency "metanorma", ">= 1.6.0"
|
37
37
|
spec.add_dependency "metanorma-plugin-datastruct", "~> 0.3.0"
|
38
38
|
spec.add_dependency "metanorma-plugin-glossarist", "~> 0.2.0"
|
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:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
75
|
+
version: 3.0.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
82
|
+
version: 3.0.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: metanorma
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|