isodoc 2.4.5 → 2.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/isodoc/base_style/all.css +4 -0
- data/lib/isodoc/base_style/reset.css +4 -0
- data/lib/isodoc/base_style/reset.scss +6 -0
- data/lib/isodoc/function/blocks.rb +2 -14
- data/lib/isodoc/function/cleanup.rb +3 -3
- data/lib/isodoc/function/lists.rb +1 -1
- data/lib/isodoc/function/references.rb +1 -1
- data/lib/isodoc/function/section.rb +10 -10
- data/lib/isodoc/function/section_titles.rb +10 -10
- data/lib/isodoc/function/to_word_html.rb +5 -4
- data/lib/isodoc/html_function/postprocess_cover.rb +19 -10
- data/lib/isodoc/metadata.rb +12 -4
- data/lib/isodoc/presentation_function/block.rb +8 -0
- data/lib/isodoc/presentation_function/erefs.rb +4 -3
- data/lib/isodoc/presentation_function/xrefs.rb +1 -1
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +4 -12
- data/lib/isodoc-yaml/i18n-ar.yaml +1 -0
- data/lib/isodoc-yaml/i18n-de.yaml +1 -0
- data/lib/isodoc-yaml/i18n-en.yaml +1 -0
- data/lib/isodoc-yaml/i18n-es.yaml +1 -0
- data/lib/isodoc-yaml/i18n-fr.yaml +1 -0
- data/lib/isodoc-yaml/i18n-ru.yaml +1 -0
- data/lib/isodoc-yaml/i18n-zh-Hans.yaml +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 15d6f1ca680a6bb801c444655ba27e347ca04a671c207b9a74ad4c6388596394
|
|
4
|
+
data.tar.gz: 02e6caa0ae2463bd2966ee14a9837c0d1b1b4cfac77596380bbb3856979ee142
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 857b7630d0a1146e5070b3ced33eb99b40089cf114181b6519cd1e26a5c17fc8b1e36dfe59ea115055fb2f8cbf901c57b7ad730fe39878e0cf589201eb06222a
|
|
7
|
+
data.tar.gz: 4ca7278d7571fc4aa64fa6443a373d77d352ffe64b79086ef142aad1260a25e57589023707a153bb54cae60bd4e441d2ed116a33f18db2905907b61b5c14875f
|
|
@@ -10,8 +10,7 @@ module IsoDoc
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def figure_name_parse(_node, div, name)
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
name.nil? and return
|
|
15
14
|
div.p class: "FigureTitle", style: "text-align:center;" do |p|
|
|
16
15
|
name.children.each { |n| parse(n, p) }
|
|
17
16
|
end
|
|
@@ -110,16 +109,6 @@ module IsoDoc
|
|
|
110
109
|
end
|
|
111
110
|
end
|
|
112
111
|
|
|
113
|
-
def formula_where(dlist, out)
|
|
114
|
-
return unless dlist
|
|
115
|
-
|
|
116
|
-
out.p style: "page-break-after:avoid;" do |p|
|
|
117
|
-
p << @i18n.where
|
|
118
|
-
end
|
|
119
|
-
parse(dlist, out)
|
|
120
|
-
out.parent.at("./dl")["class"] = "formula_dl"
|
|
121
|
-
end
|
|
122
|
-
|
|
123
112
|
def formula_parse1(node, out)
|
|
124
113
|
out.div **attr_code(class: "formula") do |div|
|
|
125
114
|
div.p do |_p|
|
|
@@ -139,9 +128,8 @@ module IsoDoc
|
|
|
139
128
|
def formula_parse(node, out)
|
|
140
129
|
out.div **formula_attrs(node) do |div|
|
|
141
130
|
formula_parse1(node, div)
|
|
142
|
-
formula_where(node.at(ns("./dl")), div)
|
|
143
131
|
node.children.each do |n|
|
|
144
|
-
next if %w(stem
|
|
132
|
+
next if %w(stem name).include? n.name
|
|
145
133
|
|
|
146
134
|
parse(n, div)
|
|
147
135
|
end
|
|
@@ -88,7 +88,7 @@ module IsoDoc
|
|
|
88
88
|
end
|
|
89
89
|
|
|
90
90
|
FIGURE_WITH_FOOTNOTES =
|
|
91
|
-
"//div[@class = 'figure'][descendant::aside]"\
|
|
91
|
+
"//div[@class = 'figure'][descendant::aside]" \
|
|
92
92
|
"[not(descendant::div[@class = 'figure'])]".freeze
|
|
93
93
|
|
|
94
94
|
def figure_aside_process(elem, aside, key)
|
|
@@ -159,7 +159,7 @@ module IsoDoc
|
|
|
159
159
|
end
|
|
160
160
|
|
|
161
161
|
def table_footnote_cleanup_propagate(docxml)
|
|
162
|
-
docxml.xpath("//p[not(self::*[@class])]"\
|
|
162
|
+
docxml.xpath("//p[not(self::*[@class])]" \
|
|
163
163
|
"[ancestor::*[@class = 'TableFootnote']]").each do |p|
|
|
164
164
|
p["class"] = "TableFootnote"
|
|
165
165
|
end
|
|
@@ -194,7 +194,7 @@ module IsoDoc
|
|
|
194
194
|
end
|
|
195
195
|
|
|
196
196
|
def table_note_cleanup(docxml)
|
|
197
|
-
docxml.xpath("//table[div[@class = 'Note' or "\
|
|
197
|
+
docxml.xpath("//table[div[@class = 'Note' or " \
|
|
198
198
|
"@class = 'TableFootnote']]").each do |t|
|
|
199
199
|
tfoot = table_get_or_make_tfoot(t)
|
|
200
200
|
insert_here = new_fullcolspan_row(t, tfoot)
|
|
@@ -153,7 +153,7 @@ module IsoDoc
|
|
|
153
153
|
return num
|
|
154
154
|
out.div do |div|
|
|
155
155
|
num += 1
|
|
156
|
-
clause_name(
|
|
156
|
+
clause_name(f, f.at(ns("./title")), div, nil)
|
|
157
157
|
if f.name == "clause"
|
|
158
158
|
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
|
159
159
|
else biblio_list(f, div, false)
|
|
@@ -20,7 +20,7 @@ module IsoDoc
|
|
|
20
20
|
def clause(isoxml, out)
|
|
21
21
|
isoxml.xpath(ns(middle_clause(isoxml))).each do |c|
|
|
22
22
|
out.div **attr_code(clause_attrs(c)) do |s|
|
|
23
|
-
clause_name(
|
|
23
|
+
clause_name(c, c&.at(ns("./title")), s, nil)
|
|
24
24
|
c.elements.reject { |c1| c1.name == "title" }.each do |c1|
|
|
25
25
|
parse(c1, s)
|
|
26
26
|
end
|
|
@@ -50,7 +50,7 @@ module IsoDoc
|
|
|
50
50
|
f = isoxml.at(ns("//clause[@type = 'scope']")) or return num
|
|
51
51
|
out.div **attr_code(id: f["id"]) do |div|
|
|
52
52
|
num = num + 1
|
|
53
|
-
clause_name(
|
|
53
|
+
clause_name(f, f&.at(ns("./title")), div, nil)
|
|
54
54
|
f.elements.each do |e|
|
|
55
55
|
parse(e, div) unless e.name == "title"
|
|
56
56
|
end
|
|
@@ -65,7 +65,7 @@ module IsoDoc
|
|
|
65
65
|
f = isoxml.at(ns(TERM_CLAUSE)) or return num
|
|
66
66
|
out.div **attr_code(id: f["id"]) do |div|
|
|
67
67
|
num = num + 1
|
|
68
|
-
clause_name(
|
|
68
|
+
clause_name(f, f&.at(ns("./title")), div, nil)
|
|
69
69
|
f.elements.each do |e|
|
|
70
70
|
parse(e, div) unless %w{title source}.include? e.name
|
|
71
71
|
end
|
|
@@ -82,7 +82,7 @@ module IsoDoc
|
|
|
82
82
|
f = isoxml.at(ns("//sections/definitions")) or return num
|
|
83
83
|
out.div **attr_code(id: f["id"], class: "Symbols") do |div|
|
|
84
84
|
num = num + 1
|
|
85
|
-
clause_name(
|
|
85
|
+
clause_name(f, f.at(ns("./title")), div, nil)
|
|
86
86
|
f.elements.each do |e|
|
|
87
87
|
parse(e, div) unless e.name == "title"
|
|
88
88
|
end
|
|
@@ -101,7 +101,7 @@ module IsoDoc
|
|
|
101
101
|
f = isoxml.at(ns("//introduction")) || return
|
|
102
102
|
page_break(out)
|
|
103
103
|
out.div class: "Section3", id: f["id"] do |div|
|
|
104
|
-
clause_name(
|
|
104
|
+
clause_name(f, f.at(ns("./title")), div, { class: "IntroTitle" })
|
|
105
105
|
f.elements.each do |e|
|
|
106
106
|
parse(e, div) unless e.name == "title"
|
|
107
107
|
end
|
|
@@ -112,7 +112,7 @@ module IsoDoc
|
|
|
112
112
|
f = isoxml.at(ns("//foreword")) || return
|
|
113
113
|
page_break(out)
|
|
114
114
|
out.div **attr_code(id: f["id"]) do |s|
|
|
115
|
-
clause_name(
|
|
115
|
+
clause_name(f, f.at(ns("./title")) || @i18n.foreword, s,
|
|
116
116
|
{ class: "ForewordTitle" })
|
|
117
117
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
|
118
118
|
end
|
|
@@ -123,7 +123,7 @@ module IsoDoc
|
|
|
123
123
|
title_attr = { class: "IntroTitle" }
|
|
124
124
|
page_break(out)
|
|
125
125
|
out.div class: "Section3", id: f["id"] do |div|
|
|
126
|
-
clause_name(
|
|
126
|
+
clause_name(f, f&.at(ns("./title")), div, title_attr)
|
|
127
127
|
f.elements.each do |e|
|
|
128
128
|
parse(e, div) unless e.name == "title"
|
|
129
129
|
end
|
|
@@ -134,7 +134,7 @@ module IsoDoc
|
|
|
134
134
|
f = isoxml.at(ns("//preface/abstract")) || return
|
|
135
135
|
page_break(out)
|
|
136
136
|
out.div **attr_code(id: f["id"]) do |s|
|
|
137
|
-
clause_name(
|
|
137
|
+
clause_name(f, f.at(ns("./title")), s, { class: "AbstractTitle" })
|
|
138
138
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
|
139
139
|
end
|
|
140
140
|
end
|
|
@@ -144,7 +144,7 @@ module IsoDoc
|
|
|
144
144
|
"//preface/definitions | //preface/terms")).each do |f|
|
|
145
145
|
page_break(out)
|
|
146
146
|
out.div class: "Section3", id: f["id"] do |div|
|
|
147
|
-
clause_name(
|
|
147
|
+
clause_name(f, f&.at(ns("./title")), div, { class: "IntroTitle" })
|
|
148
148
|
f.elements.each do |e|
|
|
149
149
|
parse(e, div) unless e.name == "title"
|
|
150
150
|
end
|
|
@@ -157,7 +157,7 @@ module IsoDoc
|
|
|
157
157
|
page_break(out)
|
|
158
158
|
isoxml.xpath(ns("//colophon/clause")).each do |f|
|
|
159
159
|
out.div class: "Section3", id: f["id"] do |div|
|
|
160
|
-
clause_name(
|
|
160
|
+
clause_name(f, f&.at(ns("./title")), div, { class: "IntroTitle" })
|
|
161
161
|
f.elements.each do |e|
|
|
162
162
|
parse(e, div) unless e.name == "title"
|
|
163
163
|
end
|
|
@@ -10,7 +10,7 @@ module IsoDoc
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def inline_header_title(out, node, title)
|
|
13
|
-
out.span
|
|
13
|
+
out.span class: "zzMoveToFollowing" do |s|
|
|
14
14
|
s.b do |b|
|
|
15
15
|
title&.children&.each { |c2| parse(c2, b) }
|
|
16
16
|
clausedelimspace(node, out) if /\S/.match?(title&.text)
|
|
@@ -38,15 +38,15 @@ module IsoDoc
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
def clause_title_depth(node, title)
|
|
41
|
-
depth = node.ancestors("clause, annex, terms, references, "\
|
|
42
|
-
"definitions, acknowledgements, introduction, "\
|
|
41
|
+
depth = node.ancestors("clause, annex, terms, references, " \
|
|
42
|
+
"definitions, acknowledgements, introduction, " \
|
|
43
43
|
"foreword").size + 1
|
|
44
44
|
depth = title["depth"] if title && title["depth"]
|
|
45
45
|
depth
|
|
46
46
|
end
|
|
47
47
|
|
|
48
48
|
def clause_parse_subtitle(title, heading)
|
|
49
|
-
if var = title&.at("./following-sibling::xmlns:variant-title"\
|
|
49
|
+
if var = title&.at("./following-sibling::xmlns:variant-title" \
|
|
50
50
|
"[@type = 'sub']")&.remove
|
|
51
51
|
heading.br nil
|
|
52
52
|
heading.br nil
|
|
@@ -55,8 +55,8 @@ module IsoDoc
|
|
|
55
55
|
end
|
|
56
56
|
|
|
57
57
|
# top level clause names
|
|
58
|
-
def clause_name(
|
|
59
|
-
preceding_floating_titles(
|
|
58
|
+
def clause_name(node, title, div, header_class)
|
|
59
|
+
preceding_floating_titles(node, div)
|
|
60
60
|
header_class = {} if header_class.nil?
|
|
61
61
|
div.h1 **attr_code(header_class) do |h1|
|
|
62
62
|
if title.is_a?(String) then h1 << title
|
|
@@ -72,7 +72,7 @@ module IsoDoc
|
|
|
72
72
|
preceding_floating_titles(name, div)
|
|
73
73
|
return if name.nil?
|
|
74
74
|
|
|
75
|
-
div.h1
|
|
75
|
+
div.h1 class: "Annex" do |t|
|
|
76
76
|
name.children.each { |c2| parse(c2, t) }
|
|
77
77
|
clause_parse_subtitle(name, t)
|
|
78
78
|
end
|
|
@@ -85,10 +85,10 @@ module IsoDoc
|
|
|
85
85
|
end
|
|
86
86
|
end
|
|
87
87
|
|
|
88
|
-
def preceding_floating_titles(
|
|
89
|
-
return if
|
|
88
|
+
def preceding_floating_titles(node, div)
|
|
89
|
+
return if node.nil?
|
|
90
90
|
|
|
91
|
-
out =
|
|
91
|
+
out = node.xpath("./preceding-sibling::*")
|
|
92
92
|
.reverse.each_with_object([]) do |p, m|
|
|
93
93
|
break m unless p.name == "p"
|
|
94
94
|
|
|
@@ -112,16 +112,17 @@ module IsoDoc
|
|
|
112
112
|
@meta.url isoxml, out
|
|
113
113
|
@meta.keywords isoxml, out
|
|
114
114
|
@meta.note isoxml, out
|
|
115
|
+
@meta.presentation isoxml, out
|
|
115
116
|
@meta.get
|
|
116
117
|
end
|
|
117
118
|
|
|
118
119
|
def middle(isoxml, out)
|
|
119
120
|
middle_title(isoxml, out)
|
|
120
121
|
middle_admonitions(isoxml, out)
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
symbols_abbrevs isoxml, out,
|
|
122
|
+
scope isoxml, out, 0
|
|
123
|
+
norm_ref isoxml, out, 0
|
|
124
|
+
terms_defs isoxml, out, 0
|
|
125
|
+
symbols_abbrevs isoxml, out, 0
|
|
125
126
|
clause isoxml, out
|
|
126
127
|
annex isoxml, out
|
|
127
128
|
bibliography isoxml, out
|
|
@@ -100,12 +100,14 @@ module IsoDoc
|
|
|
100
100
|
#{header_strip(content)}</a></li>)
|
|
101
101
|
end
|
|
102
102
|
|
|
103
|
+
# array of arrays, one per level, containing XPath fragments for the elems
|
|
104
|
+
# matching that ToC level
|
|
103
105
|
def toclevel_classes
|
|
104
|
-
(1..@htmlToClevels).reduce([]) { |m, i| m << "h#{i}" }
|
|
106
|
+
(1..@htmlToClevels).reduce([]) { |m, i| m << ["h#{i}"] }
|
|
105
107
|
end
|
|
106
108
|
|
|
107
109
|
def toclevel
|
|
108
|
-
ret = toclevel_classes.map do |l|
|
|
110
|
+
ret = toclevel_classes.flatten.map do |l|
|
|
109
111
|
"#{l}:not(:empty):not(.TermNum):not(.noTOC)"
|
|
110
112
|
end
|
|
111
113
|
<<~HEAD.freeze
|
|
@@ -116,18 +118,25 @@ module IsoDoc
|
|
|
116
118
|
# needs to be same output as toclevel
|
|
117
119
|
def html_toc(docxml)
|
|
118
120
|
idx = docxml.at("//div[@id = 'toc']") or return docxml
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
"//main//#{l}#{toc_exclude_class}"
|
|
121
|
+
path = toclevel_classes.map do |x|
|
|
122
|
+
x.map { |l| "//main//#{l}#{toc_exclude_class}" }
|
|
122
123
|
end
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
end
|
|
127
|
-
idx.children = "#{toc}</ul>"
|
|
124
|
+
toc = html_toc_entries(docxml, path)
|
|
125
|
+
.map { |k| k[:entry] }.join("\n")
|
|
126
|
+
idx.children = "<ul>#{toc}</ul>"
|
|
128
127
|
docxml
|
|
129
128
|
end
|
|
130
129
|
|
|
130
|
+
def html_toc_entries(docxml, path)
|
|
131
|
+
path.each_with_index.with_object([]) do |(p, i), m|
|
|
132
|
+
docxml.xpath(p.join(" | ")).each do |h|
|
|
133
|
+
h["id"] ||= "_#{UUIDTools::UUID.random_create}"
|
|
134
|
+
m << { entry: html_toc_entry("h#{i + 1}", h),
|
|
135
|
+
line: h.line }
|
|
136
|
+
end
|
|
137
|
+
end.sort_by { |k| k[:line] }
|
|
138
|
+
end
|
|
139
|
+
|
|
131
140
|
def toc_exclude_class
|
|
132
141
|
"[not(@class = 'TermNum')][not(@class = 'noTOC')]" \
|
|
133
142
|
"[string-length(normalize-space(.))>0]"
|
data/lib/isodoc/metadata.rb
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
1
|
require_relative "./metadata_date"
|
|
4
2
|
require_relative "./metadata_contributor"
|
|
5
3
|
|
|
@@ -39,7 +37,7 @@ module IsoDoc
|
|
|
39
37
|
@metadata[key] = value
|
|
40
38
|
end
|
|
41
39
|
|
|
42
|
-
NOLANG = "[not(@language) or @language = '']"
|
|
40
|
+
NOLANG = "[not(@language) or @language = '']".freeze
|
|
43
41
|
|
|
44
42
|
def currlang
|
|
45
43
|
"[@language = '#{@lang}']"
|
|
@@ -109,7 +107,8 @@ module IsoDoc
|
|
|
109
107
|
|
|
110
108
|
def version(isoxml, _out)
|
|
111
109
|
set(:edition, isoxml&.at(ns("//bibdata/edition#{NOLANG}"))&.text)
|
|
112
|
-
set(:edition_display,
|
|
110
|
+
set(:edition_display,
|
|
111
|
+
isoxml&.at(ns("//bibdata/edition#{currlang}"))&.text)
|
|
113
112
|
set(:docyear, isoxml&.at(ns("//bibdata/copyright/from"))&.text)
|
|
114
113
|
set(:draft, isoxml&.at(ns("//bibdata/version/draft"))&.text)
|
|
115
114
|
revdate = isoxml&.at(ns("//bibdata/version/revision-date"))&.text
|
|
@@ -173,5 +172,14 @@ module IsoDoc
|
|
|
173
172
|
c = isoxml.at(ns("//metanorma-extension/source-highlighter-css")) or return
|
|
174
173
|
set(:code_css, c.text)
|
|
175
174
|
end
|
|
175
|
+
|
|
176
|
+
def presentation(xml, _out)
|
|
177
|
+
xml.xpath(ns("//metanorma-extension/presentation-metadata")).each do |p|
|
|
178
|
+
((n = p.at(ns("./name"))) && (v = p.at(ns("./value")))) or next
|
|
179
|
+
lbl = "presentation_metadata_#{n.text}".to_sym
|
|
180
|
+
m = get[lbl] || []
|
|
181
|
+
set(lbl, m << v.text)
|
|
182
|
+
end
|
|
183
|
+
end
|
|
176
184
|
end
|
|
177
185
|
end
|
|
@@ -31,10 +31,18 @@ module IsoDoc
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
def formula1(elem)
|
|
34
|
+
formula_where(elem.at(ns("./dl")))
|
|
34
35
|
lbl = @xrefs.anchor(elem["id"], :label, false)
|
|
35
36
|
prefix_name(elem, "", lbl, "name")
|
|
36
37
|
end
|
|
37
38
|
|
|
39
|
+
def formula_where(dlist)
|
|
40
|
+
dlist or return
|
|
41
|
+
dlist["class"] = "formula_dl"
|
|
42
|
+
where = dlist.xpath(ns("./dt")).size > 1 ? @i18n.where : @i18n.where_one
|
|
43
|
+
dlist.previous = "<p keep-with-next='true'>#{where}</p>"
|
|
44
|
+
end
|
|
45
|
+
|
|
38
46
|
def example(docxml)
|
|
39
47
|
docxml.xpath(ns("//example")).each { |f| example1(f) }
|
|
40
48
|
end
|
|
@@ -17,10 +17,11 @@ module IsoDoc
|
|
|
17
17
|
|
|
18
18
|
def eref_localities(refs, target, node)
|
|
19
19
|
if can_conflate_eref_rendering?(refs)
|
|
20
|
-
l10n(", #{eref_localities_conflated(refs, target, node)}"
|
|
20
|
+
l10n(", #{eref_localities_conflated(refs, target, node)}"
|
|
21
|
+
.gsub(/\s+/, " "))
|
|
21
22
|
else
|
|
22
23
|
ret = resolve_eref_connectives(eref_locality_stacks(refs, target, node))
|
|
23
|
-
l10n(ret.join)
|
|
24
|
+
l10n(ret.join.gsub(/\s+/, " "))
|
|
24
25
|
end
|
|
25
26
|
end
|
|
26
27
|
|
|
@@ -68,7 +69,7 @@ module IsoDoc
|
|
|
68
69
|
end
|
|
69
70
|
|
|
70
71
|
def resolve_comma_connectives1(locs, locs1, add)
|
|
71
|
-
if [", ", " "].include?(locs[1])
|
|
72
|
+
if [", ", " ", ""].include?(locs[1])
|
|
72
73
|
add += locs[0..2].join
|
|
73
74
|
locs.shift(3)
|
|
74
75
|
else
|
|
@@ -75,7 +75,7 @@ module IsoDoc
|
|
|
75
75
|
def combine_conflated_xref_locations(locs)
|
|
76
76
|
out = locs.each { |l| l[:label] = anchor_value(l[:target]) }
|
|
77
77
|
label = @i18n.inflect(locs.first[:elem], number: "pl")
|
|
78
|
-
out[0][:label] = l10n("#{label} #{out[0][:label]}")
|
|
78
|
+
out[0][:label] = l10n("#{label} #{out[0][:label]}").strip
|
|
79
79
|
combine_conflated_xref_locations_container(locs, l10n(combine_conn(out)))
|
|
80
80
|
end
|
|
81
81
|
|
data/lib/isodoc/version.rb
CHANGED
|
@@ -93,7 +93,7 @@ module IsoDoc
|
|
|
93
93
|
|
|
94
94
|
def dl_parse_table(node, out)
|
|
95
95
|
list_title_parse(node, out)
|
|
96
|
-
out.table class: "dl" do |v|
|
|
96
|
+
out.table class: (node["class"] || "dl") do |v|
|
|
97
97
|
node.elements.select { |n| dt_dd?(n) }
|
|
98
98
|
.each_slice(2) do |dt, dd|
|
|
99
99
|
dl_parse_table1(v, dt, dd)
|
|
@@ -204,14 +204,6 @@ module IsoDoc
|
|
|
204
204
|
)
|
|
205
205
|
end
|
|
206
206
|
|
|
207
|
-
def formula_where(deflist, out)
|
|
208
|
-
return unless deflist
|
|
209
|
-
|
|
210
|
-
out.p { |p| p << @i18n.where }
|
|
211
|
-
parse(deflist, out)
|
|
212
|
-
t = out.parent.at("./table") and t["class"] = "formula_dl"
|
|
213
|
-
end
|
|
214
|
-
|
|
215
207
|
def formula_parse1(node, out)
|
|
216
208
|
out.div **attr_code(class: "formula") do |div|
|
|
217
209
|
div.p do |_p|
|
|
@@ -244,11 +236,11 @@ module IsoDoc
|
|
|
244
236
|
|
|
245
237
|
def info(isoxml, out)
|
|
246
238
|
@tocfigurestitle =
|
|
247
|
-
isoxml
|
|
239
|
+
isoxml.at(ns("//metanorma-extension/toc[@type = 'figure']/title"))&.text
|
|
248
240
|
@toctablestitle =
|
|
249
|
-
isoxml
|
|
241
|
+
isoxml.at(ns("//metanorma-extension/toc[@type = 'table']/title"))&.text
|
|
250
242
|
@tocrecommendationstitle = isoxml
|
|
251
|
-
|
|
243
|
+
.at(ns("//metanorma-extension/toc[@type = 'recommendation']/title"))&.text
|
|
252
244
|
super
|
|
253
245
|
end
|
|
254
246
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: isodoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.5.0
|
|
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-03-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: asciimath
|