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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2ee757a450ef1caa019c1056ca59afffa9863efc120db0de188a43ccb496b13c
4
- data.tar.gz: 775d0d85000f8f1f10cb07941f36212cbcdb5b15b627f661ac79e0f908c433fd
3
+ metadata.gz: 1b9a1d97703df1ebbf3b6f803afdb93550cd9bb9bda68978a29119d2fa734687
4
+ data.tar.gz: 1eb0d1a3effe2cc9ca6728eaa65b460cff0ddb3ceb2f43b7610eb249bee3f66a
5
5
  SHA512:
6
- metadata.gz: 7c2e2dd299f1da646b0044fee1c8b38059bb1d24d1f050fbf934e42d7979a4211ee81bf33d1e74457ccc0565931015192748ba12b0ed707487e4ea2ff9ec7b44
7
- data.tar.gz: 4162cd868860658758fbb8c1ed48a95a037bbaabb23dc6c117923647830fea37ecf0abb7561cb47b3021ca20609eeacc4d5a6846dc752492530a9891b20d9495
6
+ metadata.gz: 5d61028ef6bbcab315a1616e47ecea392f4537f34e7a439d21e95e3e252f36f28d30c6b244979a0b8374dc48c3e2d053289b8afdb4a57dbb5c88703355169509
7
+ data.tar.gz: e9f9044bfffc22eff4c26a01798252a2fabe49971f227da736bbc9dd561eb273bce8d2f737b6b189f19e35f0cda98894c968cadd6ad534571a937520b5e9cf92
@@ -1,5 +1,4 @@
1
- require "relaton"
2
- require "relaton/cli"
1
+ require "relaton-cli"
3
2
  require "metanorma-utils"
4
3
  require_relative "util/util"
5
4
  require_relative "util/disambig_files"
@@ -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
- =begin
38
- def allowed_extension_keys
39
- ret = @format.dup
40
- @directives.detect { |d| d.key == "individual-pdf" } or
41
- ret.delete(:pdf)
42
- @directives.detect { |d| d.key == "individual-doc" } or
43
- ret.delete(:doc)
44
- ret
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("Cross-References", nil, refs[schema][id])
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("Cross-References", nil, error)
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("Cross-References", e, msg)
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 # Capture extensions for later access
66
- return nil unless extensions
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
- semantic_xml,
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
- return {} unless @extensions && @processor
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
@@ -1,3 +1,3 @@
1
1
  module Metanorma
2
- VERSION = "2.2.5".freeze
2
+ VERSION = "2.2.7".freeze
3
3
  end
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", ">= 1.14.3"
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
- # get relaton-cli to avoid circular reference with metanorma-standoc
37
- # spec.add_dependency "relaton-cli"
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.5
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-10-13 00:00:00.000000000 Z
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.3
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.3
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: '0'
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: '0'
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: '0'
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: '0'
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