metanorma 2.2.5 → 2.2.7
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/collection.rb +1 -2
- data/lib/metanorma/collection/log.rb +17 -0
- data/lib/metanorma/collection/renderer/fileprocess.rb +9 -11
- data/lib/metanorma/collection/renderer/renderer.rb +2 -0
- data/lib/metanorma/collection/renderer/utils.rb +2 -2
- data/lib/metanorma/compile/compile.rb +25 -20
- data/lib/metanorma/version.rb +1 -1
- data/metanorma.gemspec +5 -6
- metadata +27 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 1b9a1d97703df1ebbf3b6f803afdb93550cd9bb9bda68978a29119d2fa734687
|
|
4
|
+
data.tar.gz: 1eb0d1a3effe2cc9ca6728eaa65b460cff0ddb3ceb2f43b7610eb249bee3f66a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5d61028ef6bbcab315a1616e47ecea392f4537f34e7a439d21e95e3e252f36f28d30c6b244979a0b8374dc48c3e2d053289b8afdb4a57dbb5c88703355169509
|
|
7
|
+
data.tar.gz: e9f9044bfffc22eff4c26a01798252a2fabe49971f227da736bbc9dd561eb273bce8d2f737b6b189f19e35f0cda98894c968cadd6ad534571a937520b5e9cf92
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
module Metanorma
|
|
2
|
+
class Collection
|
|
3
|
+
METANORMA_LOG_MESSAGES = {
|
|
4
|
+
# rubocop:disable Naming/VariableNumber
|
|
5
|
+
"METANORMA_1": { category: "Cross-References",
|
|
6
|
+
error: "Missing cross-reference: %s",
|
|
7
|
+
severity: 2 },
|
|
8
|
+
"METANORMA_2": { category: "Cross-References",
|
|
9
|
+
error: "[metanorma] Cannot find crossreference to document %s in document %s.",
|
|
10
|
+
severity: 2 },
|
|
11
|
+
"METANORMA_3": { category: "Cross-References",
|
|
12
|
+
error: "<strong>** Unresolved reference to document %s from eref</strong>",
|
|
13
|
+
severity: 2 },
|
|
14
|
+
}.freeze
|
|
15
|
+
# rubocop:enable Naming/VariableNumber
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -34,16 +34,14 @@ module Metanorma
|
|
|
34
34
|
ret
|
|
35
35
|
end
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
end
|
|
46
|
-
=end
|
|
37
|
+
# def allowed_extension_keys
|
|
38
|
+
# ret = @format.dup
|
|
39
|
+
# @directives.detect { |d| d.key == "individual-pdf" } or
|
|
40
|
+
# ret.delete(:pdf)
|
|
41
|
+
# @directives.detect { |d| d.key == "individual-doc" } or
|
|
42
|
+
# ret.delete(:doc)
|
|
43
|
+
# ret
|
|
44
|
+
# end
|
|
47
45
|
|
|
48
46
|
def file_compile_formats(filename, identifier, opts)
|
|
49
47
|
f = @files.get(identifier, :outputs)
|
|
@@ -150,7 +148,7 @@ module Metanorma
|
|
|
150
148
|
ids.each do |id, key|
|
|
151
149
|
key and next
|
|
152
150
|
refs[schema][id] = "Missing:#{schema}:#{id}"
|
|
153
|
-
@log&.add("
|
|
151
|
+
@log&.add("METANORMA_1", nil, params: [refs[schema][id]])
|
|
154
152
|
end
|
|
155
153
|
end
|
|
156
154
|
refs
|
|
@@ -9,6 +9,7 @@ require_relative "utils"
|
|
|
9
9
|
require_relative "render_word"
|
|
10
10
|
require_relative "navigation"
|
|
11
11
|
require_relative "svg"
|
|
12
|
+
require_relative "../log"
|
|
12
13
|
|
|
13
14
|
module Metanorma
|
|
14
15
|
class Collection
|
|
@@ -53,6 +54,7 @@ module Metanorma
|
|
|
53
54
|
@compile_options = options[:compile] || {}
|
|
54
55
|
@compile_options[:install_fonts] = true if options[:install_fonts]
|
|
55
56
|
@log = options[:log]
|
|
57
|
+
@log&.add_msg(METANORMA_LOG_MESSAGES)
|
|
56
58
|
@bibdata = collection.bibdata
|
|
57
59
|
@documents = collection.documents
|
|
58
60
|
@bibdatas = collection.documents
|
|
@@ -119,7 +119,7 @@ module Metanorma
|
|
|
119
119
|
def fail_update_bibitem(docid, identifier)
|
|
120
120
|
error = "[metanorma] Cannot find crossreference to document #{docid} " \
|
|
121
121
|
"in document #{identifier}."
|
|
122
|
-
@log&.add("
|
|
122
|
+
@log&.add("METANORMA_2", nil, params: [docid, identifier])
|
|
123
123
|
::Metanorma::Util.log(error, :warning)
|
|
124
124
|
end
|
|
125
125
|
|
|
@@ -206,7 +206,7 @@ module Metanorma
|
|
|
206
206
|
"from eref</strong>"
|
|
207
207
|
e << msg
|
|
208
208
|
strip_eref(e)
|
|
209
|
-
@log&.add("
|
|
209
|
+
@log&.add("METANORMA_3", e, params: [docid])
|
|
210
210
|
end
|
|
211
211
|
end
|
|
212
212
|
|
|
@@ -50,9 +50,7 @@ module Metanorma
|
|
|
50
50
|
@processor = @registry.find_processor(options[:type].to_sym)
|
|
51
51
|
|
|
52
52
|
# Step 1: Generate Semantic XML
|
|
53
|
-
semantic_result = generate_semantic_xml(filename, options)
|
|
54
|
-
return nil unless semantic_result
|
|
55
|
-
|
|
53
|
+
semantic_result = generate_semantic_xml(filename, options) or return nil
|
|
56
54
|
source_file, semantic_xml = semantic_result
|
|
57
55
|
|
|
58
56
|
# Step 2: Prepare output paths
|
|
@@ -62,20 +60,16 @@ module Metanorma
|
|
|
62
60
|
|
|
63
61
|
# Step 3: Determine which output formats to generate
|
|
64
62
|
extensions = get_extensions(options)
|
|
65
|
-
@extensions = extensions
|
|
66
|
-
return nil
|
|
63
|
+
@extensions = extensions # Capture extensions for later access
|
|
64
|
+
extensions or return nil
|
|
67
65
|
|
|
68
66
|
# Step 4: Extract information from Semantic XML if requested
|
|
69
67
|
extract_information(semantic_xml, bibdata, options)
|
|
70
68
|
|
|
71
69
|
# Step 5: Generate output formats from Semantic XML
|
|
72
70
|
generate_outputs(
|
|
73
|
-
source_file,
|
|
74
|
-
|
|
75
|
-
bibdata,
|
|
76
|
-
extensions,
|
|
77
|
-
output_paths,
|
|
78
|
-
options,
|
|
71
|
+
source_file, semantic_xml, bibdata, extensions, output_paths,
|
|
72
|
+
options
|
|
79
73
|
)
|
|
80
74
|
ensure
|
|
81
75
|
clean_exit(options)
|
|
@@ -125,9 +119,7 @@ module Metanorma
|
|
|
125
119
|
config.generate_filename(drop)
|
|
126
120
|
end
|
|
127
121
|
@output_filename = OutputFilename.new(
|
|
128
|
-
basename,
|
|
129
|
-
options[:output_dir],
|
|
130
|
-
@processor,
|
|
122
|
+
basename, options[:output_dir], @processor
|
|
131
123
|
)
|
|
132
124
|
{
|
|
133
125
|
xml: @output_filename.semantic_xml,
|
|
@@ -142,13 +134,10 @@ module Metanorma
|
|
|
142
134
|
def extract_information(semantic_xml, bibdata, options)
|
|
143
135
|
# Extract Relaton bibliographic data
|
|
144
136
|
export_relaton_from_bibdata(bibdata, options) if options[:relaton]
|
|
145
|
-
|
|
146
137
|
# Extract other components (sourcecode, images, requirements)
|
|
147
138
|
if options[:extract]
|
|
148
139
|
Extract.extract(
|
|
149
|
-
semantic_xml,
|
|
150
|
-
options[:extract],
|
|
151
|
-
options[:extract_type],
|
|
140
|
+
semantic_xml, options[:extract], options[:extract_type]
|
|
152
141
|
)
|
|
153
142
|
end
|
|
154
143
|
end
|
|
@@ -242,13 +231,29 @@ module Metanorma
|
|
|
242
231
|
# e.g., { html: "html", doc: "doc", pdf: "pdf" }
|
|
243
232
|
# @return [Hash] empty hash if extensions haven't been captured yet
|
|
244
233
|
def output_format_mapping
|
|
245
|
-
|
|
246
|
-
|
|
234
|
+
@extensions && @processor or return {}
|
|
247
235
|
@extensions.each_with_object({}) do |ext, mapping|
|
|
248
236
|
if @processor.output_formats[ext]
|
|
249
237
|
mapping[ext] = @processor.output_formats[ext]
|
|
250
238
|
end
|
|
251
239
|
end
|
|
252
240
|
end
|
|
241
|
+
|
|
242
|
+
def process_compile_dummy(flavor)
|
|
243
|
+
file = Tempfile.new(%w(tmp .adoc))
|
|
244
|
+
file.write <<~OUTPUT
|
|
245
|
+
Document Title
|
|
246
|
+
:flavor: #{flavor}
|
|
247
|
+
:mn-output-extensions: xml, presentation
|
|
248
|
+
|
|
249
|
+
OUTPUT
|
|
250
|
+
file.close
|
|
251
|
+
compile(file.path, {})
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
def extract_log_messages(flavor)
|
|
255
|
+
process_compile_dummy(flavor)
|
|
256
|
+
@log.display_messages
|
|
257
|
+
end
|
|
253
258
|
end
|
|
254
259
|
end
|
data/lib/metanorma/version.rb
CHANGED
data/metanorma.gemspec
CHANGED
|
@@ -26,20 +26,19 @@ Gem::Specification.new do |spec|
|
|
|
26
26
|
|
|
27
27
|
spec.add_runtime_dependency "asciidoctor"
|
|
28
28
|
spec.add_runtime_dependency "concurrent-ruby"
|
|
29
|
-
spec.add_runtime_dependency "fontist", "
|
|
29
|
+
spec.add_runtime_dependency "fontist", "~> 1.14"
|
|
30
30
|
spec.add_runtime_dependency "htmlentities"
|
|
31
31
|
spec.add_runtime_dependency "isodoc", ">= 3.0.0"
|
|
32
32
|
spec.add_runtime_dependency "metanorma-taste", "~> 0.1.0"
|
|
33
33
|
spec.add_runtime_dependency "mn2pdf", "~> 2"
|
|
34
34
|
spec.add_runtime_dependency "nokogiri"
|
|
35
35
|
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
# spec.add_dependency "metanorma-standoc"
|
|
36
|
+
# relaton-cli is required by Metanorma::Collection
|
|
37
|
+
spec.add_dependency "relaton-cli"
|
|
39
38
|
|
|
40
39
|
spec.add_development_dependency "debug"
|
|
41
40
|
spec.add_development_dependency "equivalent-xml"
|
|
42
|
-
spec.add_development_dependency "metanorma-iso"
|
|
41
|
+
spec.add_development_dependency "metanorma-iso", ">= 3.2.0"
|
|
43
42
|
spec.add_development_dependency "mnconvert"
|
|
44
43
|
spec.add_development_dependency "pry"
|
|
45
44
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
@@ -49,5 +48,5 @@ Gem::Specification.new do |spec|
|
|
|
49
48
|
spec.add_development_dependency "rubocop-performance"
|
|
50
49
|
spec.add_development_dependency "sassc-embedded", "~> 1"
|
|
51
50
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
|
52
|
-
spec.add_development_dependency "canon"
|
|
51
|
+
spec.add_development_dependency "canon", "= 0.1.3"
|
|
53
52
|
end
|
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.2.
|
|
4
|
+
version: 2.2.7
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: asciidoctor
|
|
@@ -42,16 +42,16 @@ dependencies:
|
|
|
42
42
|
name: fontist
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
|
-
- - "
|
|
45
|
+
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: 1.14
|
|
47
|
+
version: '1.14'
|
|
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: 1.14
|
|
54
|
+
version: '1.14'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: htmlentities
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -122,6 +122,20 @@ dependencies:
|
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
124
|
version: '0'
|
|
125
|
+
- !ruby/object:Gem::Dependency
|
|
126
|
+
name: relaton-cli
|
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
|
128
|
+
requirements:
|
|
129
|
+
- - ">="
|
|
130
|
+
- !ruby/object:Gem::Version
|
|
131
|
+
version: '0'
|
|
132
|
+
type: :runtime
|
|
133
|
+
prerelease: false
|
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
135
|
+
requirements:
|
|
136
|
+
- - ">="
|
|
137
|
+
- !ruby/object:Gem::Version
|
|
138
|
+
version: '0'
|
|
125
139
|
- !ruby/object:Gem::Dependency
|
|
126
140
|
name: debug
|
|
127
141
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -156,14 +170,14 @@ dependencies:
|
|
|
156
170
|
requirements:
|
|
157
171
|
- - ">="
|
|
158
172
|
- !ruby/object:Gem::Version
|
|
159
|
-
version:
|
|
173
|
+
version: 3.2.0
|
|
160
174
|
type: :development
|
|
161
175
|
prerelease: false
|
|
162
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
163
177
|
requirements:
|
|
164
178
|
- - ">="
|
|
165
179
|
- !ruby/object:Gem::Version
|
|
166
|
-
version:
|
|
180
|
+
version: 3.2.0
|
|
167
181
|
- !ruby/object:Gem::Dependency
|
|
168
182
|
name: mnconvert
|
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -294,16 +308,16 @@ dependencies:
|
|
|
294
308
|
name: canon
|
|
295
309
|
requirement: !ruby/object:Gem::Requirement
|
|
296
310
|
requirements:
|
|
297
|
-
- -
|
|
311
|
+
- - '='
|
|
298
312
|
- !ruby/object:Gem::Version
|
|
299
|
-
version:
|
|
313
|
+
version: 0.1.3
|
|
300
314
|
type: :development
|
|
301
315
|
prerelease: false
|
|
302
316
|
version_requirements: !ruby/object:Gem::Requirement
|
|
303
317
|
requirements:
|
|
304
|
-
- -
|
|
318
|
+
- - '='
|
|
305
319
|
- !ruby/object:Gem::Version
|
|
306
|
-
version:
|
|
320
|
+
version: 0.1.3
|
|
307
321
|
description: Library to process any Metanorma standard.
|
|
308
322
|
email:
|
|
309
323
|
- open.source@ribose.com
|
|
@@ -338,6 +352,7 @@ files:
|
|
|
338
352
|
- lib/metanorma/collection/document/document.rb
|
|
339
353
|
- lib/metanorma/collection/filelookup/filelookup.rb
|
|
340
354
|
- lib/metanorma/collection/filelookup/filelookup_sectionsplit.rb
|
|
355
|
+
- lib/metanorma/collection/log.rb
|
|
341
356
|
- lib/metanorma/collection/manifest/manifest.rb
|
|
342
357
|
- lib/metanorma/collection/multilingual/multilingual.rb
|
|
343
358
|
- lib/metanorma/collection/renderer/fileparse.rb
|