metanorma-jis 0.0.1 → 0.0.3
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/html2doc/lists.rb +41 -6
- data/lib/isodoc/jis/base_convert.rb +39 -1
- data/lib/isodoc/jis/html/isodoc.css +72 -151
- data/lib/isodoc/jis/html/isodoc.scss +82 -161
- data/lib/isodoc/jis/html/word_jis_intro.html +4 -3
- data/lib/isodoc/jis/html/word_jis_titlepage.html +6 -0
- data/lib/isodoc/jis/html/wordstyle.css +37 -109
- data/lib/isodoc/jis/html/wordstyle.scss +48 -132
- data/lib/isodoc/jis/html_convert.rb +20 -4
- data/lib/isodoc/jis/i18n-en.yaml +13 -0
- data/lib/isodoc/jis/i18n-ja.yaml +8 -204
- data/lib/isodoc/jis/i18n.rb +2 -2
- data/lib/isodoc/jis/jis.international-standard.xsl +11095 -0
- data/lib/isodoc/jis/metadata.rb +2 -0
- data/lib/isodoc/jis/presentation_xml_convert.rb +88 -0
- data/lib/isodoc/jis/word_cleanup.rb +143 -0
- data/lib/isodoc/jis/word_convert.rb +255 -80
- data/lib/isodoc/jis/xref.rb +7 -0
- data/lib/metanorma/jis/cleanup.rb +42 -0
- data/lib/metanorma/jis/converter.rb +10 -14
- data/lib/metanorma/jis/front.rb +36 -0
- data/lib/metanorma/jis/processor.rb +1 -1
- data/lib/metanorma/jis/relaton-jis.rng +3 -109
- data/lib/metanorma/jis/validate.rb +26 -0
- data/lib/metanorma/jis/version.rb +1 -1
- metadata +7 -2
@@ -0,0 +1,42 @@
|
|
1
|
+
module Metanorma
|
2
|
+
module JIS
|
3
|
+
class Converter < ISO::Converter
|
4
|
+
def norm_ref_preface(ref)
|
5
|
+
if ref.at("./note[@type = 'boilerplate']")
|
6
|
+
unwrap_boilerplate_clauses(ref, ".")
|
7
|
+
else
|
8
|
+
pref = if ref_empty?(ref) then @i18n.norm_empty_pref
|
9
|
+
else @i18n.get[ref_dated(ref)]
|
10
|
+
end
|
11
|
+
ref.at("./title").next = "<p>#{pref}</p>"
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
def ref_empty?(ref)
|
16
|
+
ref.xpath(".//bibitem").empty?
|
17
|
+
end
|
18
|
+
|
19
|
+
def ref_dated(ref)
|
20
|
+
refs = ref.xpath("./bibitem").each_with_object({}) do |e, m|
|
21
|
+
if e.at("./date") then m[:dated] = true
|
22
|
+
else m[:undated] = true
|
23
|
+
end
|
24
|
+
end
|
25
|
+
refs[:dated] && refs[:undated] and return "norm_with_refs_pref"
|
26
|
+
refs[:dated] and return "norm_with_refs_pref_all_dated"
|
27
|
+
"norm_with_refs_pref_none_dated"
|
28
|
+
end
|
29
|
+
|
30
|
+
def table_footnote_renumber(xmldoc)
|
31
|
+
xmldoc.xpath("//table | //figure").each do |t|
|
32
|
+
seen = {}
|
33
|
+
i = 0
|
34
|
+
#t.xpath(".//fn[not(ancestor::name)]").each do |fn|
|
35
|
+
t.xpath(".//fn").each do |fn|
|
36
|
+
i, seen = table_footnote_renumber1(fn, i, seen)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
require "asciidoctor"
|
2
2
|
require "metanorma-iso"
|
3
3
|
require_relative "./front"
|
4
|
+
require_relative "./validate"
|
5
|
+
require_relative "./cleanup"
|
4
6
|
|
5
7
|
module Metanorma
|
6
8
|
module JIS
|
@@ -12,9 +14,17 @@ module Metanorma
|
|
12
14
|
|
13
15
|
def init_i18n(node)
|
14
16
|
node.attr("language") or node.set_attr("language", "ja")
|
17
|
+
node.attr("language") == "jp" and node.set_attr("language", "ja")
|
15
18
|
super
|
16
19
|
end
|
17
20
|
|
21
|
+
def doctype(node)
|
22
|
+
ret = node.attr("doctype")&.gsub(/\s+/, "-")&.downcase ||
|
23
|
+
"japanese-industrial-standard"
|
24
|
+
ret = "japanese-industrial-standard" if ret == "article"
|
25
|
+
ret
|
26
|
+
end
|
27
|
+
|
18
28
|
def boilerplate_file(_x_orig)
|
19
29
|
File.join(@libdir, "jis_intro_jp.xml")
|
20
30
|
end
|
@@ -37,7 +47,6 @@ module Metanorma
|
|
37
47
|
|
38
48
|
def pdf_converter(node)
|
39
49
|
return if node.attr("no-pdf")
|
40
|
-
return
|
41
50
|
|
42
51
|
if node.nil?
|
43
52
|
IsoDoc::JIS::PdfConvert.new({})
|
@@ -53,19 +62,6 @@ module Metanorma
|
|
53
62
|
IsoDoc::JIS::PresentationXMLConvert.new(doc_extract_attributes(node))
|
54
63
|
end
|
55
64
|
end
|
56
|
-
|
57
|
-
def script_validate(xmldoc)
|
58
|
-
script = xmldoc&.at("//bibdata/script")&.text
|
59
|
-
%w(Jpan Latn).include?(script) or
|
60
|
-
@log.add("Document Attributes", nil,
|
61
|
-
"#{script} is not a recognised script")
|
62
|
-
end
|
63
|
-
|
64
|
-
def validate(doc)
|
65
|
-
content_validate(doc)
|
66
|
-
schema_validate(formattedstr_strip(doc.dup),
|
67
|
-
File.join(File.dirname(__FILE__), "jis.rng"))
|
68
|
-
end
|
69
65
|
end
|
70
66
|
end
|
71
67
|
end
|
data/lib/metanorma/jis/front.rb
CHANGED
@@ -46,6 +46,42 @@ module Metanorma
|
|
46
46
|
end
|
47
47
|
end
|
48
48
|
end
|
49
|
+
|
50
|
+
def title(node, xml)
|
51
|
+
%w(en ja).each do |lang|
|
52
|
+
at = { language: lang, format: "text/plain" }
|
53
|
+
title_full(node, xml, lang, at)
|
54
|
+
title_intro(node, xml, lang, at)
|
55
|
+
title_main(node, xml, lang, at)
|
56
|
+
title_part(node, xml, lang, at)
|
57
|
+
title_amd(node, xml, lang, at) if @amd
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def metadata_id(node, xml)
|
62
|
+
if id = node.attr("docidentifier")
|
63
|
+
xml.docidentifier id, **attr_code(type: "JIS")
|
64
|
+
else iso_id(node, xml)
|
65
|
+
end
|
66
|
+
xml.docnumber node.attr("docnumber")
|
67
|
+
end
|
68
|
+
|
69
|
+
def iso_id(node, xml)
|
70
|
+
id = case doctype(node)
|
71
|
+
when "japanese-industrial-standard", "amendment" then "JIS"
|
72
|
+
when "technical-report" then "TR"
|
73
|
+
when "technical-specification" then "TS"
|
74
|
+
else "JIS"
|
75
|
+
end
|
76
|
+
a = node.attr("docseries") and id += " #{a}"
|
77
|
+
a = node.attr("docnumber") and id += " #{a}"
|
78
|
+
yr = iso_id_year(node)
|
79
|
+
origyr = node.attr("created-date") || yr
|
80
|
+
a = node.attr("amendment-number") and
|
81
|
+
id += ":#{origyr}/AMD #{a}"
|
82
|
+
id += ":#{yr}"
|
83
|
+
xml.docidentifier id, type: "JIS"
|
84
|
+
end
|
49
85
|
end
|
50
86
|
end
|
51
87
|
end
|
@@ -6,9 +6,6 @@
|
|
6
6
|
<attribute name="schema-version"/>
|
7
7
|
</optional>
|
8
8
|
<ref name="doctype"/>
|
9
|
-
<optional>
|
10
|
-
<ref name="docsubtype"/>
|
11
|
-
</optional>
|
12
9
|
<ref name="editorialgroup"/>
|
13
10
|
<zeroOrMore>
|
14
11
|
<ref name="ics"/>
|
@@ -18,93 +15,12 @@
|
|
18
15
|
<ref name="stagename"/>
|
19
16
|
</optional>
|
20
17
|
</define>
|
21
|
-
<define name="bdate">
|
22
|
-
<element name="date">
|
23
|
-
<attribute name="type">
|
24
|
-
<choice>
|
25
|
-
<ref name="BibliographicDateType"/>
|
26
|
-
<text/>
|
27
|
-
</choice>
|
28
|
-
</attribute>
|
29
|
-
<choice>
|
30
|
-
<group>
|
31
|
-
<element name="from">
|
32
|
-
<ref name="ISO8601Date"/>
|
33
|
-
</element>
|
34
|
-
<optional>
|
35
|
-
<element name="to">
|
36
|
-
<ref name="ISO8601Date"/>
|
37
|
-
</element>
|
38
|
-
</optional>
|
39
|
-
</group>
|
40
|
-
<element name="on">
|
41
|
-
<choice>
|
42
|
-
<ref name="ISO8601Date"/>
|
43
|
-
<value>--</value>
|
44
|
-
<value>–</value>
|
45
|
-
</choice>
|
46
|
-
</element>
|
47
|
-
</choice>
|
48
|
-
</element>
|
49
|
-
</define>
|
50
|
-
<define name="organization">
|
51
|
-
<element name="organization">
|
52
|
-
<oneOrMore>
|
53
|
-
<ref name="orgname"/>
|
54
|
-
</oneOrMore>
|
55
|
-
<optional>
|
56
|
-
<ref name="abbreviation"/>
|
57
|
-
</optional>
|
58
|
-
<optional>
|
59
|
-
<ref name="uri"/>
|
60
|
-
</optional>
|
61
|
-
<zeroOrMore>
|
62
|
-
<ref name="org-identifier"/>
|
63
|
-
</zeroOrMore>
|
64
|
-
<zeroOrMore>
|
65
|
-
<ref name="contact"/>
|
66
|
-
</zeroOrMore>
|
67
|
-
<optional>
|
68
|
-
<ref name="technical-committee"/>
|
69
|
-
</optional>
|
70
|
-
<optional>
|
71
|
-
<ref name="subcommittee"/>
|
72
|
-
</optional>
|
73
|
-
<optional>
|
74
|
-
<ref name="workgroup"/>
|
75
|
-
</optional>
|
76
|
-
<optional>
|
77
|
-
<ref name="secretariat"/>
|
78
|
-
</optional>
|
79
|
-
</element>
|
80
|
-
</define>
|
81
18
|
<define name="DocumentType">
|
82
19
|
<choice>
|
83
|
-
<value>
|
84
|
-
<value>draft-for-development</value>
|
85
|
-
<value>published-document</value>
|
86
|
-
<value>privately-subscribed-standard</value>
|
87
|
-
<value>publicly-available-specification</value>
|
88
|
-
<value>flex-standard</value>
|
89
|
-
<value>international-standard</value>
|
90
|
-
<value>technical-specification</value>
|
20
|
+
<value>japanese-industrial-standard</value>
|
91
21
|
<value>technical-report</value>
|
92
|
-
<value>
|
93
|
-
<value>
|
94
|
-
<value>industry-technical-agreement</value>
|
95
|
-
<value>standard</value>
|
96
|
-
<value>european-workshop-agreement</value>
|
97
|
-
<value>fast-track-standard</value>
|
98
|
-
<value>expert-commentary</value>
|
99
|
-
</choice>
|
100
|
-
</define>
|
101
|
-
<define name="DocumentSubtype">
|
102
|
-
<choice>
|
103
|
-
<value>specification</value>
|
104
|
-
<value>method-of-test</value>
|
105
|
-
<value>method-of-specifying</value>
|
106
|
-
<value>vocabulary</value>
|
107
|
-
<value>code-of-practice</value>
|
22
|
+
<value>technical-specification</value>
|
23
|
+
<value>amendment</value>
|
108
24
|
</choice>
|
109
25
|
</define>
|
110
26
|
<define name="structuredidentifier">
|
@@ -126,11 +42,6 @@
|
|
126
42
|
</element>
|
127
43
|
</define>
|
128
44
|
</include>
|
129
|
-
<define name="updates_document_type">
|
130
|
-
<element name="updates-document-type">
|
131
|
-
<ref name="DocumentType"/>
|
132
|
-
</element>
|
133
|
-
</define>
|
134
45
|
<define name="ISOProjectGroup">
|
135
46
|
<zeroOrMore>
|
136
47
|
<ref name="agency"/>
|
@@ -148,21 +59,11 @@
|
|
148
59
|
<ref name="secretariat"/>
|
149
60
|
</optional>
|
150
61
|
</define>
|
151
|
-
<define name="approvalgroup">
|
152
|
-
<element name="approvalgroup">
|
153
|
-
<ref name="ISOProjectGroup"/>
|
154
|
-
</element>
|
155
|
-
</define>
|
156
62
|
<define name="agency">
|
157
63
|
<element name="agency">
|
158
64
|
<text/>
|
159
65
|
</element>
|
160
66
|
</define>
|
161
|
-
<define name="horizontal">
|
162
|
-
<element name="horizontal">
|
163
|
-
<data type="boolean"/>
|
164
|
-
</element>
|
165
|
-
</define>
|
166
67
|
<define name="documentnumber">
|
167
68
|
<element name="project-number">
|
168
69
|
<optional>
|
@@ -221,11 +122,4 @@
|
|
221
122
|
<text/>
|
222
123
|
</element>
|
223
124
|
</define>
|
224
|
-
<define name="coverimages">
|
225
|
-
<element name="coverimages">
|
226
|
-
<oneOrMore>
|
227
|
-
<ref name="image"/>
|
228
|
-
</oneOrMore>
|
229
|
-
</element>
|
230
|
-
</define>
|
231
125
|
</grammar>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Metanorma
|
2
|
+
module JIS
|
3
|
+
class Converter < ISO::Converter
|
4
|
+
def doctype_validate(xmldoc)
|
5
|
+
doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
|
6
|
+
%w(japanese-industrial-standard technical-report
|
7
|
+
technical-specification amendment).include? doctype or
|
8
|
+
@log.add("Document Attributes", nil,
|
9
|
+
"#{doctype} is not a recognised document type")
|
10
|
+
end
|
11
|
+
|
12
|
+
def script_validate(xmldoc)
|
13
|
+
script = xmldoc&.at("//bibdata/script")&.text
|
14
|
+
%w(Jpan Latn).include?(script) or
|
15
|
+
@log.add("Document Attributes", nil,
|
16
|
+
"#{script} is not a recognised script")
|
17
|
+
end
|
18
|
+
|
19
|
+
def validate(doc)
|
20
|
+
content_validate(doc)
|
21
|
+
schema_validate(formattedstr_strip(doc.dup),
|
22
|
+
File.join(File.dirname(__FILE__), "jis.rng"))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
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.3
|
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-03-
|
11
|
+
date: 2023-03-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-iso
|
@@ -254,12 +254,15 @@ files:
|
|
254
254
|
- lib/isodoc/jis/html/wordstyle.css
|
255
255
|
- lib/isodoc/jis/html/wordstyle.scss
|
256
256
|
- lib/isodoc/jis/html_convert.rb
|
257
|
+
- lib/isodoc/jis/i18n-en.yaml
|
257
258
|
- lib/isodoc/jis/i18n-ja.yaml
|
258
259
|
- lib/isodoc/jis/i18n.rb
|
259
260
|
- lib/isodoc/jis/init.rb
|
261
|
+
- lib/isodoc/jis/jis.international-standard.xsl
|
260
262
|
- lib/isodoc/jis/metadata.rb
|
261
263
|
- lib/isodoc/jis/pdf_convert.rb
|
262
264
|
- lib/isodoc/jis/presentation_xml_convert.rb
|
265
|
+
- lib/isodoc/jis/word_cleanup.rb
|
263
266
|
- lib/isodoc/jis/word_convert.rb
|
264
267
|
- lib/isodoc/jis/xref.rb
|
265
268
|
- lib/metanorma-jis.rb
|
@@ -267,6 +270,7 @@ files:
|
|
267
270
|
- lib/metanorma/jis/basicdoc.rng
|
268
271
|
- lib/metanorma/jis/biblio-standoc.rng
|
269
272
|
- lib/metanorma/jis/biblio.rng
|
273
|
+
- lib/metanorma/jis/cleanup.rb
|
270
274
|
- lib/metanorma/jis/converter.rb
|
271
275
|
- lib/metanorma/jis/front.rb
|
272
276
|
- lib/metanorma/jis/isodoc.rng
|
@@ -275,6 +279,7 @@ files:
|
|
275
279
|
- lib/metanorma/jis/processor.rb
|
276
280
|
- lib/metanorma/jis/relaton-jis.rng
|
277
281
|
- lib/metanorma/jis/reqt.rng
|
282
|
+
- lib/metanorma/jis/validate.rb
|
278
283
|
- lib/metanorma/jis/version.rb
|
279
284
|
- metanorma-jis.gemspec
|
280
285
|
homepage: https://github.com/metanorma/metanorma-jis
|