metanorma-gb 1.4.3 → 1.5.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 +4 -4
- data/lib/asciidoctor/gb/cleanup.rb +130 -0
- data/lib/asciidoctor/gb/converter.rb +15 -126
- data/lib/asciidoctor/gb/front_id.rb +2 -2
- data/lib/asciidoctor/gb/isodoc.rng +12 -6
- data/lib/asciidoctor/gb/section_input.rb +11 -0
- data/lib/asciidoctor/gb/validate.rb +0 -1
- data/lib/isodoc/gb/base_convert.rb +24 -76
- data/lib/isodoc/gb/cleanup.rb +0 -11
- data/lib/isodoc/gb/html_convert.rb +6 -13
- data/lib/isodoc/gb/i18n.rb +16 -0
- data/lib/isodoc/gb/init.rb +29 -0
- data/lib/isodoc/gb/metadata.rb +1 -1
- data/lib/isodoc/gb/presentation_xml_convert.rb +17 -1
- data/lib/isodoc/gb/word_convert.rb +5 -10
- data/lib/isodoc/gb/xref.rb +6 -0
- data/lib/metanorma/gb/version.rb +1 -1
- data/metanorma-gb.gemspec +2 -2
- metadata +10 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fe9a20b1e4d09c3ed8151c2021f51c1b8e412f823f0363db5bf0b9e4eb182908
|
|
4
|
+
data.tar.gz: 6601454ed383cbb484434deebc8195d280a50f36282e0d84a096c1406751e322
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fd3154c799e5794a5b9a7a13b8cfe3eb2d70a0a1b1bb36ea6e1d85a9b14d8a5658726320734105f5abfcf1f0c8990ce2e9ce681cbc8d600d0702430f8416f048
|
|
7
|
+
data.tar.gz: 8f90f5d26fe2601454ad8f6a27d6103d494443ce9948a25d2b2d697b9eb562018802cb08e529855916f2d8e7b4c0296e1e7001af8201374eda350ee4bf2fece0
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
module Asciidoctor
|
|
2
|
+
module Gb
|
|
3
|
+
class Converter < ISO::Converter
|
|
4
|
+
def termdef_cleanup(xmldoc)
|
|
5
|
+
super
|
|
6
|
+
# TODO this should become variant tag
|
|
7
|
+
localisedstr(xmldoc)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
ROMAN_TEXT = /\s*[a-z\u00c0-\u00d6\u00d8-\u00f0\u0100-\u0240]/i
|
|
11
|
+
HAN_TEXT = /\s*[\u4e00-\u9fff]+/
|
|
12
|
+
|
|
13
|
+
LOCALISED_ELEMS = "//admitted | //deprecates | //preferred | //prefix | "\
|
|
14
|
+
"//initial | //addition | //surname | //forename | //name | "\
|
|
15
|
+
"//abbreviation | //role/description | //affiliation/description | "\
|
|
16
|
+
"//bibdata/item | //bibitem/title | //bibdata/formattedref | "\
|
|
17
|
+
"//bibitem/formattedref | //bibdata/note | //bibitem/note | "\
|
|
18
|
+
"//bibdata/abstract | //bibitem/note ".freeze
|
|
19
|
+
|
|
20
|
+
MUST_LOCALISE_ELEMS = %w{admitted deprecates preferred}.freeze
|
|
21
|
+
|
|
22
|
+
def localisedstr(xmldoc)
|
|
23
|
+
xmldoc.xpath(LOCALISED_ELEMS).each do |zh|
|
|
24
|
+
if zh.at("./string")
|
|
25
|
+
extract_localisedstrings(zh)
|
|
26
|
+
elsif MUST_LOCALISE_ELEMS.include? zh.name
|
|
27
|
+
duplicate_localisedstrings(zh)
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
# element consists solely of localised strings, with no attributes
|
|
33
|
+
def extract_localisedstrings(elem)
|
|
34
|
+
elem.xpath("./string").each do |s|
|
|
35
|
+
s.name = elem.name
|
|
36
|
+
end
|
|
37
|
+
elem.replace(elem.children)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def text_clean(text)
|
|
41
|
+
text.gsub(/^\s*/, "").gsub(/</, "<").gsub(/>/, ">")
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def duplicate_localisedstrings(zh)
|
|
45
|
+
en = zh.dup.remove
|
|
46
|
+
zh.after(en).after(" ")
|
|
47
|
+
zh["language"] = "zh"
|
|
48
|
+
en["language"] = "en"
|
|
49
|
+
en.traverse do |c|
|
|
50
|
+
c.text? && c.content = text_clean(c.text.gsub(HAN_TEXT, ""))
|
|
51
|
+
end
|
|
52
|
+
zh.traverse do |c|
|
|
53
|
+
c.text? && c.content = text_clean(c.text.gsub(ROMAN_TEXT, ""))
|
|
54
|
+
end
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def termdef_boilerplate_cleanup(xmldoc)
|
|
58
|
+
return if @keepboilerplate
|
|
59
|
+
super
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def cleanup(xmldoc)
|
|
63
|
+
lang = xmldoc.at("//language")&.text
|
|
64
|
+
@agencyclass = GbAgencies::Agencies.new(lang, {}, "")
|
|
65
|
+
super
|
|
66
|
+
contributor_cleanup(xmldoc)
|
|
67
|
+
xmldoc
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def docidentifier_cleanup(xmldoc)
|
|
71
|
+
id = xmldoc.at("//bibdata/docidentifier[@type = 'gb']") or return
|
|
72
|
+
scope = xmldoc.at("//gbscope")&.text
|
|
73
|
+
prefix = xmldoc.at("//gbprefix")&.text
|
|
74
|
+
mand = xmldoc.at("//gbmandate")&.text || "mandatory"
|
|
75
|
+
idtext = @agencyclass.docidentifier(scope, prefix, mand, nil, id.text)
|
|
76
|
+
id.content = idtext&.gsub(/\ /, " ")
|
|
77
|
+
id = xmldoc.at("//bibdata/ext/structuredidentifier/"\
|
|
78
|
+
"project-number") or return
|
|
79
|
+
idtext = @agencyclass.docidentifier(scope, prefix, mand, nil, id.text)
|
|
80
|
+
id.content = idtext&.gsub(/\ /, " ")
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
def committee_cleanup(xmldoc)
|
|
84
|
+
xmldoc.xpath("//gbcommittee").each do |c|
|
|
85
|
+
xmldoc.at("//bibdata/contributor").next =
|
|
86
|
+
"<contributor><role type='technical-committee'/><organization>"\
|
|
87
|
+
"<name>#{c.text}</name></organization></contributor>"
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
def agency_value(issuer, scope, prefix, mandate)
|
|
92
|
+
agency = issuer.content
|
|
93
|
+
agency == "GB" and
|
|
94
|
+
agency = @agencyclass.standard_agency1(scope, prefix, mandate)
|
|
95
|
+
agency = "GB" if agency.nil? || agency.empty?
|
|
96
|
+
agency
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
def contributor_cleanup(xmldoc)
|
|
100
|
+
issuer = xmldoc.at("//bibdata/contributor[role/@type = 'issuer']/"\
|
|
101
|
+
"organization/name")
|
|
102
|
+
scope = xmldoc.at("//gbscope")&.text
|
|
103
|
+
prefix = xmldoc.at("//gbprefix")&.text
|
|
104
|
+
mandate = xmldoc.at("//gbmandate")&.text || "mandatory"
|
|
105
|
+
agency = agency_value(issuer, scope, prefix, mandate)
|
|
106
|
+
owner = xmldoc.at("//copyright/owner/organization/name")
|
|
107
|
+
owner.content = agency
|
|
108
|
+
issuer.content = agency
|
|
109
|
+
committee_cleanup(xmldoc)
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def omit_docid_prefix(prefix)
|
|
113
|
+
IsoDoc::Gb::HtmlConvert.new({}).omit_docid_prefix(prefix)
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def boilerplate_cleanup(xmldoc)
|
|
117
|
+
isodoc = boilerplate_isodoc(xmldoc)
|
|
118
|
+
initial_boilerplate(xmldoc, isodoc)
|
|
119
|
+
return if @keepboilerplate
|
|
120
|
+
xmldoc.xpath(self.class::TERM_CLAUSE).each do |f|
|
|
121
|
+
term_defs_boilerplate(f.at("./title"),
|
|
122
|
+
xmldoc.xpath(".//termdocsource"),
|
|
123
|
+
f.at(".//term"), f.at(".//p"), isodoc)
|
|
124
|
+
end
|
|
125
|
+
f = xmldoc.at(self.class::NORM_REF) and
|
|
126
|
+
norm_ref_preface(f)
|
|
127
|
+
end
|
|
128
|
+
end
|
|
129
|
+
end
|
|
130
|
+
end
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
require "asciidoctor"
|
|
2
2
|
require "asciidoctor/iso/converter"
|
|
3
|
-
require "metanorma/gb/version"
|
|
4
3
|
require "isodoc/gb/common"
|
|
5
4
|
require "isodoc/gb/word_convert"
|
|
6
5
|
require "isodoc/gb/pdf_convert"
|
|
@@ -9,6 +8,7 @@ require "gb_agencies"
|
|
|
9
8
|
require_relative "./section_input.rb"
|
|
10
9
|
require_relative "./front.rb"
|
|
11
10
|
require_relative "./validate.rb"
|
|
11
|
+
require_relative "cleanup.rb"
|
|
12
12
|
require "fileutils"
|
|
13
13
|
|
|
14
14
|
module Asciidoctor
|
|
@@ -74,62 +74,15 @@ module Asciidoctor
|
|
|
74
74
|
def outputs(node, ret)
|
|
75
75
|
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
|
76
76
|
presentation_xml_converter(node).convert(@filename + ".xml")
|
|
77
|
-
html_compliant_converter(node).
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
ROMAN_TEXT = /\s*[a-z\u00c0-\u00d6\u00d8-\u00f0\u0100-\u0240]/i
|
|
89
|
-
HAN_TEXT = /\s*[\u4e00-\u9fff]+/
|
|
90
|
-
|
|
91
|
-
LOCALISED_ELEMS = "//admitted | //deprecates | //preferred | //prefix | "\
|
|
92
|
-
"//initial | //addition | //surname | //forename | //name | "\
|
|
93
|
-
"//abbreviation | //role/description | //affiliation/description | "\
|
|
94
|
-
"//bibdata/item | //bibitem/title | //bibdata/formattedref | "\
|
|
95
|
-
"//bibitem/formattedref | //bibdata/note | //bibitem/note | "\
|
|
96
|
-
"//bibdata/abstract | //bibitem/note ".freeze
|
|
97
|
-
|
|
98
|
-
MUST_LOCALISE_ELEMS = %w{admitted deprecates preferred}.freeze
|
|
99
|
-
|
|
100
|
-
def localisedstr(xmldoc)
|
|
101
|
-
xmldoc.xpath(LOCALISED_ELEMS).each do |zh|
|
|
102
|
-
if zh.at("./string")
|
|
103
|
-
extract_localisedstrings(zh)
|
|
104
|
-
elsif MUST_LOCALISE_ELEMS.include? zh.name
|
|
105
|
-
duplicate_localisedstrings(zh)
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# element consists solely of localised strings, with no attributes
|
|
111
|
-
def extract_localisedstrings(elem)
|
|
112
|
-
elem.xpath("./string").each do |s|
|
|
113
|
-
s.name = elem.name
|
|
114
|
-
end
|
|
115
|
-
elem.replace(elem.children)
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def text_clean(text)
|
|
119
|
-
text.gsub(/^\s*/, "").gsub(/</, "<").gsub(/>/, ">")
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
def duplicate_localisedstrings(zh)
|
|
123
|
-
en = zh.dup.remove
|
|
124
|
-
zh.after(en).after(" ")
|
|
125
|
-
zh["language"] = "zh"
|
|
126
|
-
en["language"] = "en"
|
|
127
|
-
en.traverse do |c|
|
|
128
|
-
c.text? && c.content = text_clean(c.text.gsub(HAN_TEXT, ""))
|
|
129
|
-
end
|
|
130
|
-
zh.traverse do |c|
|
|
131
|
-
c.text? && c.content = text_clean(c.text.gsub(ROMAN_TEXT, ""))
|
|
132
|
-
end
|
|
77
|
+
html_compliant_converter(node).
|
|
78
|
+
convert(@filename + ".presentation.xml",
|
|
79
|
+
nil, false, "#{@filename}_compliant.html")
|
|
80
|
+
html_converter(node).convert(@filename + ".presentation.xml",
|
|
81
|
+
nil, false, "#{@filename}.html")
|
|
82
|
+
doc_converter(node).convert(@filename + ".presentation.xml",
|
|
83
|
+
nil, false, "#{@filename}.doc")
|
|
84
|
+
pdf_converter(node)&.convert(@filename + ".presentation.xml",
|
|
85
|
+
nil, false, "#{@filename}.pdf")
|
|
133
86
|
end
|
|
134
87
|
|
|
135
88
|
def inline_quoted(node)
|
|
@@ -149,11 +102,6 @@ module Asciidoctor
|
|
|
149
102
|
super
|
|
150
103
|
end
|
|
151
104
|
|
|
152
|
-
def termdef_boilerplate_cleanup(xmldoc)
|
|
153
|
-
return if @keepboilerplate
|
|
154
|
-
super
|
|
155
|
-
end
|
|
156
|
-
|
|
157
105
|
GBCODE = "((AQ|BB|CB|CH|CJ|CY|DA|DB|DL|DZ|EJ|FZ|GA|GH|GM|GY|HB|HG|"\
|
|
158
106
|
"HJ|HS|HY|JB|JC|JG|JR|JT|JY|LB|LD|LS|LY|MH|MT|MZ|NY|QB|QC|QJ|"\
|
|
159
107
|
"QZ|SB|SC|SH|SJ|SN|SY|TB|TD|TJ|TY|WB|WH|WJ|WM|WS|WW|XB|YB|YC|"\
|
|
@@ -186,71 +134,12 @@ module Asciidoctor
|
|
|
186
134
|
super
|
|
187
135
|
end
|
|
188
136
|
|
|
189
|
-
def
|
|
190
|
-
|
|
191
|
-
|
|
137
|
+
def init(node)
|
|
138
|
+
node.attr("language") or node.set_attr("language", "zh")
|
|
139
|
+
node.attr("script") or
|
|
140
|
+
node.set_attr("script", node.attr("language") == "zh" ?
|
|
141
|
+
"Hans" : "Latn")
|
|
192
142
|
super
|
|
193
|
-
contributor_cleanup(xmldoc)
|
|
194
|
-
xmldoc
|
|
195
|
-
end
|
|
196
|
-
|
|
197
|
-
def docidentifier_cleanup(xmldoc)
|
|
198
|
-
id = xmldoc.at("//bibdata/docidentifier[@type = 'gb']") or return
|
|
199
|
-
scope = xmldoc.at("//gbscope")&.text
|
|
200
|
-
prefix = xmldoc.at("//gbprefix")&.text
|
|
201
|
-
mand = xmldoc.at("//gbmandate")&.text || "mandatory"
|
|
202
|
-
idtext = @agencyclass.docidentifier(scope, prefix, mand, nil, id.text)
|
|
203
|
-
id.content = idtext&.gsub(/\ /, " ")
|
|
204
|
-
id = xmldoc.at("//bibdata/ext/structuredidentifier/"\
|
|
205
|
-
"project-number") or return
|
|
206
|
-
idtext = @agencyclass.docidentifier(scope, prefix, mand, nil, id.text)
|
|
207
|
-
id.content = idtext&.gsub(/\ /, " ")
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
def committee_cleanup(xmldoc)
|
|
211
|
-
xmldoc.xpath("//gbcommittee").each do |c|
|
|
212
|
-
xmldoc.at("//bibdata/contributor").next =
|
|
213
|
-
"<contributor><role type='technical-committee'/><organization>"\
|
|
214
|
-
"<name>#{c.text}</name></organization></contributor>"
|
|
215
|
-
end
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
def agency_value(issuer, scope, prefix, mandate)
|
|
219
|
-
agency = issuer.content
|
|
220
|
-
agency == "GB" and
|
|
221
|
-
agency = @agencyclass.standard_agency1(scope, prefix, mandate)
|
|
222
|
-
agency = "GB" if agency.nil? || agency.empty?
|
|
223
|
-
agency
|
|
224
|
-
end
|
|
225
|
-
|
|
226
|
-
def contributor_cleanup(xmldoc)
|
|
227
|
-
issuer = xmldoc.at("//bibdata/contributor[role/@type = 'issuer']/"\
|
|
228
|
-
"organization/name")
|
|
229
|
-
scope = xmldoc.at("//gbscope")&.text
|
|
230
|
-
prefix = xmldoc.at("//gbprefix")&.text
|
|
231
|
-
mandate = xmldoc.at("//gbmandate")&.text || "mandatory"
|
|
232
|
-
agency = agency_value(issuer, scope, prefix, mandate)
|
|
233
|
-
owner = xmldoc.at("//copyright/owner/organization/name")
|
|
234
|
-
owner.content = agency
|
|
235
|
-
issuer.content = agency
|
|
236
|
-
committee_cleanup(xmldoc)
|
|
237
|
-
end
|
|
238
|
-
|
|
239
|
-
def omit_docid_prefix(prefix)
|
|
240
|
-
IsoDoc::Gb::HtmlConvert.new({}).omit_docid_prefix(prefix)
|
|
241
|
-
end
|
|
242
|
-
|
|
243
|
-
def boilerplate_cleanup(xmldoc)
|
|
244
|
-
isodoc = boilerplate_isodoc(xmldoc)
|
|
245
|
-
initial_boilerplate(xmldoc, isodoc)
|
|
246
|
-
return if @keepboilerplate
|
|
247
|
-
xmldoc.xpath(self.class::TERM_CLAUSE).each do |f|
|
|
248
|
-
term_defs_boilerplate(f.at("./title"),
|
|
249
|
-
xmldoc.xpath(".//termdocsource"),
|
|
250
|
-
f.at(".//term"), f.at(".//p"), isodoc)
|
|
251
|
-
end
|
|
252
|
-
f = xmldoc.at(self.class::NORM_REF) and
|
|
253
|
-
norm_ref_preface(f)
|
|
254
143
|
end
|
|
255
144
|
end
|
|
256
145
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Asciidoctor
|
|
2
2
|
module Gb
|
|
3
3
|
class Converter < ISO::Converter
|
|
4
|
-
|
|
4
|
+
STAGE_ABBRS_CN = {
|
|
5
5
|
"00": "新工作项目建议",
|
|
6
6
|
"10": "新工作项目",
|
|
7
7
|
"20": "标准草案工作组讨论稿",
|
|
@@ -43,7 +43,7 @@ module Asciidoctor
|
|
|
43
43
|
|
|
44
44
|
def id_stage_prefix(dn, node)
|
|
45
45
|
if node.attr("docstage") && node.attr("docstage").to_i < 60
|
|
46
|
-
abbr = IsoDoc::Gb::Metadata.new("en", "Latn",
|
|
46
|
+
abbr = IsoDoc::Gb::Metadata.new("en", "Latn", @i18n).
|
|
47
47
|
status_abbrev(node.attr("docstage"), nil, node.attr("iteration"),
|
|
48
48
|
node.attr("draft"), node.attr("doctype"))
|
|
49
49
|
dn = "/#{abbr} #{dn}" # prefixes added in cleanup
|
|
@@ -922,6 +922,9 @@
|
|
|
922
922
|
<optional>
|
|
923
923
|
<attribute name="script"/>
|
|
924
924
|
</optional>
|
|
925
|
+
<optional>
|
|
926
|
+
<attribute name="type"/>
|
|
927
|
+
</optional>
|
|
925
928
|
<optional>
|
|
926
929
|
<attribute name="obligation">
|
|
927
930
|
<choice>
|
|
@@ -961,9 +964,6 @@
|
|
|
961
964
|
</define>
|
|
962
965
|
<define name="content-subsection">
|
|
963
966
|
<element name="clause">
|
|
964
|
-
<optional>
|
|
965
|
-
<attribute name="type"/>
|
|
966
|
-
</optional>
|
|
967
967
|
<ref name="Content-Section"/>
|
|
968
968
|
</element>
|
|
969
969
|
</define>
|
|
@@ -992,6 +992,9 @@
|
|
|
992
992
|
</choice>
|
|
993
993
|
</attribute>
|
|
994
994
|
</optional>
|
|
995
|
+
<optional>
|
|
996
|
+
<attribute name="type"/>
|
|
997
|
+
</optional>
|
|
995
998
|
<optional>
|
|
996
999
|
<ref name="section-title"/>
|
|
997
1000
|
</optional>
|
|
@@ -1011,9 +1014,6 @@
|
|
|
1011
1014
|
</define>
|
|
1012
1015
|
<define name="clause">
|
|
1013
1016
|
<element name="clause">
|
|
1014
|
-
<optional>
|
|
1015
|
-
<attribute name="type"/>
|
|
1016
|
-
</optional>
|
|
1017
1017
|
<ref name="Clause-Section"/>
|
|
1018
1018
|
</element>
|
|
1019
1019
|
</define>
|
|
@@ -1042,6 +1042,9 @@
|
|
|
1042
1042
|
</choice>
|
|
1043
1043
|
</attribute>
|
|
1044
1044
|
</optional>
|
|
1045
|
+
<optional>
|
|
1046
|
+
<attribute name="type"/>
|
|
1047
|
+
</optional>
|
|
1045
1048
|
<optional>
|
|
1046
1049
|
<ref name="section-title"/>
|
|
1047
1050
|
</optional>
|
|
@@ -1180,6 +1183,9 @@
|
|
|
1180
1183
|
<optional>
|
|
1181
1184
|
<attribute name="script"/>
|
|
1182
1185
|
</optional>
|
|
1186
|
+
<optional>
|
|
1187
|
+
<attribute name="type"/>
|
|
1188
|
+
</optional>
|
|
1183
1189
|
<optional>
|
|
1184
1190
|
<attribute name="obligation">
|
|
1185
1191
|
<choice>
|
|
@@ -8,6 +8,8 @@ module Asciidoctor
|
|
|
8
8
|
class Converter < ISO::Converter
|
|
9
9
|
def sectiontype_streamline(ret)
|
|
10
10
|
case ret
|
|
11
|
+
when "前言" then "foreword"
|
|
12
|
+
when "致謝" then "acknowledgements"
|
|
11
13
|
when "引言" then "introduction"
|
|
12
14
|
when "范围" then "scope"
|
|
13
15
|
when "规范性引用文件" then "normative references"
|
|
@@ -21,6 +23,15 @@ module Asciidoctor
|
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
|
|
26
|
+
def symbols_attrs(node, a)
|
|
27
|
+
case sectiontype1(node)
|
|
28
|
+
when "符号" then a.merge(type: "symbols")
|
|
29
|
+
when "代号和缩略语" then a.merge(type: "abbreviated_terms")
|
|
30
|
+
else
|
|
31
|
+
super
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
24
35
|
def appendix_parse(attrs, xml, node)
|
|
25
36
|
# UNSAFE, there is no unset_option() in asciidoctor
|
|
26
37
|
node.remove_attr("appendix-option")
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
require_relative "common"
|
|
2
2
|
require "gb_agencies"
|
|
3
3
|
require_relative "cleanup"
|
|
4
|
-
require_relative "metadata"
|
|
5
4
|
require "fileutils"
|
|
6
5
|
|
|
7
6
|
module IsoDoc
|
|
@@ -16,18 +15,9 @@ module IsoDoc
|
|
|
16
15
|
"$titlefont: #{t};\n"
|
|
17
16
|
end
|
|
18
17
|
|
|
19
|
-
def metadata_init(lang, script, labels)
|
|
20
|
-
unless ["en", "zh"].include? lang
|
|
21
|
-
lang = "zh"
|
|
22
|
-
script = "Hans"
|
|
23
|
-
end
|
|
24
|
-
@meta = Metadata.new(lang, script, labels)
|
|
25
|
-
@meta.set(:standardclassimg, @standardclassimg)
|
|
26
|
-
@common.meta = @meta
|
|
27
|
-
end
|
|
28
|
-
|
|
29
18
|
def cleanup(docxml)
|
|
30
|
-
@
|
|
19
|
+
@i18n ||= i18n_init(@lang, @script)
|
|
20
|
+
@cleanup = Cleanup.new(@script, @i18n.deprecated)
|
|
31
21
|
super
|
|
32
22
|
@cleanup.cleanup(docxml)
|
|
33
23
|
docxml
|
|
@@ -38,43 +28,26 @@ module IsoDoc
|
|
|
38
28
|
@cleanup.example_cleanup(docxml)
|
|
39
29
|
end
|
|
40
30
|
|
|
41
|
-
def i18n_init(lang, script)
|
|
42
|
-
super
|
|
43
|
-
y = if lang == "en"
|
|
44
|
-
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
|
|
45
|
-
elsif lang == "zh" && script == "Hans"
|
|
46
|
-
YAML.load_file(File.join(File.dirname(__FILE__),
|
|
47
|
-
"i18n-zh-Hans.yaml"))
|
|
48
|
-
else
|
|
49
|
-
YAML.load_file(File.join(File.dirname(__FILE__),
|
|
50
|
-
"i18n-zh-Hans.yaml"))
|
|
51
|
-
end
|
|
52
|
-
@labels = @labels.merge(y)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
31
|
def omit_docid_prefix(prefix)
|
|
56
32
|
super || prefix == "Chinese Standard"
|
|
57
33
|
end
|
|
58
34
|
|
|
59
|
-
def
|
|
60
|
-
|
|
61
|
-
div1.div **attr_code(class: "formula") do |div|
|
|
35
|
+
def formula_parse1(node, out)
|
|
36
|
+
out.div **attr_code(class: "formula") do |div|
|
|
62
37
|
insert_tab(div, 1)
|
|
63
38
|
parse(node.at(ns("./stem")), div)
|
|
64
|
-
lbl =
|
|
39
|
+
lbl = node&.at(ns("./name"))&.text
|
|
65
40
|
unless lbl.nil?
|
|
66
41
|
insert_tab(div, 1)
|
|
67
42
|
div << "(#{lbl})"
|
|
68
43
|
end
|
|
69
44
|
end
|
|
70
|
-
formula_where(node.at(ns("./dl")), div1)
|
|
71
|
-
end
|
|
72
45
|
end
|
|
73
46
|
|
|
74
47
|
def formula_where(dl, out)
|
|
75
48
|
return unless dl
|
|
76
49
|
out.p **{ style: "page-break-after:avoid;"} do |p|
|
|
77
|
-
p << @
|
|
50
|
+
p << @i18n.where
|
|
78
51
|
end
|
|
79
52
|
formula_dl_parse(dl, out)
|
|
80
53
|
end
|
|
@@ -99,32 +72,37 @@ module IsoDoc
|
|
|
99
72
|
{ class: "example_label",
|
|
100
73
|
style: "padding:2pt 2pt 2pt 2pt;vertical-align:top;" }.freeze
|
|
101
74
|
|
|
102
|
-
def
|
|
103
|
-
l10n(
|
|
75
|
+
def note_delim
|
|
76
|
+
l10n(": ")
|
|
104
77
|
end
|
|
105
78
|
|
|
106
79
|
def note_parse(node, out)
|
|
107
|
-
note_parse_table(node, out
|
|
80
|
+
note_parse_table(node, out)
|
|
108
81
|
end
|
|
109
82
|
|
|
110
|
-
def note_parse_table(node, out
|
|
83
|
+
def note_parse_table(node, out)
|
|
111
84
|
@note = true
|
|
85
|
+
name = node&.at(ns("./name"))&.remove
|
|
86
|
+
note_parse_table1(node, out, name)
|
|
87
|
+
@note = false
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def note_parse_table1(node, out, name)
|
|
112
91
|
out.table **note_attrs(node) do |t|
|
|
113
92
|
t.tr do |tr|
|
|
114
|
-
@libdir = File.dirname(__FILE__)
|
|
115
93
|
tr.td **EXAMPLE_TBL_ATTR do |td|
|
|
116
|
-
|
|
94
|
+
name and name.children.each { |n| parse(n, td) }
|
|
95
|
+
td << note_delim
|
|
117
96
|
end
|
|
118
97
|
tr.td **{ style: "vertical-align:top;", class: "Note" } do |td|
|
|
119
98
|
node.children.each { |n| parse(n, td) }
|
|
120
99
|
end
|
|
121
100
|
end
|
|
122
101
|
end
|
|
123
|
-
@note = false
|
|
124
102
|
end
|
|
125
103
|
|
|
126
104
|
def termnote_parse(node, out)
|
|
127
|
-
note_parse_table(node, out
|
|
105
|
+
note_parse_table(node, out)
|
|
128
106
|
end
|
|
129
107
|
|
|
130
108
|
def middle(isoxml, out)
|
|
@@ -157,19 +135,19 @@ module IsoDoc
|
|
|
157
135
|
|
|
158
136
|
def deprecated_term_parse(node, out)
|
|
159
137
|
out.p **{ class: "DeprecatedTerms" } do |p|
|
|
160
|
-
p << l10n("#{@
|
|
138
|
+
p << l10n("#{@i18n.deprecated}: ")
|
|
161
139
|
node.children.each { |c| parse(c, p) }
|
|
162
140
|
end
|
|
163
141
|
end
|
|
164
142
|
|
|
165
143
|
def termref_render(x)
|
|
166
|
-
x.sub!(%r{\s*\[MODIFICATION\]\s*$}m, l10n(", #{@
|
|
144
|
+
x.sub!(%r{\s*\[MODIFICATION\]\s*$}m, l10n(", #{@i18n.modified}"))
|
|
167
145
|
parts = x.split(%r{(\s*\[MODIFICATION\]|,)}m)
|
|
168
|
-
parts[1] = l10n(", #{@
|
|
169
|
-
parts[1] == "," && !/^\s*#{@
|
|
146
|
+
parts[1] = l10n(", #{@i18n.source}") if parts.size > 1 &&
|
|
147
|
+
parts[1] == "," && !/^\s*#{@i18n.modified}/.match(parts[2])
|
|
170
148
|
parts.map do |p|
|
|
171
149
|
/\s*\[MODIFICATION\]/.match(p) ?
|
|
172
|
-
l10n(", #{@
|
|
150
|
+
l10n(", #{@i18n.modified} — ") : p
|
|
173
151
|
end.join.sub(/\A\s*/m, l10n("[")).sub(/\s*\z/m, l10n("]"))
|
|
174
152
|
end
|
|
175
153
|
|
|
@@ -181,42 +159,12 @@ module IsoDoc
|
|
|
181
159
|
end.join
|
|
182
160
|
end
|
|
183
161
|
|
|
184
|
-
def foreword(isoxml, out)
|
|
185
|
-
f = isoxml.at(ns("//foreword")) || return
|
|
186
|
-
page_break(out)
|
|
187
|
-
out.div do |s|
|
|
188
|
-
s.h1 **{ class: "ForewordTitle" } do |h1|
|
|
189
|
-
h1 << "#{@foreword_lbl} "
|
|
190
|
-
# insert_tab(h1, 1)
|
|
191
|
-
end
|
|
192
|
-
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
|
193
|
-
end
|
|
194
|
-
end
|
|
195
|
-
|
|
196
162
|
def clausedelimspace(out)
|
|
197
163
|
out << " "
|
|
198
164
|
end
|
|
199
165
|
|
|
200
|
-
def clause_name(num, title, div, header_class)
|
|
201
|
-
header_class = {} if header_class.nil?
|
|
202
|
-
div.h1 **attr_code(header_class) do |h1|
|
|
203
|
-
if num && !@suppressheadingnumbers
|
|
204
|
-
h1 << "#{num}."
|
|
205
|
-
h1 << " "
|
|
206
|
-
end
|
|
207
|
-
title.is_a?(String) ? h1 << title :
|
|
208
|
-
title&.children&.each { |c2| parse(c2, h1) }
|
|
209
|
-
end
|
|
210
|
-
div.parent.at(".//h1")
|
|
211
|
-
end
|
|
212
|
-
|
|
213
166
|
def example_span_label(node, div, name)
|
|
214
|
-
n = @xrefs.get[node["id"]]
|
|
215
167
|
div.span **{ class: "example_label" } do |p|
|
|
216
|
-
lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @example_lbl :
|
|
217
|
-
l10n("#{@example_lbl} #{n[:label]}")
|
|
218
|
-
p << l10n(lbl + ":")
|
|
219
|
-
name and !lbl.nil? and p << " — "
|
|
220
168
|
name and name.children.each { |n| parse(n, div) }
|
|
221
169
|
end
|
|
222
170
|
end
|
data/lib/isodoc/gb/cleanup.rb
CHANGED
|
@@ -74,17 +74,6 @@ module IsoDoc
|
|
|
74
74
|
term_merge(docxml, "DeprecatedTerms")
|
|
75
75
|
docxml
|
|
76
76
|
end
|
|
77
|
-
|
|
78
|
-
=begin
|
|
79
|
-
def intro_cleanup(docxml)
|
|
80
|
-
# insert tab for purposes of ToC lining up
|
|
81
|
-
docxml.xpath("//h1[@class = 'IntroTitle']").each do |h1|
|
|
82
|
-
if h1.content == "引言"
|
|
83
|
-
h1.add_child('<span style="mso-tab-count:1">  </span>')
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
=end
|
|
88
77
|
end
|
|
89
78
|
end
|
|
90
79
|
end
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
require_relative "init"
|
|
1
2
|
require_relative "base_convert"
|
|
2
3
|
require "isodoc"
|
|
3
4
|
|
|
@@ -47,31 +48,23 @@ module IsoDoc
|
|
|
47
48
|
end
|
|
48
49
|
|
|
49
50
|
def populate_template(docxml, format)
|
|
50
|
-
meta = @meta.get.merge(@
|
|
51
|
+
meta = @meta.get.merge(@i18n.get).merge(@meta.fonts_options || {})
|
|
51
52
|
logo = @common.format_logo(meta[:gbprefix], meta[:gbscope], format, @localdir)
|
|
52
53
|
logofile = @meta.standard_logo(meta[:gbprefix])
|
|
53
54
|
meta[:standard_agency_formatted] =
|
|
54
55
|
@common.format_agency(meta[:standard_agency], format, @localdir)
|
|
55
56
|
meta[:standard_logo] = logo
|
|
56
|
-
|
|
57
57
|
template = Liquid::Template.parse(docxml)
|
|
58
58
|
template.render(meta.map { |k, v| [k.to_s, v] }.to_h)
|
|
59
|
-
|
|
60
|
-
#template = liquid(docxml)
|
|
61
|
-
#template.render(meta.map { |k, v| [k.to_s, empty2nil(v)] }.to_h).
|
|
62
|
-
#gsub('<', '<').gsub('>', '>').gsub('&', '&')
|
|
63
59
|
end
|
|
64
60
|
|
|
65
|
-
def
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
t.b do |b|
|
|
69
|
-
name&.children&.each { |c2| parse(c2, b) }
|
|
70
|
-
end
|
|
71
|
-
end
|
|
61
|
+
def insert_tab(out, n)
|
|
62
|
+
tab = " "
|
|
63
|
+
[1..n].each { out << tab }
|
|
72
64
|
end
|
|
73
65
|
|
|
74
66
|
include BaseConvert
|
|
67
|
+
include Init
|
|
75
68
|
end
|
|
76
69
|
end
|
|
77
70
|
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
module IsoDoc
|
|
2
|
+
module Gb
|
|
3
|
+
class I18n < IsoDoc::Iso::I18n
|
|
4
|
+
def load_yaml1(lang, script)
|
|
5
|
+
y = if lang == "en"
|
|
6
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
|
|
7
|
+
elsif lang == "zh" && script == "Hans"
|
|
8
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-zh-Hans.yaml"))
|
|
9
|
+
else
|
|
10
|
+
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-zh-Hans.yaml"))
|
|
11
|
+
end
|
|
12
|
+
super.merge(y)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
require "isodoc"
|
|
2
|
+
require_relative "metadata"
|
|
3
|
+
require_relative "xref"
|
|
4
|
+
require_relative "i18n"
|
|
5
|
+
|
|
6
|
+
module IsoDoc
|
|
7
|
+
module Gb
|
|
8
|
+
module Init
|
|
9
|
+
def metadata_init(lang, script, labels)
|
|
10
|
+
unless ["en", "zh"].include? lang
|
|
11
|
+
lang = "zh"
|
|
12
|
+
script = "Hans"
|
|
13
|
+
end
|
|
14
|
+
@meta = Metadata.new(lang, script, labels)
|
|
15
|
+
@meta.set(:standardclassimg, @standardclassimg)
|
|
16
|
+
@common&.meta = @meta
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def xref_init(lang, script, klass, labels, options)
|
|
20
|
+
@xrefs = Xref.new(lang, script, HtmlConvert.new(language: lang, script: script), labels, options)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def i18n_init(lang, script, i18nyaml = nil)
|
|
24
|
+
@i18n = I18n.new(lang, script, i18nyaml || @i18nyaml)
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
data/lib/isodoc/gb/metadata.rb
CHANGED
|
@@ -8,7 +8,7 @@ module IsoDoc
|
|
|
8
8
|
# A {Converter} implementation that generates GB output, and a document
|
|
9
9
|
# schema encapsulation of the document for validation
|
|
10
10
|
class Metadata < IsoDoc::Iso::Metadata
|
|
11
|
-
def initialize(lang, script,
|
|
11
|
+
def initialize(lang, script, i18n)
|
|
12
12
|
super
|
|
13
13
|
set(:docmaintitlezh, "")
|
|
14
14
|
set(:docsubtitlezh, "XXXX")
|
|
@@ -1,9 +1,25 @@
|
|
|
1
|
-
require_relative "
|
|
1
|
+
require_relative "init"
|
|
2
2
|
require "isodoc"
|
|
3
3
|
|
|
4
4
|
module IsoDoc
|
|
5
5
|
module Gb
|
|
6
6
|
class PresentationXMLConvert < IsoDoc::Iso::PresentationXMLConvert
|
|
7
|
+
def example1(f)
|
|
8
|
+
n = @xrefs.get[f["id"]]
|
|
9
|
+
lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @i18n.example :
|
|
10
|
+
l10n("#{@i18n.example} #{n[:label]}")
|
|
11
|
+
prefix_name(f, " — ", l10n(lbl + ":"), "name")
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def annex1(f)
|
|
15
|
+
lbl = @xrefs.anchor(f['id'], :label)
|
|
16
|
+
if t = f.at(ns("./title"))
|
|
17
|
+
t.children = "#{t.children.to_xml}"
|
|
18
|
+
end
|
|
19
|
+
prefix_name(f, "<br/><br/>", lbl, "title")
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
include Init
|
|
7
23
|
end
|
|
8
24
|
end
|
|
9
25
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
require_relative "base_convert"
|
|
2
|
+
require_relative "init"
|
|
2
3
|
require "isodoc"
|
|
3
4
|
|
|
4
5
|
module IsoDoc
|
|
@@ -71,17 +72,17 @@ module IsoDoc
|
|
|
71
72
|
out.table **attr_code(id: node["id"], class: "example") do |t|
|
|
72
73
|
t.tr do |tr|
|
|
73
74
|
tr.td **EXAMPLE_TBL_ATTR do |td|
|
|
74
|
-
|
|
75
|
+
node.at(ns("./name")).children.each { |n| parse(n, td) }
|
|
75
76
|
end
|
|
76
77
|
tr.td **{ valign: "top", class: "example" } do |td|
|
|
77
|
-
node.children.each { |n| parse(n, td) }
|
|
78
|
+
node.children.each { |n| parse(n, td) unless n.name == "name" }
|
|
78
79
|
end
|
|
79
80
|
end
|
|
80
81
|
end
|
|
81
82
|
end
|
|
82
83
|
|
|
83
84
|
def populate_template(docxml, format)
|
|
84
|
-
meta = @meta.get.merge(@
|
|
85
|
+
meta = @meta.get.merge(@i18n.get).merge(@meta.fonts_options || {})
|
|
85
86
|
logo = @common.format_logo(meta[:gbprefix], meta[:gbscope], format, @localdir)
|
|
86
87
|
logofile = @meta.standard_logo(meta[:gbprefix])
|
|
87
88
|
meta[:standard_agency_formatted] =
|
|
@@ -92,13 +93,6 @@ module IsoDoc
|
|
|
92
93
|
gsub('<', '<').gsub('>', '>').gsub('&', '&')
|
|
93
94
|
end
|
|
94
95
|
|
|
95
|
-
def annex_name(annex, name, div)
|
|
96
|
-
div.h1 **{ class: "Annex" } do |t|
|
|
97
|
-
t << "#{@xrefs.anchor(annex['id'], :label)}<br/><br/>"
|
|
98
|
-
name&.children&.each { |c2| parse(c2, t) }
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
|
|
102
96
|
def make_body(xml, docxml)
|
|
103
97
|
body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72" }
|
|
104
98
|
xml.body **body_attr do |body|
|
|
@@ -126,6 +120,7 @@ module IsoDoc
|
|
|
126
120
|
end
|
|
127
121
|
|
|
128
122
|
include BaseConvert
|
|
123
|
+
include Init
|
|
129
124
|
end
|
|
130
125
|
end
|
|
131
126
|
end
|
data/lib/metanorma/gb/version.rb
CHANGED
data/metanorma-gb.gemspec
CHANGED
|
@@ -29,8 +29,8 @@ Gem::Specification.new do |spec|
|
|
|
29
29
|
spec.require_paths = ["lib"]
|
|
30
30
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
|
31
31
|
|
|
32
|
-
spec.add_dependency "metanorma-iso", "~> 1.
|
|
33
|
-
spec.add_dependency "isodoc", "~> 1.
|
|
32
|
+
spec.add_dependency "metanorma-iso", "~> 1.5.0"
|
|
33
|
+
spec.add_dependency "isodoc", "~> 1.2.0"
|
|
34
34
|
spec.add_dependency "twitter_cldr", "~> 4.4.4"
|
|
35
35
|
spec.add_dependency "gb-agencies", "~> 0.0.4"
|
|
36
36
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: metanorma-gb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.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: 2020-07-
|
|
11
|
+
date: 2020-07-29 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: metanorma-iso
|
|
@@ -16,28 +16,28 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.
|
|
19
|
+
version: 1.5.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: 1.
|
|
26
|
+
version: 1.5.0
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: isodoc
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 1.
|
|
33
|
+
version: 1.2.0
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 1.
|
|
40
|
+
version: 1.2.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: twitter_cldr
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -267,6 +267,7 @@ files:
|
|
|
267
267
|
- lib/asciidoctor/gb/basicdoc.rng
|
|
268
268
|
- lib/asciidoctor/gb/biblio.rng
|
|
269
269
|
- lib/asciidoctor/gb/boilerplate.xml
|
|
270
|
+
- lib/asciidoctor/gb/cleanup.rb
|
|
270
271
|
- lib/asciidoctor/gb/converter.rb
|
|
271
272
|
- lib/asciidoctor/gb/front.rb
|
|
272
273
|
- lib/asciidoctor/gb/front_id.rb
|
|
@@ -324,10 +325,13 @@ files:
|
|
|
324
325
|
- lib/isodoc/gb/html_convert.rb
|
|
325
326
|
- lib/isodoc/gb/i18n-en.yaml
|
|
326
327
|
- lib/isodoc/gb/i18n-zh-Hans.yaml
|
|
328
|
+
- lib/isodoc/gb/i18n.rb
|
|
329
|
+
- lib/isodoc/gb/init.rb
|
|
327
330
|
- lib/isodoc/gb/metadata.rb
|
|
328
331
|
- lib/isodoc/gb/pdf_convert.rb
|
|
329
332
|
- lib/isodoc/gb/presentation_xml_convert.rb
|
|
330
333
|
- lib/isodoc/gb/word_convert.rb
|
|
334
|
+
- lib/isodoc/gb/xref.rb
|
|
331
335
|
- lib/metanorma-gb.rb
|
|
332
336
|
- lib/metanorma/gb.rb
|
|
333
337
|
- lib/metanorma/gb/processor.rb
|