metanorma 2.0.4 → 2.0.5
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/metanorma/collection/filelookup/filelookup.rb +1 -1
- data/lib/metanorma/collection/filelookup/filelookup_sectionsplit.rb +11 -0
- data/lib/metanorma/collection/renderer/fileprocess.rb +1 -1
- data/lib/metanorma/collection/renderer/render_word.rb +2 -1
- data/lib/metanorma/collection/sectionsplit/sectionsplit.rb +36 -12
- data/lib/metanorma/version.rb +1 -1
- 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: e6416bb8205d8f155d6affc6566e882a0cc161b16e6753e0df39be3818fb369b
|
4
|
+
data.tar.gz: ecfc71eb0cecda61acd433a6a2a1512415375f69a38a9bb2c4f5f779d7ca38f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '0989d2e8fe2373f3e10733fca8e562839e6e264e3e45abc58782ab0d7ec5de8965fefc5a944154acab16968ed6292a42c000454791e782333b8cd47c5b51fce5'
|
7
|
+
data.tar.gz: 9004900c903b5cd1fe081cb4ca663a8caf0c0f2a4e016024accce10873261ccd3dacac953a1686a49d647cbe0d4f1914327304df9366ad3530a42078869cda84
|
@@ -104,7 +104,7 @@ module Metanorma
|
|
104
104
|
%w(attachment sectionsplit index presentation-xml url
|
105
105
|
bare-after-first).each do |s|
|
106
106
|
ref.respond_to?(s.to_sym) and
|
107
|
-
ret[s.
|
107
|
+
ret[s.delete("-").to_sym] = ref.send(s)
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
@@ -19,6 +19,8 @@ module Metanorma
|
|
19
19
|
s.each_with_index do |f1, i|
|
20
20
|
add_section_split_instance(f1, manifest, key, i)
|
21
21
|
end
|
22
|
+
a = add_section_split_attachments(sectionsplit_manifest, key) and
|
23
|
+
manifest["#{key}:attachments"] = a
|
22
24
|
manifest["#{key}:index.html"] =
|
23
25
|
add_section_split_cover(sectionsplit_manifest, key)
|
24
26
|
end
|
@@ -49,6 +51,15 @@ module Metanorma
|
|
49
51
|
docs > 1
|
50
52
|
end
|
51
53
|
|
54
|
+
def add_section_split_attachments(manifest, ident)
|
55
|
+
attachments = @sectionsplit
|
56
|
+
.section_split_attachments(out: File.dirname(manifest.file))
|
57
|
+
attachments or return
|
58
|
+
@files[ident][:out_path] = attachments
|
59
|
+
{ attachment: true, index: false, out_path: attachments,
|
60
|
+
ref: File.join(File.dirname(manifest.file), attachments) }
|
61
|
+
end
|
62
|
+
|
52
63
|
def add_section_split_instance(file, manifest, key, idx)
|
53
64
|
presfile, newkey, xml =
|
54
65
|
add_section_split_instance_prep(file, key)
|
@@ -53,7 +53,7 @@ module Metanorma
|
|
53
53
|
dest = File.join(@outdir, @disambig.source2dest_filename(out.to_s))
|
54
54
|
FileUtils.mkdir_p(File.dirname(dest))
|
55
55
|
source = @files.get(identifier, :ref)
|
56
|
-
source != dest and FileUtils.
|
56
|
+
source != dest and FileUtils.cp_r source, dest, remove_destination: true
|
57
57
|
end
|
58
58
|
|
59
59
|
# process each file in the collection
|
@@ -34,7 +34,8 @@ module Metanorma
|
|
34
34
|
|
35
35
|
def wrapping_doc_body(doc)
|
36
36
|
doc.xpath(ns("//annex | //preface | //bibliography")).each(&:remove)
|
37
|
-
s = doc.at(ns("//sections"))
|
37
|
+
s = doc.at(ns("//sections")) ||
|
38
|
+
doc.root.elements[-1].after("<sections/>").next
|
38
39
|
repl = <<~BODY
|
39
40
|
<sections><clause id='_collection_placeholder'><p>PLACEHOLDER</p></clause></sections>
|
40
41
|
BODY
|
@@ -32,6 +32,7 @@ module Metanorma
|
|
32
32
|
{ format: %i(html), output_folder: "#{@output_filename}_collection",
|
33
33
|
coverpage: File.join(@dir, "cover.html") }.merge(@compile_opts),
|
34
34
|
)
|
35
|
+
section_split_attachments(out: "#{@output_filename}_collection")
|
35
36
|
end
|
36
37
|
|
37
38
|
def collection_manifest(filename, files, origxml, _presxml, dir)
|
@@ -71,8 +72,8 @@ module Metanorma
|
|
71
72
|
@key = Metanorma::Collection::XrefProcess::xref_preprocess(xml, @isodoc)
|
72
73
|
SPLITSECTIONS.each_with_object([]) do |n, ret|
|
73
74
|
conflate_floatingtitles(xml.xpath(ns(n[0]))).each do |s|
|
74
|
-
ret << sectionfile(xml, emptydoc(xml
|
75
|
-
n[1])
|
75
|
+
ret << sectionfile(xml, emptydoc(xml, ret.size),
|
76
|
+
"#{@base}.#{ret.size}", s, n[1])
|
76
77
|
end
|
77
78
|
end
|
78
79
|
end
|
@@ -111,6 +112,7 @@ module Metanorma
|
|
111
112
|
type = xml.root.name.sub("-standard", "").to_sym
|
112
113
|
sectionsplit_update_xrefs(xml)
|
113
114
|
xml1 = sectionsplit_write_semxml(filename, xml)
|
115
|
+
@tmp_filename = xml1
|
114
116
|
[xml1, type]
|
115
117
|
end
|
116
118
|
|
@@ -133,13 +135,15 @@ module Metanorma
|
|
133
135
|
outname
|
134
136
|
end
|
135
137
|
|
136
|
-
def emptydoc(xml)
|
138
|
+
def emptydoc(xml, ordinal)
|
137
139
|
out = xml.dup
|
138
140
|
out.xpath(
|
139
141
|
ns("//preface | //sections | //annex | //bibliography/clause | " \
|
140
|
-
"//bibliography/references[not(@hidden = 'true')] |
|
141
|
-
"//colophon"),
|
142
|
+
"//bibliography/references[not(@hidden = 'true')] | " \
|
143
|
+
"//indexsect | //colophon"),
|
142
144
|
).each(&:remove)
|
145
|
+
ordinal.zero? or out.xpath(ns("//metanorma-ext//attachment"))
|
146
|
+
.each(&:remove) # keep only one copy of attachments
|
143
147
|
out
|
144
148
|
end
|
145
149
|
|
@@ -155,9 +159,7 @@ module Metanorma
|
|
155
159
|
Metanorma::Collection::XrefProcess::xref_process(out, xml, @key,
|
156
160
|
@ident, @isodoc)
|
157
161
|
outname = "#{file}.xml"
|
158
|
-
File.open(File.join(@splitdir, outname), "w:UTF-8")
|
159
|
-
f.write(out)
|
160
|
-
end
|
162
|
+
File.open(File.join(@splitdir, outname), "w:UTF-8") { |f| f.write(out) }
|
161
163
|
outname
|
162
164
|
end
|
163
165
|
|
@@ -173,7 +175,9 @@ module Metanorma
|
|
173
175
|
title = section.at(ns("./title")) or return "[Untitled]"
|
174
176
|
t = title.dup
|
175
177
|
t.xpath(ns(".//tab | .//br")).each { |x| x.replace(" ") }
|
176
|
-
t.xpath(ns(".//
|
178
|
+
t.xpath(ns(".//bookmark")).each(&:remove)
|
179
|
+
t.xpath(ns(".//strong | .//span"))
|
180
|
+
.each { |x| x.replace(x.children) }
|
177
181
|
t.children.to_xml
|
178
182
|
end
|
179
183
|
|
@@ -208,10 +212,30 @@ module Metanorma
|
|
208
212
|
.new(col, dir, output_folder: "#{ident}_collection",
|
209
213
|
format: %i(html), coverpage: File.join(dir, "cover.html"))
|
210
214
|
r.coverpage
|
215
|
+
section_split_cover1(ident, r, dir, _one_doc_coll)
|
216
|
+
end
|
217
|
+
|
218
|
+
def att_dir(file)
|
219
|
+
"_#{File.basename(file, '.*')}_attachments"
|
220
|
+
end
|
221
|
+
|
222
|
+
def section_split_attachments(out: nil)
|
223
|
+
attachments = att_dir(@tmp_filename)
|
224
|
+
File.directory?(attachments) or return
|
225
|
+
dir = out || File.dirname(@input_filename)
|
226
|
+
ret = File.join(dir, att_dir(@output_filename))
|
227
|
+
FileUtils.rm_rf ret
|
228
|
+
FileUtils.mv attachments, ret
|
229
|
+
File.basename(ret)
|
230
|
+
end
|
231
|
+
|
232
|
+
def section_split_cover1(ident, renderer, dir, _one_doc_coll)
|
211
233
|
# filename = one_doc_coll ? "#{ident}_index.html" : "index.html"
|
212
|
-
filename = File.basename("#{ident}_index.html")
|
213
|
-
|
214
|
-
FileUtils.
|
234
|
+
filename = File.basename("#{ident}_index.html")
|
235
|
+
# ident can be a directory with YAML indirection
|
236
|
+
FileUtils.mv File.join(renderer.outdir, "index.html"),
|
237
|
+
File.join(dir, filename)
|
238
|
+
FileUtils.rm_rf renderer.outdir
|
215
239
|
filename
|
216
240
|
end
|
217
241
|
end
|
data/lib/metanorma/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.5
|
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-09-
|
11
|
+
date: 2024-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|