isodoc 2.5.3 → 2.5.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/isodoc.gemspec +2 -3
- data/lib/isodoc/function/section.rb +71 -33
- data/lib/isodoc/html_function/html.rb +1 -6
- data/lib/isodoc/html_function/postprocess_cover.rb +10 -2
- data/lib/isodoc/presentation_function/section.rb +95 -1
- data/lib/isodoc/presentation_function/xrefs.rb +2 -1
- data/lib/isodoc/presentation_xml_convert.rb +4 -3
- data/lib/isodoc/version.rb +1 -1
- data/lib/isodoc/word_function/body.rb +13 -6
- data/lib/isodoc/word_function/postprocess_toc.rb +20 -1
- data/lib/isodoc-yaml/i18n-ja.yaml +2 -1
- metadata +16 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3cbf57138d05cbc6fb861e09c867a3f4f3a58d349be341676e3a4ff2ef3b3477
|
4
|
+
data.tar.gz: e201871207c3d77a4be10a66624cd40859baf0a09bf309382f4fb43b2154e0eb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4b543165a879e7e1a4992c6a6bf58baa5b606af5ea83773194666daf4605ac4fb2142a95817b9259c825e9aa1abfcb750e1a0b6d4663ff29225ff6b547958b92
|
7
|
+
data.tar.gz: df54828f56b89b01dea07da527868a7f6fd7cf775b7133d4877856b97d838cbe48d21dbbde53263f61e51d937b6cf278a8e897f00d726ebccf3802e254999e97
|
data/isodoc.gemspec
CHANGED
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.authors = ["Ribose Inc."]
|
9
9
|
spec.email = ["open.source@ribose.com"]
|
10
10
|
|
11
|
-
spec.summary = "Convert documents in IsoDoc into Word and HTML "\
|
11
|
+
spec.summary = "Convert documents in IsoDoc into Word and HTML " \
|
12
12
|
"in AsciiDoc."
|
13
13
|
spec.description = <<~DESCRIPTION
|
14
14
|
isodoc converts documents in the IsoDoc document model into
|
@@ -26,14 +26,13 @@ Gem::Specification.new do |spec|
|
|
26
26
|
f.match(%r{^(test|spec|features|bin|.github)/}) \
|
27
27
|
|| f.match(%r{Rakefile|bin/rspec})
|
28
28
|
end
|
29
|
-
spec.test_files = `git ls-files -- {spec}/*`.split("\n")
|
30
29
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
31
30
|
|
32
31
|
spec.add_dependency "html2doc", "~> 1.5.3"
|
33
32
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
34
33
|
# spec.add_dependency "isodoc-i18n", "~> 1.1.0" # already in relaton-render and mn-requirements
|
35
|
-
spec.add_dependency "liquid", "~> 5"
|
36
34
|
spec.add_dependency "emf2svg"
|
35
|
+
spec.add_dependency "liquid", "~> 5"
|
37
36
|
spec.add_dependency "plurimath"
|
38
37
|
spec.add_dependency "relaton-cli"
|
39
38
|
# spec.add_dependency "metanorma-utils", "~> 1.5.0" # already in isodoc-i18n
|
@@ -96,57 +96,77 @@ module IsoDoc
|
|
96
96
|
clause_parse(isoxml, out)
|
97
97
|
end
|
98
98
|
|
99
|
-
def introduction(
|
100
|
-
f = isoxml.at(ns("//introduction")) || return
|
99
|
+
def introduction(clause, out)
|
101
100
|
page_break(out)
|
102
|
-
out.div class: "Section3", id:
|
103
|
-
clause_name(
|
104
|
-
|
101
|
+
out.div class: "Section3", id: clause["id"] do |div|
|
102
|
+
clause_name(clause, clause.at(ns("./title")), div,
|
103
|
+
{ class: "IntroTitle" })
|
104
|
+
clause.elements.each do |e|
|
105
105
|
parse(e, div) unless e.name == "title"
|
106
106
|
end
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
110
|
-
def foreword(
|
111
|
-
f = isoxml.at(ns("//foreword")) || return
|
110
|
+
def foreword(clause, out)
|
112
111
|
page_break(out)
|
113
|
-
out.div **attr_code(id:
|
114
|
-
clause_name(
|
112
|
+
out.div **attr_code(id: clause["id"]) do |s|
|
113
|
+
clause_name(clause, clause.at(ns("./title")) || @i18n.foreword, s,
|
115
114
|
{ class: "ForewordTitle" })
|
116
|
-
|
115
|
+
clause.elements.each { |e| parse(e, s) unless e.name == "title" }
|
117
116
|
end
|
118
117
|
end
|
119
118
|
|
120
|
-
def acknowledgements(
|
121
|
-
f = isoxml.at(ns("//acknowledgements")) || return
|
119
|
+
def acknowledgements(clause, out)
|
122
120
|
title_attr = { class: "IntroTitle" }
|
123
121
|
page_break(out)
|
124
|
-
out.div class: "Section3", id:
|
125
|
-
clause_name(
|
126
|
-
|
122
|
+
out.div class: "Section3", id: clause["id"] do |div|
|
123
|
+
clause_name(clause, clause.at(ns("./title")), div, title_attr)
|
124
|
+
clause.elements.each do |e|
|
127
125
|
parse(e, div) unless e.name == "title"
|
128
126
|
end
|
129
127
|
end
|
130
128
|
end
|
131
129
|
|
132
|
-
def abstract(
|
133
|
-
f = isoxml.at(ns("//preface/abstract")) || return
|
130
|
+
def abstract(clause, out)
|
134
131
|
page_break(out)
|
135
|
-
out.div **attr_code(id:
|
136
|
-
clause_name(
|
137
|
-
|
132
|
+
out.div **attr_code(id: clause["id"]) do |s|
|
133
|
+
clause_name(clause, clause.at(ns("./title")), s,
|
134
|
+
{ class: "AbstractTitle" })
|
135
|
+
clause.elements.each { |e| parse(e, s) unless e.name == "title" }
|
138
136
|
end
|
139
137
|
end
|
140
138
|
|
141
|
-
def
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
139
|
+
def preface_attrs(node)
|
140
|
+
{ id: node["id"],
|
141
|
+
class: node["type"] == "toc" ? "TOC" : "Section3" }
|
142
|
+
end
|
143
|
+
|
144
|
+
def preface(clause, out)
|
145
|
+
if clause["type"] == "toc"
|
146
|
+
table_of_contents(clause, out)
|
147
|
+
else
|
148
|
+
preface_normal(clause, out)
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
def preface_normal(clause, out)
|
153
|
+
page_break(out)
|
154
|
+
out.div **attr_code(preface_attrs(clause)) do |div|
|
155
|
+
clause_name(clause, clause.at(ns("./title")), div,
|
156
|
+
{ class: "IntroTitle" })
|
157
|
+
clause.elements.each do |e|
|
158
|
+
parse(e, div) unless e.name == "title"
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
def table_of_contents(clause, out)
|
164
|
+
page_break(out)
|
165
|
+
out.div **attr_code(preface_attrs(clause)) do |div|
|
166
|
+
clause_name(clause, clause.at(ns("./title")), div,
|
167
|
+
{ class: "IntroTitle" })
|
168
|
+
clause.elements.each do |e|
|
169
|
+
parse(e, div) unless e.name == "title"
|
150
170
|
end
|
151
171
|
end
|
152
172
|
end
|
@@ -174,15 +194,33 @@ module IsoDoc
|
|
174
194
|
t.size == 1 && %w(terms definitions references).include?(t[0].name)
|
175
195
|
end
|
176
196
|
|
177
|
-
def
|
197
|
+
def front(isoxml, out)
|
178
198
|
p = isoxml.at(ns("//preface")) or return
|
179
199
|
p.elements.each do |e|
|
180
|
-
|
181
|
-
|
182
|
-
|
200
|
+
if is_clause?(e.name)
|
201
|
+
case e.name
|
202
|
+
when "abstract" then abstract e, out
|
203
|
+
when "foreword" then foreword e, out
|
204
|
+
when "introduction" then introduction e, out
|
205
|
+
when "executivesummary" then executivesummary e, out
|
206
|
+
when "clause" then preface e, out
|
207
|
+
when "acknowledgements" then acknowledgements e, out
|
208
|
+
end
|
209
|
+
else
|
210
|
+
preface_block(e, out)
|
211
|
+
end
|
183
212
|
end
|
184
213
|
end
|
185
214
|
|
215
|
+
def executivesummary(clause, out)
|
216
|
+
introduction clause, out
|
217
|
+
end
|
218
|
+
|
219
|
+
# block, e.g. note, admonition
|
220
|
+
def preface_block(block, out)
|
221
|
+
parse(block, out)
|
222
|
+
end
|
223
|
+
|
186
224
|
def copyright_parse(node, out)
|
187
225
|
return if @bare
|
188
226
|
|
@@ -37,12 +37,7 @@ module IsoDoc
|
|
37
37
|
def make_body3(body, docxml)
|
38
38
|
body.div class: "main-section" do |div3|
|
39
39
|
boilerplate docxml, div3
|
40
|
-
|
41
|
-
abstract docxml, div3
|
42
|
-
foreword docxml, div3
|
43
|
-
introduction docxml, div3
|
44
|
-
preface docxml, div3
|
45
|
-
acknowledgements docxml, div3
|
40
|
+
front docxml, div3
|
46
41
|
middle docxml, div3
|
47
42
|
footnotes div3
|
48
43
|
comments div3
|
@@ -117,16 +117,24 @@ module IsoDoc
|
|
117
117
|
|
118
118
|
# needs to be same output as toclevel
|
119
119
|
def html_toc(docxml)
|
120
|
-
idx = docxml
|
120
|
+
idx = html_toc_init(docxml) or return docxml
|
121
121
|
path = toclevel_classes.map do |x|
|
122
122
|
x.map { |l| "//main//#{l}#{toc_exclude_class}" }
|
123
123
|
end
|
124
124
|
toc = html_toc_entries(docxml, path)
|
125
125
|
.map { |k| k[:entry] }.join("\n")
|
126
|
-
idx
|
126
|
+
idx << "<ul>#{toc}</ul>"
|
127
127
|
docxml
|
128
128
|
end
|
129
129
|
|
130
|
+
def html_toc_init(docxml)
|
131
|
+
dest = docxml.at("//div[@id = 'toc']") or return
|
132
|
+
if source = docxml.at("//div[@class = 'TOC']")
|
133
|
+
dest << to_xml(source.remove.children)
|
134
|
+
end
|
135
|
+
dest
|
136
|
+
end
|
137
|
+
|
130
138
|
def html_toc_entries(docxml, path)
|
131
139
|
path.each_with_index.with_object([]) do |(p, i), m|
|
132
140
|
docxml.xpath(p.join(" | ")).each do |h|
|
@@ -124,9 +124,103 @@ module IsoDoc
|
|
124
124
|
display_order_xpath(docxml, "//colophon/*", i)
|
125
125
|
end
|
126
126
|
|
127
|
-
def clausetitle(docxml)
|
127
|
+
def clausetitle(docxml)
|
128
|
+
cjk_extended_title(docxml)
|
129
|
+
end
|
130
|
+
|
131
|
+
def cjk_search
|
132
|
+
lang = %w(zh ja ko).map { |x| "@language = '#{x}'" }.join(" or ")
|
133
|
+
%(Hans Hant Jpan Hang Kore).include?(@script) and
|
134
|
+
lang += " or not(@language)"
|
135
|
+
lang
|
136
|
+
end
|
137
|
+
|
138
|
+
def cjk_extended_title(docxml)
|
139
|
+
l = cjk_search
|
140
|
+
docxml.xpath(ns("//bibdata/title[#{l}] | //floating-title[#{l}] | " \
|
141
|
+
"//title[@depth = '1' or not(@depth)][#{l}]")).each do |t|
|
142
|
+
t.text.size < 4 or next
|
143
|
+
t.elements.empty? or next # can't be bothered
|
144
|
+
t.children = @i18n.cjk_extend(t.text)
|
145
|
+
end
|
146
|
+
end
|
147
|
+
|
148
|
+
def preface_rearrange(doc)
|
149
|
+
preface_move(doc.at(ns("//preface/abstract")),
|
150
|
+
%w(foreword introduction clause acknowledgements), doc)
|
151
|
+
preface_move(doc.at(ns("//preface/foreword")),
|
152
|
+
%w(introduction clause acknowledgements), doc)
|
153
|
+
preface_move(doc.at(ns("//preface/introduction")),
|
154
|
+
%w(clause acknowledgements), doc)
|
155
|
+
preface_move(doc.at(ns("//preface/acknowledgements")),
|
156
|
+
%w(), doc)
|
157
|
+
end
|
158
|
+
|
159
|
+
def preface_move(clause, after, _doc)
|
160
|
+
clause or return
|
161
|
+
preface = clause.parent
|
162
|
+
float = preceding_floats(clause)
|
163
|
+
prev = nil
|
164
|
+
xpath = after.map { |n| "./self::xmlns:#{n}" }.join(" | ")
|
165
|
+
xpath.empty? and xpath = "./self::*[not(following-sibling::*)]"
|
166
|
+
preface_move1(clause, preface, float, prev, xpath)
|
167
|
+
end
|
168
|
+
|
169
|
+
def preface_move1(clause, preface, float, prev, xpath)
|
170
|
+
preface.elements.each do |x|
|
171
|
+
((x.name == "floating-title" || x.at(xpath)) &&
|
172
|
+
xpath != "./self::*[not(following-sibling::*)]") or prev = x
|
173
|
+
# after.include?(x.name) or next
|
174
|
+
x.at(xpath) or next
|
175
|
+
clause == prev and break
|
176
|
+
prev ||= preface.children.first
|
177
|
+
float << clause
|
178
|
+
float.each { |n| prev.next = n }
|
179
|
+
break
|
180
|
+
end
|
181
|
+
end
|
182
|
+
|
183
|
+
def preceding_floats(clause)
|
184
|
+
ret = []
|
185
|
+
p = clause
|
186
|
+
while prev = p.previous_element
|
187
|
+
if prev.name == "floating-title"
|
188
|
+
ret << prev
|
189
|
+
p = prev
|
190
|
+
else break
|
191
|
+
end
|
192
|
+
end
|
193
|
+
ret
|
194
|
+
end
|
195
|
+
|
196
|
+
def rearrange_clauses(docxml)
|
197
|
+
preface_rearrange(docxml) # feeds toc_title
|
198
|
+
toc_title(docxml)
|
199
|
+
end
|
200
|
+
|
201
|
+
def toc_title(docxml)
|
202
|
+
docxml.at(ns("//preface/clause[@type = 'toc']")) and return
|
203
|
+
ins = toc_title_insert_pt(docxml) or return
|
204
|
+
id = UUIDTools::UUID.random_create.to_s
|
205
|
+
ins.previous = <<~CLAUSE
|
206
|
+
<clause type = 'toc' id='_#{id}'><title depth='1'>#{@i18n.table_of_contents}</title></clause>
|
207
|
+
CLAUSE
|
208
|
+
end
|
209
|
+
|
210
|
+
def toc_title_insert_pt(docxml)
|
211
|
+
ins = docxml.at(ns("//preface")) ||
|
212
|
+
docxml.at(ns("//sections | //annex | //bibliography"))
|
213
|
+
&.before("<preface> </preface>")
|
214
|
+
&.previous_element or return nil
|
215
|
+
ins.children.empty? and ins << " "
|
216
|
+
ins.children.first
|
217
|
+
end
|
128
218
|
|
129
219
|
def toc(docxml)
|
220
|
+
toc_refs(docxml)
|
221
|
+
end
|
222
|
+
|
223
|
+
def toc_refs(docxml)
|
130
224
|
docxml.xpath(ns("//toc//xref[text()]")).each do |x|
|
131
225
|
lbl = @xrefs.anchor(x["target"], :label) or next
|
132
226
|
x.children.first.previous = "#{lbl}<tab/>"
|
@@ -76,7 +76,7 @@ module IsoDoc
|
|
76
76
|
# Note % to entry and Note % to entry: cannot conflate as Note % to entry 1 and 2
|
77
77
|
# So Notes 1 and 3, but Note 1 to entry and Note 3 to entry
|
78
78
|
def combine_conflated_xref_locations(locs)
|
79
|
-
out = if locs.any? { |l|
|
79
|
+
out = if locs.any? { |l| l[:elem]&.include?("%") }
|
80
80
|
locs.each { |l| l[:label] = @xrefs.anchor(l[:target], :xref) }
|
81
81
|
else
|
82
82
|
conflate_xref_locations(locs)
|
@@ -138,6 +138,7 @@ module IsoDoc
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def can_conflate_xref_rendering?(locs)
|
141
|
+
@i18n.get["no_conflate_xref_locations"] == true and return false
|
141
142
|
(locs.all? { |l| l[:container].nil? } ||
|
142
143
|
locs.all? { |l| l[:container] == locs.first[:container] }) &&
|
143
144
|
locs.all? { |l| l[:type] == locs[0][:type] }
|
@@ -39,12 +39,13 @@ module IsoDoc
|
|
39
39
|
references docxml
|
40
40
|
# triggers xrefs reparse, so put references before all other sections,
|
41
41
|
# which alter titles and thus can alter xrefs
|
42
|
+
rearrange_clauses docxml # feeds toc, display_order, clausetitle, clause
|
42
43
|
annex docxml
|
43
|
-
clause docxml
|
44
|
+
clause docxml # feeds clausetitle
|
44
45
|
term docxml
|
45
46
|
index docxml
|
46
|
-
clausetitle docxml
|
47
|
-
floattitle docxml
|
47
|
+
clausetitle docxml # feeds floattitle
|
48
|
+
floattitle docxml # feeds rearrange_clauses
|
48
49
|
toc docxml
|
49
50
|
display_order docxml
|
50
51
|
end
|
data/lib/isodoc/version.rb
CHANGED
@@ -28,12 +28,7 @@ module IsoDoc
|
|
28
28
|
def make_body2(body, docxml)
|
29
29
|
body.div class: "WordSection2" do |div2|
|
30
30
|
boilerplate docxml, div2
|
31
|
-
|
32
|
-
abstract docxml, div2
|
33
|
-
foreword docxml, div2
|
34
|
-
introduction docxml, div2
|
35
|
-
preface docxml, div2
|
36
|
-
acknowledgements docxml, div2
|
31
|
+
front docxml, div2
|
37
32
|
div2.p { |p| p << " " } # placeholder
|
38
33
|
end
|
39
34
|
section_break(body)
|
@@ -243,6 +238,18 @@ module IsoDoc
|
|
243
238
|
.at(ns("//metanorma-extension/toc[@type = 'recommendation']/title"))&.text
|
244
239
|
super
|
245
240
|
end
|
241
|
+
|
242
|
+
def table_of_contents(clause, out)
|
243
|
+
page_break(out)
|
244
|
+
out.div **attr_code(preface_attrs(clause)) do |div|
|
245
|
+
div.p class: "zzContents" do |p|
|
246
|
+
clause.at(ns("./title"))&.children&.each { |c| parse(c, p) }
|
247
|
+
end
|
248
|
+
clause.elements.each do |e|
|
249
|
+
parse(e, div) unless e.name == "title"
|
250
|
+
end
|
251
|
+
end
|
252
|
+
end
|
246
253
|
end
|
247
254
|
end
|
248
255
|
end
|
@@ -2,12 +2,28 @@ module IsoDoc
|
|
2
2
|
module WordFunction
|
3
3
|
module Postprocess
|
4
4
|
def insert_toc(intro, docxml, level)
|
5
|
+
toc = assemble_toc(docxml, level)
|
6
|
+
if intro&.include?("WORDTOC")
|
7
|
+
if s = docxml.at("//div[@class = 'TOC']")
|
8
|
+
s&.previous_element&.elements&.first&.name == "br" and
|
9
|
+
s&.previous_element&.remove # page break
|
10
|
+
s.remove
|
11
|
+
end
|
12
|
+
intro.sub(/WORDTOC/, toc)
|
13
|
+
else
|
14
|
+
source = docxml.at("//div[@class = 'TOC']") and
|
15
|
+
source.children = toc
|
16
|
+
intro
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def assemble_toc(docxml, level)
|
5
21
|
toc = ""
|
6
22
|
toc += make_WordToC(docxml, level)
|
7
23
|
toc += make_table_word_toc(docxml)
|
8
24
|
toc += make_figure_word_toc(docxml)
|
9
25
|
toc += make_recommendation_word_toc(docxml)
|
10
|
-
|
26
|
+
toc
|
11
27
|
end
|
12
28
|
|
13
29
|
def word_toc_entry(toclevel, heading)
|
@@ -43,6 +59,9 @@ module IsoDoc
|
|
43
59
|
|
44
60
|
def make_WordToC(docxml, level)
|
45
61
|
toc = ""
|
62
|
+
if source = docxml.at("//div[@class = 'TOC']")
|
63
|
+
toc = to_xml(source.children)
|
64
|
+
end
|
46
65
|
# docxml.xpath("//h1 | //h2[not(ancestor::*[@class = 'Section3'])]").
|
47
66
|
xpath = (1..level).each.map { |i| "//h#{i}" }.join (" | ")
|
48
67
|
docxml.xpath(xpath).each do |h|
|
@@ -38,9 +38,10 @@ multiple_or: "%1, or %2"
|
|
38
38
|
chain_and: "%1 and %2"
|
39
39
|
chain_or: "%1 or %2"
|
40
40
|
chain_from: "%1 from %2"
|
41
|
-
chain_to: "%1
|
41
|
+
chain_to: "%1~%2"
|
42
42
|
nested_xref: "%1の%2"
|
43
43
|
list_nested_xref: "%1の%2"
|
44
|
+
no_conflate_xref_locations: true
|
44
45
|
ordinal_keys: []
|
45
46
|
SpelloutRules: spellout-ordinal
|
46
47
|
note: 注記
|
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.5.
|
4
|
+
version: 2.5.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: html2doc
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 4.3.4
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: emf2svg
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: liquid
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '5'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '5'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: plurimath
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -473,7 +473,7 @@ homepage: https://github.com/metanorma/isodoc
|
|
473
473
|
licenses:
|
474
474
|
- BSD-2-Clause
|
475
475
|
metadata: {}
|
476
|
-
post_install_message:
|
476
|
+
post_install_message:
|
477
477
|
rdoc_options: []
|
478
478
|
require_paths:
|
479
479
|
- lib
|
@@ -488,8 +488,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
488
488
|
- !ruby/object:Gem::Version
|
489
489
|
version: '0'
|
490
490
|
requirements: []
|
491
|
-
rubygems_version: 3.
|
492
|
-
signing_key:
|
491
|
+
rubygems_version: 3.4.12
|
492
|
+
signing_key:
|
493
493
|
specification_version: 4
|
494
494
|
summary: Convert documents in IsoDoc into Word and HTML in AsciiDoc.
|
495
495
|
test_files: []
|