metanorma-jis 0.4.0 → 0.4.1
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/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.1"
|
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.1
|
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-09 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.1
|
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.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: pubid
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|