metanorma-jis 0.0.3 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/html2doc/lists.rb +22 -66
- data/lib/isodoc/jis/base_convert.rb +80 -11
- data/lib/isodoc/jis/figure.rb +99 -0
- data/lib/isodoc/jis/html/header.html +210 -818
- data/lib/isodoc/jis/html/html_jis_intro.html +0 -1
- data/lib/isodoc/jis/html/isodoc.css +9 -38
- data/lib/isodoc/jis/html/isodoc.scss +9 -37
- data/lib/isodoc/jis/html/word_jis_intro.html +0 -7
- data/lib/isodoc/jis/html/wordstyle.css +55 -1
- data/lib/isodoc/jis/html/wordstyle.scss +52 -1
- data/lib/isodoc/jis/html_convert.rb +1 -1
- data/lib/isodoc/jis/i18n-en.yaml +6 -0
- data/lib/isodoc/jis/i18n-ja.yaml +8 -1
- data/lib/isodoc/jis/jis.international-standard.xsl +660 -187
- data/lib/isodoc/jis/metadata.rb +7 -0
- data/lib/isodoc/jis/presentation_xml_convert.rb +127 -24
- data/lib/isodoc/jis/table.rb +58 -0
- data/lib/isodoc/jis/word_cleanup.rb +6 -6
- data/lib/isodoc/jis/word_convert.rb +38 -169
- data/lib/isodoc/jis/xref.rb +45 -0
- data/lib/metanorma/jis/cleanup.rb +2 -1
- data/lib/metanorma/jis/converter.rb +10 -0
- data/lib/metanorma/jis/front.rb +57 -15
- data/lib/metanorma/jis/isodoc.rng +41 -14
- data/lib/metanorma/jis/isostandard.rng +5 -8
- data/lib/metanorma/jis/jis.rng +16 -9
- data/lib/metanorma/jis/processor.rb +2 -2
- data/lib/metanorma/jis/version.rb +1 -1
- data/metanorma-jis.gemspec +2 -2
- metadata +7 -5
data/lib/metanorma/jis/front.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require "pubid-jis"
|
2
|
+
|
1
3
|
module Metanorma
|
2
4
|
module JIS
|
3
5
|
class Converter < ISO::Converter
|
@@ -59,28 +61,68 @@ module Metanorma
|
|
59
61
|
end
|
60
62
|
|
61
63
|
def metadata_id(node, xml)
|
64
|
+
node.attr("docidentifier") || node.attr("docnumber") or
|
65
|
+
@fatalerror << "No docnumber attribute supplied"
|
62
66
|
if id = node.attr("docidentifier")
|
63
|
-
xml.docidentifier id, **attr_code(type: "JIS")
|
67
|
+
xml.docidentifier id.sub(/^JIS /, ""), **attr_code(type: "JIS")
|
64
68
|
else iso_id(node, xml)
|
65
69
|
end
|
66
70
|
xml.docnumber node.attr("docnumber")
|
67
71
|
end
|
68
72
|
|
73
|
+
def get_typeabbr(node, amd: false)
|
74
|
+
amd || node.attr("amendment-number") and return :amd
|
75
|
+
case doctype(node)
|
76
|
+
when "technical-report" then :tr
|
77
|
+
when "technical-specification" then :ts
|
78
|
+
when "amendment" then :amd
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
69
82
|
def iso_id(node, xml)
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
83
|
+
(!@amd && node.attr("docnumber")) || (@amd && node.attr("updates")) or
|
84
|
+
return
|
85
|
+
params = iso_id_params(node)
|
86
|
+
iso_id_out(xml, params, true)
|
87
|
+
end
|
88
|
+
|
89
|
+
def iso_id_params(node)
|
90
|
+
params = iso_id_params_core(node)
|
91
|
+
params2 = iso_id_params_add(node)
|
92
|
+
if node.attr("updates")
|
93
|
+
orig_id = Pubid::Jis::Identifier::Base.parse(node.attr("updates"))
|
94
|
+
orig_id.edition ||= 1
|
95
|
+
end
|
96
|
+
iso_id_params_resolve(params, params2, node, orig_id)
|
97
|
+
end
|
98
|
+
|
99
|
+
def iso_id_params_core(node)
|
100
|
+
pub = (node.attr("publisher") || "JIS").split(/[;,]/)
|
101
|
+
ret = { number: node.attr("docnumber") || "0",
|
102
|
+
part: node.attr("partnumber"),
|
103
|
+
series: node.attr("docseries"),
|
104
|
+
language: node.attr("language") == "en" ? "E" : nil,
|
105
|
+
type: get_typeabbr(node),
|
106
|
+
publisher: pub[0],
|
107
|
+
copublisher: pub[1..-1] }.compact
|
108
|
+
ret[:copublisher].empty? and ret.delete(:copublisher)
|
109
|
+
ret
|
110
|
+
end
|
111
|
+
|
112
|
+
def iso_id_params_add(node)
|
113
|
+
{ number: node.attr("amendment-number"),
|
114
|
+
year: iso_id_year(node) }.compact
|
115
|
+
end
|
116
|
+
|
117
|
+
def iso_id_out(xml, params, _with_prf)
|
118
|
+
id = iso_id_default(params).to_s(with_publisher: false)
|
119
|
+
xml.docidentifier id.strip, type: "JIS"
|
120
|
+
end
|
121
|
+
|
122
|
+
def iso_id_default(params)
|
123
|
+
Pubid::Jis::Identifier.create(**params)
|
124
|
+
rescue StandardError => e
|
125
|
+
clean_abort("Document identifier: #{e}", xml)
|
84
126
|
end
|
85
127
|
end
|
86
128
|
end
|
@@ -17,6 +17,7 @@
|
|
17
17
|
these elements; we just want one namespace for any child grammars
|
18
18
|
of this.
|
19
19
|
-->
|
20
|
+
<!-- VERSION v1.2.1 -->
|
20
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">
|
21
22
|
<include href="reqt.rng"/>
|
22
23
|
<include href="basicdoc.rng">
|
@@ -382,6 +383,9 @@
|
|
382
383
|
<optional>
|
383
384
|
<ref name="dl"/>
|
384
385
|
</optional>
|
386
|
+
<optional>
|
387
|
+
<ref name="source"/>
|
388
|
+
</optional>
|
385
389
|
</element>
|
386
390
|
</define>
|
387
391
|
<define name="figure">
|
@@ -404,9 +408,6 @@
|
|
404
408
|
<attribute name="class"/>
|
405
409
|
</optional>
|
406
410
|
<ref name="BlockAttributes"/>
|
407
|
-
<optional>
|
408
|
-
<ref name="source"/>
|
409
|
-
</optional>
|
410
411
|
<optional>
|
411
412
|
<ref name="tname"/>
|
412
413
|
</optional>
|
@@ -431,6 +432,20 @@
|
|
431
432
|
<zeroOrMore>
|
432
433
|
<ref name="note"/>
|
433
434
|
</zeroOrMore>
|
435
|
+
<optional>
|
436
|
+
<ref name="source"/>
|
437
|
+
</optional>
|
438
|
+
</element>
|
439
|
+
</define>
|
440
|
+
<define name="source">
|
441
|
+
<element name="source">
|
442
|
+
<attribute name="status">
|
443
|
+
<ref name="SourceStatusType"/>
|
444
|
+
</attribute>
|
445
|
+
<ref name="origin"/>
|
446
|
+
<optional>
|
447
|
+
<ref name="modification"/>
|
448
|
+
</optional>
|
434
449
|
</element>
|
435
450
|
</define>
|
436
451
|
<define name="sourcecode">
|
@@ -1335,15 +1350,19 @@
|
|
1335
1350
|
</choice>
|
1336
1351
|
</element>
|
1337
1352
|
</define>
|
1353
|
+
<define name="Root-Attributes">
|
1354
|
+
<attribute name="version"/>
|
1355
|
+
<attribute name="schema-version"/>
|
1356
|
+
<attribute name="type">
|
1357
|
+
<choice>
|
1358
|
+
<value>semantic</value>
|
1359
|
+
<value>presentation</value>
|
1360
|
+
</choice>
|
1361
|
+
</attribute>
|
1362
|
+
</define>
|
1338
1363
|
<define name="standard-document">
|
1339
1364
|
<element name="standard-document">
|
1340
|
-
<
|
1341
|
-
<attribute name="type">
|
1342
|
-
<choice>
|
1343
|
-
<value>semantic</value>
|
1344
|
-
<value>presentation</value>
|
1345
|
-
</choice>
|
1346
|
-
</attribute>
|
1365
|
+
<ref name="Root-Attributes"/>
|
1347
1366
|
<ref name="bibdata"/>
|
1348
1367
|
<optional>
|
1349
1368
|
<ref name="misccontainer"/>
|
@@ -2099,10 +2118,7 @@
|
|
2099
2118
|
<define name="termsource">
|
2100
2119
|
<element name="termsource">
|
2101
2120
|
<attribute name="status">
|
2102
|
-
<
|
2103
|
-
<value>identical</value>
|
2104
|
-
<value>modified</value>
|
2105
|
-
</choice>
|
2121
|
+
<ref name="SourceStatusType"/>
|
2106
2122
|
</attribute>
|
2107
2123
|
<attribute name="type">
|
2108
2124
|
<choice>
|
@@ -2116,6 +2132,17 @@
|
|
2116
2132
|
</optional>
|
2117
2133
|
</element>
|
2118
2134
|
</define>
|
2135
|
+
<define name="SourceStatusType">
|
2136
|
+
<choice>
|
2137
|
+
<value>identical</value>
|
2138
|
+
<value>modified</value>
|
2139
|
+
<value>restyled</value>
|
2140
|
+
<value>context-added</value>
|
2141
|
+
<value>generalisation</value>
|
2142
|
+
<value>specialisation</value>
|
2143
|
+
<value>unspecified</value>
|
2144
|
+
</choice>
|
2145
|
+
</define>
|
2119
2146
|
<define name="origin">
|
2120
2147
|
<element name="origin">
|
2121
2148
|
<choice>
|
@@ -1,6 +1,9 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
|
-
<!--
|
3
|
+
<!--
|
4
|
+
VERSION v1.2.1
|
5
|
+
default namespace isostandard = "https://www.metanorma.com/ns/iso"
|
6
|
+
-->
|
4
7
|
<include href="isodoc.rng">
|
5
8
|
<start>
|
6
9
|
<ref name="iso-standard"/>
|
@@ -240,13 +243,7 @@
|
|
240
243
|
-->
|
241
244
|
<define name="iso-standard">
|
242
245
|
<element name="iso-standard">
|
243
|
-
<
|
244
|
-
<attribute name="type">
|
245
|
-
<choice>
|
246
|
-
<value>semantic</value>
|
247
|
-
<value>presentation</value>
|
248
|
-
</choice>
|
249
|
-
</attribute>
|
246
|
+
<ref name="Root-Attributes"/>
|
250
247
|
<ref name="bibdata"/>
|
251
248
|
<zeroOrMore>
|
252
249
|
<ref name="termdocsource"/>
|
data/lib/metanorma/jis/jis.rng
CHANGED
@@ -1,11 +1,24 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar ns=
|
3
|
-
<!--
|
2
|
+
<grammar ns='https://www.metanorma.org/ns/jis' xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
|
+
<!--
|
4
|
+
VERSION v1.2.1
|
5
|
+
default namespace = "https://www.metanorma.com/ns/jis"
|
6
|
+
-->
|
4
7
|
<include href="relaton-jis.rng"/>
|
5
8
|
<include href="isostandard.rng">
|
6
9
|
<start>
|
7
10
|
<ref name="jis-standard"/>
|
8
11
|
</start>
|
12
|
+
<define name="annex">
|
13
|
+
<element name="annex">
|
14
|
+
<optional>
|
15
|
+
<attribute name="commentary">
|
16
|
+
<data type="boolean"/>
|
17
|
+
</attribute>
|
18
|
+
</optional>
|
19
|
+
<ref name="Annex-Section"/>
|
20
|
+
</element>
|
21
|
+
</define>
|
9
22
|
</include>
|
10
23
|
<!-- end overrides -->
|
11
24
|
<define name="floating-section-title">
|
@@ -27,13 +40,7 @@
|
|
27
40
|
-->
|
28
41
|
<define name="jis-standard">
|
29
42
|
<element name="jis-standard">
|
30
|
-
<
|
31
|
-
<attribute name="type">
|
32
|
-
<choice>
|
33
|
-
<value>semantic</value>
|
34
|
-
<value>presentation</value>
|
35
|
-
</choice>
|
36
|
-
</attribute>
|
43
|
+
<ref name="Root-Attributes"/>
|
37
44
|
<ref name="bibdata"/>
|
38
45
|
<zeroOrMore>
|
39
46
|
<ref name="termdocsource"/>
|
data/metanorma-jis.gemspec
CHANGED
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
31
31
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
32
32
|
|
33
|
-
spec.add_dependency "metanorma-iso", "~> 2.4.
|
34
|
-
spec.add_dependency "
|
33
|
+
spec.add_dependency "metanorma-iso", "~> 2.4.2"
|
34
|
+
spec.add_dependency "pubid-jis"
|
35
35
|
|
36
36
|
spec.add_development_dependency "debug"
|
37
37
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-jis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
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-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-iso
|
@@ -16,16 +16,16 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 2.4.
|
19
|
+
version: 2.4.2
|
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: 2.4.
|
26
|
+
version: 2.4.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: pubid-jis
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - ">="
|
@@ -238,6 +238,7 @@ files:
|
|
238
238
|
- README.adoc
|
239
239
|
- lib/html2doc/lists.rb
|
240
240
|
- lib/isodoc/jis/base_convert.rb
|
241
|
+
- lib/isodoc/jis/figure.rb
|
241
242
|
- lib/isodoc/jis/html/header.html
|
242
243
|
- lib/isodoc/jis/html/html_jis_intro.html
|
243
244
|
- lib/isodoc/jis/html/html_jis_titlepage.html
|
@@ -262,6 +263,7 @@ files:
|
|
262
263
|
- lib/isodoc/jis/metadata.rb
|
263
264
|
- lib/isodoc/jis/pdf_convert.rb
|
264
265
|
- lib/isodoc/jis/presentation_xml_convert.rb
|
266
|
+
- lib/isodoc/jis/table.rb
|
265
267
|
- lib/isodoc/jis/word_cleanup.rb
|
266
268
|
- lib/isodoc/jis/word_convert.rb
|
267
269
|
- lib/isodoc/jis/xref.rb
|