isodoc 3.7.10 → 3.7.11

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: 2a7597a26426151a8787b78a912f38cf36a045e1ae765dbb77a2673b5f577249
4
- data.tar.gz: 8621b28dbc2ddc8ec42e37fffed352da1077a37c69057c3dc5c7aebceedc2c2f
3
+ metadata.gz: 270dafea0a539bced4411ce5c5c3963c4b24745e4727cecef7f716a7a1c8df7a
4
+ data.tar.gz: d1d8ab2d4848e53f6e74946a2d8de4ec6ac9d05e7fc620f00719e0ebec93bd3f
5
5
  SHA512:
6
- metadata.gz: 88275943d498d1122cb092bb12e6005531ba4d090aaf12cbeaefed250582cc74220a7dc5d62c9ee22efec34bbfb852890204a57cc0819f06ebbaab102a03036b
7
- data.tar.gz: 0cdbc74ec5a65f07efabb297b3a533f1d1faebfb3f3520cb4289ebe78b93b0de1922a6d49e531c1797857504f536b42dbfe277c3d88860abe0b70e49ecd1b9ad
6
+ metadata.gz: e816079e77f5c2075d02e7a16f27c3118c907d0ba4ce2198435b5241d28f75e8eb4892f883e067852aa42c059ed8e2448efd1f5351d3ae3d877ff21f5604ba3c
7
+ data.tar.gz: 1464929049db640fe3c5258f5cf8b89dbf4d3f8712c3f3ab882d399f93e63320344b946acca3cadad5a132c757fe5fb31da017cad64a2ff7fd9c7ab29490d07b
data/isodoc.gemspec CHANGED
@@ -31,20 +31,14 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency "base64", ">= 0.1.0"
32
32
  spec.add_dependency "bigdecimal"
33
33
  spec.add_dependency "html2doc", "~> 1.12"
34
- # spec.add_dependency "isodoc-i18n", "~> 1.5" # already in relaton-render and mn-requirements
35
- spec.add_dependency "relaton", "~> 3.0"
34
+ # spec.add_dependency "isodoc-i18n", "~> 1.5" # already in mn-requirements
35
+ spec.add_dependency "relaton", "~> 3.1.1"
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
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"
42
- # Allowance for the relaton 3.0 family (mirrors the relaton-cli
43
- # allowance in #824): relaton-render 3.0.0 joins the family's
44
- # versioning and restores the 1.x leaves as deprecated shims, so
45
- # flavor stacks boot against it.
46
- # Released isodoc lines keep resolving relaton-render 1.3.0; only a
47
- # stack on this floor co-resolves the relaton 3.0 line.
48
42
  spec.add_dependency "roman-numerals"
49
43
  spec.add_dependency "rouge", "~> 4.0"
50
44
  # lib/isodoc/css.rb requires sassc-embedded (SassC::Engine) at
@@ -1,4 +1,6 @@
1
- require "relaton-cli"
1
+ require "relaton"
2
+ require "relaton/bib"
3
+ require "relaton/cli"
2
4
 
3
5
  module IsoDoc
4
6
  class BibdataConfig < ::Lutaml::Model::Serializable
@@ -19,6 +19,9 @@ module IsoDoc
19
19
  link, node)
20
20
  non_locality_elems(node).each(&:remove)
21
21
  node.add_child(cleanup_entities(link))
22
+ # citation capsules embed bibitem reference markup, links included;
23
+ # links inserted after fmt_ref ran need the fmt treatment explicitly
24
+ fmt_ref_links(node)
22
25
  unnest_linkend(node)
23
26
  end
24
27
  # so not <origin bibitemid="ISO7301" citeas="ISO 7301">
@@ -3,13 +3,29 @@ module IsoDoc
3
3
  def fmt_ref(docxml)
4
4
  docxml.xpath(ns("//xref | //eref | //origin | //link")).each do |x|
5
5
  sem_xml_descendant?(x) and next
6
- tag = x.name
7
- y = Nokogiri::XML::Node.new("fmt-#{tag}", x.document)
8
- x.attributes.keys.reject { |a| a == "id" }.each { |a| y[a] = x[a] }
9
- n = semx_fmt_dup(x) # semx/fmt-xref for ease of processing
10
- n.children.each { |c| y << c }
11
- n << y
12
- x.next = n
6
+ fmt_ref_elem(x)
7
+ end
8
+ end
9
+
10
+ def fmt_ref_elem(x)
11
+ tag = x.name
12
+ y = Nokogiri::XML::Node.new("fmt-#{tag}", x.document)
13
+ x.attributes.keys.reject { |a| a == "id" }.each { |a| y[a] = x[a] }
14
+ n = semx_fmt_dup(x) # semx/fmt-xref for ease of processing
15
+ n.children.each { |c| y << c }
16
+ n << y
17
+ x.next = n
18
+ end
19
+
20
+ # Links arriving in markup that is inserted after fmt_ref has run —
21
+ # the styled eref citation capsules, which embed the reference
22
+ # rendering of a bibitem (including its availability link) — get the
23
+ # same semx/fmt-link treatment as document links, or the HTML and DOC
24
+ # renderers drop them along with the source element
25
+ def fmt_ref_links(node)
26
+ node.xpath(ns(".//link")).each do |x|
27
+ sem_xml_descendant?(x) and next
28
+ fmt_ref_elem(x)
13
29
  end
14
30
  end
15
31
 
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "3.7.10".freeze
2
+ VERSION = "3.7.11".freeze
3
3
  end
@@ -5,12 +5,22 @@
5
5
  # (b) no authoritative identifier in the reference composition: the
6
6
  # identifier renders as the biblio-tag ahead of the formattedref
7
7
  # ("ISO 712, _Cereals_ ..."), never duplicated inside it. Patents
8
- # keep theirs: the patent number is the citation itself.
8
+ # keep theirs: the patent number is the citation itself. And (c) the
9
+ # availability (location) slot renders as the unresolved entries do:
10
+ # "Available at: <link>...</link>" — the PresentationXML link is what
11
+ # the HTML and DOC renderers turn into the citation's anchor. Without
12
+ # the uri template the resolved bibitem's <uri> renders as bare text,
13
+ # and the reader loses the link exactly when the reference is
14
+ # authoritative enough to be machine-resolved (isodoc#882).
9
15
  name: "IsoDoc (ISO 690, presentation markup)"
10
16
  extends: author-date
17
+ scheme:
18
+ locale:
19
+ availableAt: "Available at:"
11
20
  templates:
12
21
  titleOpen: "<em>"
13
22
  titleClose: "</em>"
23
+ uri: '<link target="{{uri}}">{{uri}}</link>'
14
24
  reference: "{{creator}}. {{title}}. {{medium}}. {{edition}}. {{series}}. {{production}}, {{date}}. {{location}}."
15
25
  perType:
16
26
  - type: monograph
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.10
4
+ version: 3.7.11
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-05 00:00:00.000000000 Z
11
+ date: 2026-11-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '3.0'
61
+ version: 3.1.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '3.0'
68
+ version: 3.1.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pubid
71
71
  requirement: !ruby/object:Gem::Requirement