metanorma-jis 0.4.0 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isodoc/jis/base_convert.rb +5 -4
- data/lib/isodoc/jis/figure.rb +1 -1
- data/lib/isodoc/jis/html/isodoc.css +1 -1
- data/lib/isodoc/jis/html/isodoc.scss +1 -1
- data/lib/isodoc/jis/init.rb +10 -2
- data/lib/isodoc/jis/jis.international-standard.xsl +1069 -322
- data/lib/isodoc/jis/presentation_section.rb +2 -1
- data/lib/isodoc/jis/presentation_xml_convert.rb +6 -4
- data/lib/isodoc/jis/table.rb +1 -1
- data/lib/isodoc/jis/word_convert.rb +6 -6
- data/lib/isodoc/jis/xref.rb +72 -34
- data/lib/metanorma/jis/isodoc.rng +1 -1
- data/lib/metanorma/jis/version.rb +1 -1
- data/lib/relaton/render-jis/general.rb +1 -1
- data/metanorma-jis.gemspec +1 -1
- metadata +4 -4
@@ -10,7 +10,7 @@ module IsoDoc
|
|
10
10
|
if t = elem.at(ns("./title"))
|
11
11
|
t.children = "<strong>#{to_xml(t.children)}</strong>"
|
12
12
|
end
|
13
|
-
prefix_name(elem, "<br/>", lbl, "title")
|
13
|
+
prefix_name(elem, { caption: "<br/>" }, lbl, "title")
|
14
14
|
end
|
15
15
|
|
16
16
|
def annex(docxml)
|
@@ -31,6 +31,7 @@ module IsoDoc
|
|
31
31
|
t = elem.elements.first
|
32
32
|
commentary_title_hdr(t)
|
33
33
|
middle_title_main(t, "CommentaryStandardName")
|
34
|
+
prefix_name(elem, {}, nil, "title")
|
34
35
|
end
|
35
36
|
|
36
37
|
def commentary_title_hdr(elem)
|
@@ -60,7 +60,8 @@ module IsoDoc
|
|
60
60
|
def dl_to_para(node)
|
61
61
|
ret = dl_to_para_name(node)
|
62
62
|
ret += dl_to_para_terms(node)
|
63
|
-
node.elements.reject { |n| %w(dt dd name).include?(n.name) }
|
63
|
+
node.elements.reject { |n| %w(dt dd name fmt-name).include?(n.name) }
|
64
|
+
.each do |x|
|
64
65
|
ret += x.to_xml
|
65
66
|
end
|
66
67
|
dl_id_insert(node, ret)
|
@@ -74,7 +75,7 @@ module IsoDoc
|
|
74
75
|
end
|
75
76
|
|
76
77
|
def dl_to_para_name(node)
|
77
|
-
e = node.at(ns("./name")) or return ""
|
78
|
+
e = node.at(ns("./fmt-name")) or return ""
|
78
79
|
"<p class='ListTitle'>#{e.children.to_xml}</p>"
|
79
80
|
end
|
80
81
|
|
@@ -96,8 +97,9 @@ module IsoDoc
|
|
96
97
|
def table1(node)
|
97
98
|
super
|
98
99
|
cols = table_cols_count(node)
|
99
|
-
|
100
|
-
|
100
|
+
ins = node.at(ns("./fmt-xref-label")) ||
|
101
|
+
node.at(ns("./fmt-name"))
|
102
|
+
thead = table_thead_pt(node, ins)
|
101
103
|
table_unit_note(node, thead, cols)
|
102
104
|
end
|
103
105
|
|
data/lib/isodoc/jis/table.rb
CHANGED
@@ -66,9 +66,9 @@ module IsoDoc
|
|
66
66
|
def norm_ref(node, out)
|
67
67
|
node["hidden"] != "true" or return
|
68
68
|
out.div class: "normref_div" do |div|
|
69
|
-
clause_name(node, node.at(ns("./title")), div, nil)
|
69
|
+
clause_name(node, node.at(ns("./fmt-title")), div, nil)
|
70
70
|
if node.name == "clause"
|
71
|
-
node.elements.each { |e| parse(e, div) unless e.name == "title" }
|
71
|
+
node.elements.each { |e| parse(e, div) unless e.name == "fmt-title" }
|
72
72
|
else biblio_list(node, div, false)
|
73
73
|
end
|
74
74
|
end
|
@@ -79,7 +79,7 @@ module IsoDoc
|
|
79
79
|
page_break(out)
|
80
80
|
out.div class: "bibliography" do |div|
|
81
81
|
div.h1 class: "Section3" do |h1|
|
82
|
-
node.at(ns("./title"))&.children&.each { |c2| parse(c2, h1) }
|
82
|
+
node.at(ns("./fmt-title"))&.children&.each { |c2| parse(c2, h1) }
|
83
83
|
end
|
84
84
|
biblio_list(node, div, true)
|
85
85
|
end
|
@@ -101,10 +101,10 @@ module IsoDoc
|
|
101
101
|
|
102
102
|
def introduction(clause, out)
|
103
103
|
out.div class: "Section3", id: clause["id"] do |div|
|
104
|
-
clause_name(clause, clause.at(ns("./title")), div,
|
104
|
+
clause_name(clause, clause.at(ns("./fmt-title")), div,
|
105
105
|
{ class: "IntroTitle" })
|
106
106
|
clause.elements.each do |e|
|
107
|
-
parse(e, div) unless e.name == "title"
|
107
|
+
parse(e, div) unless e.name == "fmt-title"
|
108
108
|
end
|
109
109
|
end
|
110
110
|
end
|
@@ -150,7 +150,7 @@ module IsoDoc
|
|
150
150
|
def render_annex(out, clause)
|
151
151
|
out.div **attr_code(annex_attrs(clause)) do |s|
|
152
152
|
clause.elements.each do |c1|
|
153
|
-
if c1.name == "title" then annex_name(clause, c1, s)
|
153
|
+
if c1.name == "fmt-title" then annex_name(clause, c1, s)
|
154
154
|
else parse(c1, s)
|
155
155
|
end
|
156
156
|
end
|
data/lib/isodoc/jis/xref.rb
CHANGED
@@ -24,19 +24,19 @@ module IsoDoc
|
|
24
24
|
class Xref < IsoDoc::Iso::Xref
|
25
25
|
attr_accessor :autonumbering_style
|
26
26
|
|
27
|
-
def
|
27
|
+
def clausesep
|
28
28
|
@autonumbering_style == :japanese ? "\u30fb" : "."
|
29
29
|
end
|
30
30
|
|
31
|
-
def clause_counter(num, opts)
|
31
|
+
def clause_counter(num, opts = { })
|
32
32
|
opts[:numerals] ||= @autonumbering_style
|
33
|
-
opts[:separator] ||=
|
33
|
+
opts[:separator] ||= clausesep
|
34
34
|
super
|
35
35
|
end
|
36
36
|
|
37
|
-
def list_counter(num, opts)
|
37
|
+
def list_counter(num, opts = { })
|
38
38
|
opts[:numerals] ||= @autonumbering_style
|
39
|
-
opts[:separator] ||=
|
39
|
+
opts[:separator] ||= clausesep
|
40
40
|
IsoDoc::Jis::Counter.new(num, opts)
|
41
41
|
end
|
42
42
|
|
@@ -44,13 +44,43 @@ module IsoDoc
|
|
44
44
|
@lang == "ja" ? "の" : super
|
45
45
|
end
|
46
46
|
|
47
|
-
def
|
47
|
+
def hierreqtsep
|
48
|
+
@lang == "ja" ? "の" : super
|
49
|
+
end
|
50
|
+
|
51
|
+
# KILL
|
52
|
+
def subfigure_labelx(subfignum)
|
48
53
|
subfignum.zero? and return ""
|
49
54
|
sep = @lang == "ja" ? "の" : " "
|
50
55
|
"#{sep}#{(subfignum + 96).chr})"
|
51
56
|
end
|
52
57
|
|
53
|
-
def
|
58
|
+
def subfigure_label(subfignum)
|
59
|
+
subfignum.zero? and return
|
60
|
+
(subfignum + 96).chr
|
61
|
+
end
|
62
|
+
|
63
|
+
def subfigure_delim
|
64
|
+
")"
|
65
|
+
end
|
66
|
+
|
67
|
+
# taken from isodoc to override ISO
|
68
|
+
def subfigure_anchor(elem, sublabel, label, klass, container: false)
|
69
|
+
figlabel = fig_subfig_label(label, sublabel)
|
70
|
+
@anchors[elem["id"]] = anchor_struct(
|
71
|
+
figlabel, elem, @labels[klass] || klass.capitalize, klass,
|
72
|
+
{ unnumb: elem["unnumbered"], container: }
|
73
|
+
)
|
74
|
+
if elem["unnumbered"] != "true"
|
75
|
+
x = semx(elem, sublabel)
|
76
|
+
@anchors[elem["id"]][:label] = x
|
77
|
+
@anchors[elem["id"]][:xref] = @anchors[elem.parent["id"]][:xref] +
|
78
|
+
subfigure_separator(markup: true) + x + delim_wrap(subfigure_delim)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
# KILL
|
83
|
+
def annex_name_lblx(clause, num)
|
54
84
|
obl = "(#{@labels['inform_annex']})"
|
55
85
|
clause["obligation"] == "normative" and
|
56
86
|
obl = "(#{@labels['norm_annex']})"
|
@@ -59,19 +89,16 @@ module IsoDoc
|
|
59
89
|
"#{title} #{num}<br/>#{obl}"
|
60
90
|
end
|
61
91
|
|
62
|
-
def
|
63
|
-
|
64
|
-
{ xref: num, label: num, level: level,
|
65
|
-
subtype: "annex" }
|
92
|
+
def annex_name_lbl(clause, num)
|
93
|
+
super.gsub(%r{</?strong>}, "")
|
66
94
|
end
|
67
95
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
end
|
96
|
+
def annex_name_anchors1(clause, num, level)
|
97
|
+
super
|
98
|
+
# undo ISO "Clause A.2" in favour of "A.2"
|
99
|
+
level == 2 and
|
100
|
+
@anchors[clause["id"]][:xref] = semx(clause, num)
|
101
|
+
end
|
75
102
|
|
76
103
|
def clause_order_main(docxml)
|
77
104
|
[
|
@@ -128,31 +155,34 @@ module IsoDoc
|
|
128
155
|
end
|
129
156
|
|
130
157
|
def commentary_names(clause)
|
158
|
+
#require "debug" ; binding.b
|
131
159
|
preface_name_anchors(clause, 1, clause_title(clause))
|
132
160
|
clause.xpath(ns(SUBCLAUSES))
|
133
161
|
.each_with_object(clause_counter(0, {})) do |c, i|
|
134
|
-
commentary_names1(c, clause["id"], i.increment(c).print, 2)
|
162
|
+
commentary_names1(c, clause["id"], nil, i.increment(c).print, 2)
|
135
163
|
end
|
136
164
|
end
|
137
165
|
|
138
|
-
def commentary_names1(clause, root, num, level)
|
139
|
-
|
166
|
+
def commentary_names1(clause, root, parentnum, num, level)
|
167
|
+
lbl = clause_number_semx(parentnum, clause, num)
|
168
|
+
commentary_name_anchors(clause, lbl, root, level)
|
140
169
|
clause.xpath(ns(SUBCLAUSES))
|
141
|
-
.each_with_object(clause_counter(0
|
142
|
-
commentary_names1(c, root, i.increment(c).print,
|
170
|
+
.each_with_object(clause_counter(0)) do |c, i|
|
171
|
+
commentary_names1(c, root, lbl, i.increment(c).print,
|
143
172
|
level + 1)
|
144
173
|
end
|
145
174
|
end
|
146
175
|
|
147
176
|
def commentary_name_anchors(clause, num, root, level)
|
148
177
|
@anchors[clause["id"]] =
|
149
|
-
{ label: num, xref:
|
178
|
+
{ label: num, xref: labelled_autonum(@labels["clause"], num),
|
150
179
|
container: root,
|
151
180
|
title: clause_title(clause), level: level, type: "clause",
|
152
181
|
elem: @labels["clause"] }
|
153
182
|
end
|
154
183
|
|
155
|
-
|
184
|
+
# KILL ?
|
185
|
+
def list_item_anchor_namesx(list, list_anchor, depth, prev_label,
|
156
186
|
refer_list)
|
157
187
|
c = list_counter(list["start"] ? list["start"].to_i - 1 : 0, {})
|
158
188
|
list.xpath(ns("./li")).each do |li|
|
@@ -161,10 +191,11 @@ refer_list)
|
|
161
191
|
{ list_anchor: list_anchor,
|
162
192
|
prev_label: prev_label,
|
163
193
|
refer_list: depth == 1 ? refer_list : nil })
|
164
|
-
li["id"]
|
194
|
+
li["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
195
|
+
@anchors[li["id"]] =
|
165
196
|
{ label: bare_label,
|
166
197
|
bare_xref: "#{bare_label})",
|
167
|
-
xref: "#{label}
|
198
|
+
xref: "#{label}#{list_item_delim}", type: "listitem",
|
168
199
|
refer_list: refer_list,
|
169
200
|
container: list_anchor[:container] }
|
170
201
|
(li.xpath(ns(".//ol")) - li.xpath(ns(".//ol//ol"))).each do |ol|
|
@@ -174,16 +205,23 @@ refer_list)
|
|
174
205
|
end
|
175
206
|
end
|
176
207
|
|
208
|
+
# KILL
|
209
|
+
def list_anchor_names(s)
|
210
|
+
super
|
211
|
+
#require "debug"; binding.b
|
212
|
+
end
|
213
|
+
|
177
214
|
def list_item_value(entry, counter, depth, opts)
|
178
|
-
label1 = counter.increment(entry).listlabel(entry.parent, depth)
|
179
215
|
if depth > 2
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
216
|
+
# require 'debug'; binding.b
|
217
|
+
label = counter.increment(entry).listlabel(entry.parent, depth)
|
218
|
+
s = semx(entry, label)
|
219
|
+
base = @c.decode(opts[:prev_label].gsub(%r{<[^>]+>}, "")).split(/\)\s*/) # List a) 1.1.1
|
220
|
+
label = "#{base[-1].sub(/^の/,'')}#{clausesep}#{label}"
|
221
|
+
#[label, J=list_item_anchor_label(opts[:prev_label] + delim_wrap(clause_sep) + s, opts[:list_anchor], base[0].sub(/[\p{Zs})]+$/, ""), opts[:refer_list])]
|
222
|
+
[label, opts[:prev_label] + delim_wrap(clausesep) + s]
|
184
223
|
else
|
185
|
-
|
186
|
-
opts[:refer_list])]
|
224
|
+
super
|
187
225
|
end
|
188
226
|
end
|
189
227
|
end
|
@@ -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 v1.4.
|
20
|
+
<!-- VERSION v1.4.1 -->
|
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">
|
@@ -20,7 +20,7 @@ module Relaton
|
|
20
20
|
r = doc.relation.select { |x| x.type == "hasRepresentation" }
|
21
21
|
.map { |x| @i18n.also_pub_as + render_single_bibitem(x.bibitem) }
|
22
22
|
out = [render_single_bibitem(doc)] + r
|
23
|
-
@i18n.l10n(out.join(". ").gsub(
|
23
|
+
@i18n.l10n(out.join(". ").gsub(/[.。]\. /, ". ").sub(/[.。]\s*$/, ""))
|
24
24
|
end
|
25
25
|
|
26
26
|
def render_all(bib, type: "author-date")
|
data/metanorma-jis.gemspec
CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
|
32
32
|
|
33
33
|
spec.add_dependency "japanese_calendar", "~> 0"
|
34
|
-
spec.add_dependency "metanorma-iso", "~> 2.9.
|
34
|
+
spec.add_dependency "metanorma-iso", "~> 2.9.2"
|
35
35
|
spec.add_dependency "pubid"
|
36
36
|
|
37
37
|
spec.add_development_dependency "debug"
|
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.4.
|
4
|
+
version: 0.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: 2024-
|
11
|
+
date: 2024-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: japanese_calendar
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.9.
|
33
|
+
version: 2.9.2
|
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: 2.9.
|
40
|
+
version: 2.9.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pubid
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|