metanorma 2.0.3 → 2.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/metanorma/collection/filelookup/filelookup.rb +2 -2
- data/lib/metanorma/collection/filelookup/filelookup_sectionsplit.rb +11 -0
- data/lib/metanorma/collection/renderer/fileparse.rb +1 -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/compile/compile.rb +1 -1
- data/lib/metanorma/registry/registry.rb +2 -2
- data/lib/metanorma/version.rb +1 -1
- data/metanorma.gemspec +1 -0
- metadata +16 -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
|
|
@@ -123,7 +123,7 @@ module Metanorma
|
|
123
123
|
def url_in_css_styles(doc, document_suffix)
|
124
124
|
doc.xpath("//*[@style]").each do |s|
|
125
125
|
s["style"] = s["style"]
|
126
|
-
.gsub(%r{url\(#([^)]+)\)}, "url(#\\1_#{document_suffix})")
|
126
|
+
.gsub(%r{url\(#([^()]+)\)}, "url(#\\1_#{document_suffix})")
|
127
127
|
end
|
128
128
|
end
|
129
129
|
|
@@ -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)
|
@@ -110,6 +110,7 @@ module Metanorma
|
|
110
110
|
|
111
111
|
def svgmap_resolve_eref(eref, isodoc, _docxml, ids)
|
112
112
|
href = isodoc.eref_target(eref) or return
|
113
|
+
href = href[:link]
|
113
114
|
href == "##{eref['bibitemid']}" ||
|
114
115
|
(href =~ /^#/ && !ids[href.sub(/^#/, "")]) and return
|
115
116
|
eref["target"] = href.strip
|
@@ -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
|
@@ -28,8 +28,8 @@ module Metanorma
|
|
28
28
|
def compile(filename, options = {})
|
29
29
|
options_process(filename, options)
|
30
30
|
@processor = @registry.find_processor(options[:type].to_sym)
|
31
|
-
extensions = get_extensions(options) or return nil
|
32
31
|
(file, isodoc = process_input(filename, options)) or return nil
|
32
|
+
extensions = get_extensions(options) or return nil
|
33
33
|
relaton_export(isodoc, options)
|
34
34
|
extract(isodoc, options[:extract], options[:extract_type])
|
35
35
|
process_exts(filename, extensions, file, isodoc, options)
|
data/lib/metanorma/version.rb
CHANGED
data/metanorma.gemspec
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-
|
11
|
+
date: 2024-09-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -262,6 +262,20 @@ dependencies:
|
|
262
262
|
- - "~>"
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0.15'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: xml-c14n
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
265
279
|
description: Library to process any Metanorma standard.
|
266
280
|
email:
|
267
281
|
- open.source@ribose.com
|