metanorma-standoc 3.5.4 → 3.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 226aa50e55b47cc5c2b1951a1ab7846b9d66beed7feed9ff508d482b499252d9
4
- data.tar.gz: fb3b3cd3fa7e5e2c33d424a965a2f79dbc6f107ae02b728437d886e4592e7c86
3
+ metadata.gz: 4c01913608379133f785a90f97b5243aa916581376cfb82f1e246506b7e1aad0
4
+ data.tar.gz: dfad852e2e0d35842e4da63195ea5c9d5bfcb1f0ab4a9757a49c29a1c0e71a3c
5
5
  SHA512:
6
- metadata.gz: ae524cce75bd115159a547b56b134f21b1b2c46617a70b23a3dda2edd6dc0570ea1e59b5585540bef1835bafa727208707c311d71de8fd397e08ef167bd00825
7
- data.tar.gz: 307205bf7fc9c09fd6eb662fc3d73215572ea9aa382d3f200593984ea14f49cd9f32c4fb4ae358e7af2c0ecd49cea45c995fd6b922dc5b09ed8b435e7c883191
6
+ metadata.gz: ddcac2bdad2e3f4496f3f80f9c7260fce0253087c9461bf733f0e6d901754b4933324e7931a3be329c500664fdbcd59d533db225572c077eacf4b62877d25e1d
7
+ data.tar.gz: c554a0010874b71a0c7fb48abd958dd919b4c789c12c362b001e4ee09668bb5eeee67681f3dad09386ccdbff4b2ff85b528569c76eb46794713f6d718fa1a355
@@ -135,10 +135,44 @@ module Metanorma
135
135
  else
136
136
  organization(xml, org[:name], node, !node.attr("publisher"), org)
137
137
  org_address(org, xml)
138
- org_logo(xml, org[:logo])
138
+ org_logo(xml, org[:logo] || authoritative_org_logo(node, org))
139
139
  end
140
140
  end
141
141
 
142
+ # Authoritative sourcing of copublisher logos
143
+ # (https://github.com/metanorma/metanorma/issues/346 ,
144
+ # https://github.com/metanorma/metanorma/issues/582 ): when the document
145
+ # attributes provide no logo for an organization, take it from the
146
+ # Relaton SDO logo store, embedded as a data URI. This is enabled by the
147
+ # `:sdo-logos:` document attribute, applies to copublishers only (the
148
+ # document's own default publisher is branded by the flavor, not the
149
+ # SDO store), and is best effort: an organization the store does not
150
+ # know, a store entry without logos, or an unreachable store leaves the
151
+ # logo out, and never fails the compile.
152
+ def authoritative_org_logo(node, org)
153
+ node.attr("sdo-logos") or return
154
+ abbr = org_name_and_abbrev(org, org[:name])[1].to_s.strip
155
+ abbr.empty? and return
156
+ own_publisher?(org, abbr) and return
157
+ logo = sdo_org_logo(abbr)
158
+ logo.nil? and return
159
+ logo.data_uri
160
+ rescue StandardError => e
161
+ @log.add("STANDOC_66", nil, params: [abbr, e.message])
162
+ nil
163
+ end
164
+
165
+ def own_publisher?(org, abbr)
166
+ d = default_publisher
167
+ !d.nil? && (org[:name] == d || abbr == d)
168
+ end
169
+
170
+ def sdo_org_logo(abbr)
171
+ store_org = Relaton.organization(abbr) or return
172
+ store_org.logo_query(format: "png").first ||
173
+ store_org.logo_query.first
174
+ end
175
+
142
176
  def org_attrs_parse_core(node, opts)
143
177
  source = opts[:source]&.detect { |s| node.attr(s) }
144
178
  org_attrs_simple_parse(node, opts, source) ||
@@ -201,6 +201,10 @@ module Metanorma
201
201
  STANDOC_65: { category: "AsciiDoc Input",
202
202
  error: "Unbalanced sourcecode markup: unclosed %s",
203
203
  severity: 0 },
204
+ STANDOC_66: { category: "Images",
205
+ error: "Could not fetch the authoritative logo for " \
206
+ "organization %s: %s",
207
+ severity: 2 },
204
208
  RELATON_1: { category: "Relaton",
205
209
  error: "(Error from Relaton) %s",
206
210
  severity: 0 },
@@ -19,6 +19,6 @@ module Metanorma
19
19
  end
20
20
 
21
21
  module Standoc
22
- VERSION = "3.5.4".freeze
22
+ VERSION = "3.5.5".freeze
23
23
  end
24
24
  end
@@ -41,7 +41,9 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency "metanorma-plugin-lutaml", "~> 0.7.55" # LutamlDataPreprocessor shipped in 0.7.55
42
42
  spec.add_dependency "metanorma-plugin-plantuml", "~> 1.0.0"
43
43
  spec.add_dependency "metanorma-utils", "~> 2.0.10"
44
- spec.add_dependency "moxml", "~> 0.5.84"
44
+ # moxml 0.6.0 removed the Opal surface (lutaml/moxml#516); owner
45
+ # call to update all to the latest moxml line.
46
+ spec.add_dependency "moxml", "~> 0.6.0"
45
47
  spec.add_dependency "leptris", "~> 1.9"
46
48
  spec.add_dependency "concurrent-ruby"
47
49
  spec.add_dependency "png_conform", "~> 0.1.0"
@@ -55,9 +57,8 @@ Gem::Specification.new do |spec|
55
57
  spec.add_dependency "relaton-iev", "~> 2.0"
56
58
  spec.add_dependency "svg_conform", "~> 0.2"
57
59
 
58
- spec.add_development_dependency "canon" # , "= 0.2.3"
59
60
  spec.add_development_dependency "debug"
60
- spec.add_development_dependency "equivalent-xml", "~> 0.6"
61
+ spec.add_development_dependency "canon", "~> 0.3"
61
62
  spec.add_development_dependency "guard", "~> 2.14"
62
63
  spec.add_development_dependency "guard-rspec", "~> 4.7"
63
64
  spec.add_development_dependency "openssl"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-standoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.4
4
+ version: 3.5.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: 2026-10-31 00:00:00.000000000 Z
11
+ date: 2026-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 0.5.84
187
+ version: 0.6.0
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 0.5.84
194
+ version: 0.6.0
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: leptris
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -296,20 +296,6 @@ dependencies:
296
296
  - - "~>"
297
297
  - !ruby/object:Gem::Version
298
298
  version: '0.2'
299
- - !ruby/object:Gem::Dependency
300
- name: canon
301
- requirement: !ruby/object:Gem::Requirement
302
- requirements:
303
- - - ">="
304
- - !ruby/object:Gem::Version
305
- version: '0'
306
- type: :development
307
- prerelease: false
308
- version_requirements: !ruby/object:Gem::Requirement
309
- requirements:
310
- - - ">="
311
- - !ruby/object:Gem::Version
312
- version: '0'
313
299
  - !ruby/object:Gem::Dependency
314
300
  name: debug
315
301
  requirement: !ruby/object:Gem::Requirement
@@ -325,19 +311,19 @@ dependencies:
325
311
  - !ruby/object:Gem::Version
326
312
  version: '0'
327
313
  - !ruby/object:Gem::Dependency
328
- name: equivalent-xml
314
+ name: canon
329
315
  requirement: !ruby/object:Gem::Requirement
330
316
  requirements:
331
317
  - - "~>"
332
318
  - !ruby/object:Gem::Version
333
- version: '0.6'
319
+ version: '0.3'
334
320
  type: :development
335
321
  prerelease: false
336
322
  version_requirements: !ruby/object:Gem::Requirement
337
323
  requirements:
338
324
  - - "~>"
339
325
  - !ruby/object:Gem::Version
340
- version: '0.6'
326
+ version: '0.3'
341
327
  - !ruby/object:Gem::Dependency
342
328
  name: guard
343
329
  requirement: !ruby/object:Gem::Requirement