isodoc 3.7.8 → 3.7.9

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: cdda29c5e2ec54e77bb977a7f736b5cd215e3d54dfccf06213a0cb620bd111a7
4
- data.tar.gz: 94ca91d475ff5554300c74d15fcb0a68a08166728103d52e688e931f030f67bc
3
+ metadata.gz: 5416c33293635ef2ffe86ffc7bce147cb134b3e14351d34a9db58da7ee7ea2e8
4
+ data.tar.gz: 27e71f5da5054d3d4ce5bb3cfcead403431b46c9905c842e91db702324c0061d
5
5
  SHA512:
6
- metadata.gz: 2a1d38eab37a9aa533e94adc24e75414927376b65d9c0acca578c4009f688c4508abf5c4589f5352605087f45edb5c35af459f2b47868d5729caf4d029a1c754
7
- data.tar.gz: 2c19a2c45d35869b011beaa785ea5938c338a6a06acceb66a1b6378bfad2edc9dcf47ca1cf259b601790f584d351cb5058c16fa3b506c991ba6c78efb3d7adcd
6
+ metadata.gz: 2e07d640b30d683cd54d6a061e33dba1e472d64a65c39d8e46fc9b7f4c1630195bf48d4b1c8b65971134021f79b78d718888d2a89d93654fa5e2ae1cd025416d
7
+ data.tar.gz: 74e8eae6ceb68593355e1ec1f148d549eb9c20f420c53b697fd0df300a772ff8e230b6708f9dd3714a1d5bc35702c8301c9839a54bda25e466c753de26ff01d6
data/isodoc.gemspec CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
35
35
  spec.add_dependency "relaton-cli", "~> 3.0"
36
36
  # std_docid_semantic parses through the pubid monogem's flavor
37
37
  # registry (Pubid.eager_load_flavors!) — 2.x API, no per-flavor gems
38
- spec.add_dependency "pubid", "~> 2.0"
38
+ spec.add_dependency "pubid", "~> 2.0.3"
39
39
  # spec.add_dependency "metanorma-utils", "~> 2.0" # already in isodoc-i18n
40
40
  spec.add_dependency "mn2pdf", ">= 2.13"
41
41
  spec.add_dependency "mn-requirements", "~> 0.5.0"
@@ -218,7 +218,27 @@ module IsoDoc
218
218
  end
219
219
 
220
220
  def semx_parse(node, out)
221
- children_parse(node, out)
221
+ if @unresolved_eref_markers && node["element"] == "eref" &&
222
+ !(eref = semx_eref(node)).nil? &&
223
+ !(bibitemid = eref["bibitemid"]).to_s.empty?
224
+ unresolved_eref_span(node, out, eref, bibitemid)
225
+ else
226
+ children_parse(node, out)
227
+ end
228
+ end
229
+
230
+ # The <eref> element this <semx element="eref" source="…"> companion
231
+ # was generated for, looked up by the eref's id.
232
+ def semx_eref(node)
233
+ source_id = node["source"] or return nil
234
+ node.document.at_xpath("//*[local-name()='eref'][@id='#{source_id}']")
235
+ end
236
+
237
+ def unresolved_eref_span(node, out, eref, bibitemid)
238
+ attrs = { class: "unresolved-eref", "data-bibitemid" => bibitemid }
239
+ citeas = eref["citeas"]
240
+ attrs["data-citeas"] = citeas if citeas && !citeas.empty?
241
+ out.span(**attrs) { |s| children_parse(node, s) }
222
242
  end
223
243
 
224
244
  def children_parse(node, out)
data/lib/isodoc/init.rb CHANGED
@@ -77,6 +77,10 @@ module IsoDoc
77
77
  @modspecidentifierbase = options[:modspecidentifierbase]
78
78
  @sourcehighlighter = options[:sourcehighlighter]
79
79
  @output_formats = options[:output_formats] || {}
80
+ # Opt-in: wrap unresolved cross-doc erefs in spans carrying their
81
+ # bibitemid (data-bibitemid), so post-render tooling can resolve
82
+ # them across separately rendered documents.
83
+ @unresolved_eref_markers = options[:unresolved_eref_markers]
80
84
  end
81
85
 
82
86
  def init_arrangement(options)
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "3.7.8".freeze
2
+ VERSION = "3.7.9".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.7.8
4
+ version: 3.7.9
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-11-01 00:00:00.000000000 Z
11
+ date: 2026-11-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '2.0'
75
+ version: 2.0.3
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '2.0'
82
+ version: 2.0.3
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: mn2pdf
85
85
  requirement: !ruby/object:Gem::Requirement