metanorma-ietf 3.3.10 → 3.4.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0d2c9fa6b75fa9f59989e179010230e67343367105c8243802ea4737048af37e
4
- data.tar.gz: 8c483e33478e424fa4f0023fdd6c1bb286f7d3411f738f8787f47e21b667e7a5
3
+ metadata.gz: 83a0728840ef2d5d5a7ace72f4bc2dfff97a85b6213e73511e15fd303313440f
4
+ data.tar.gz: 600e41fd0c3559f1b53ed072e6dc54905c049c3a41655ca2355af9451d0573d3
5
5
  SHA512:
6
- metadata.gz: 921af978d14ac5079cfc8bbf3d438992ba97c609f40540988bf725cf4f6a81f2523db4dd50688cf822b3bdabe1b4368c652e3c2622b990e1a402a38269baa346
7
- data.tar.gz: 14bee8fdffd3d971f777392d6d3dd3d4ef54c9927a476acaa28fd9b3bd9421094467666f025028bca09bceee9b4074028ba3874f7353fb9676035beebb7ff161
6
+ metadata.gz: 92d3d375108c3d6f441c9070a9c1bd454d8471f92b3fb6fddaaeff9c4f8f15b2fc06cdd46c907ff9fbf2d619632a9551c8d75dac8ad2866fb0994f79841edde7
7
+ data.tar.gz: f6740373061b304cbda897852a632686eb7675394d179d6ee05ad9bca4b0d1031b0cb45e0a371f5a41490e820b63079dedca33e318ae94d5ede1ca2ea34259d5
@@ -77,6 +77,15 @@ module IsoDoc
77
77
  end
78
78
  end
79
79
 
80
+ def dl_parse1(dlist, dterm, ddef)
81
+ dlist.dt **attr_code(anchor: dterm["id"]) do |term|
82
+ dt_parse(dterm, term)
83
+ end
84
+ dlist.dd **attr_code(anchor: ddef["id"]) do |listitem|
85
+ ddef.children.each { |n| parse(n, listitem) }
86
+ end
87
+ end
88
+
80
89
  def note_label(node)
81
90
  n = @xrefs.get[node["id"]]
82
91
  n.nil? || n[:label].nil? || n[:label].empty? and
@@ -166,9 +175,11 @@ module IsoDoc
166
175
  def formula_parse1(node, out)
167
176
  out.t **attr_code(anchor: node["id"]) do |p|
168
177
  parse(node.at(ns("./stem")), p)
169
- lbl = @xrefs.anchor(node["id"], :label, false)
170
- lbl.nil? or
171
- p << " (#{lbl})"
178
+ if lbl = @xrefs.anchor(node["id"], :label, false)
179
+ lbl.gsub!(%r{</?span[^>]*>}, "")
180
+ /^\(.+?\)$/.match?(lbl) or lbl = "(#{lbl})"
181
+ p << " #{lbl}"
182
+ end
172
183
  end
173
184
  end
174
185
 
@@ -3,11 +3,11 @@ module IsoDoc
3
3
  class RfcConvert < ::IsoDoc::Convert
4
4
  def u_cleanup(xmldoc)
5
5
  xmldoc.traverse do |n|
6
- next unless n.text?
7
- next unless %w(t blockquote li dd preamble td th annotation)
8
- .include? n.parent.name
9
-
10
- n.replace(n.text.gsub(/[\u0080-\uffff]/, "<u>\\0</u>"))
6
+ n.text? or next
7
+ %w(t blockquote li dd preamble td th annotation)
8
+ .include? n.parent.name or next
9
+ n.replace(@c.encode(n.text, :basic).gsub(/[\u0080-\uffff]/,
10
+ "<u>\\0</u>"))
11
11
  end
12
12
  end
13
13
 
@@ -138,7 +138,8 @@ module IsoDoc
138
138
  section: eref_section(node),
139
139
  relative: eref_relative(node),
140
140
  sectionFormat: node["displayFormat"]) do |l|
141
- linkend.each { |n| parse(n, l) }
141
+ linkend.map(&:text).join.strip.empty? or
142
+ linkend.each { |n| parse(n, l) }
142
143
  end
143
144
  end
144
145
 
@@ -148,10 +149,11 @@ module IsoDoc
148
149
  end
149
150
 
150
151
  def eref_section(node)
151
- @isodoc.eref_localities(
152
+ ret = @isodoc.eref_localities(
152
153
  node.xpath(ns("./locality | ./localityStack")), nil, node
153
- )&.sub(/^,/, "")&.sub(/^\s*(Sections?|Clauses?)/, "")&.strip
154
- &.sub(/,$/, "") || ""
154
+ ) or return ""
155
+ ret.gsub(%r{</?span[^>]*>}, "").sub(/^,/, "")
156
+ .sub(/^\s*(Sections?|Clauses?)/, "").strip.sub(/,$/, "")
155
157
  end
156
158
 
157
159
  def origin_parse(node, out)
@@ -171,6 +173,10 @@ module IsoDoc
171
173
  def bookmark_parse(node, out)
172
174
  out.bookmark nil, **attr_code(anchor: node["id"])
173
175
  end
176
+
177
+ def span_parse(node, out)
178
+ children_parse(node, out)
179
+ end
174
180
  end
175
181
  end
176
182
  end
@@ -23,6 +23,10 @@ module IsoDoc
23
23
  i18nhash: @i18n.get)
24
24
  end
25
25
 
26
+ def implicit_reference(bib)
27
+ bib["hidden"] == "true"
28
+ end
29
+
26
30
  def bibliography1(node, out)
27
31
  out.references **attr_code(anchor: node["id"]) do |div|
28
32
  title = node.at(ns("./title")) and div.name do |name|
@@ -12,9 +12,9 @@ module IsoDoc
12
12
  end
13
13
 
14
14
  def recommendation_parse1(node, out)
15
- recommendation_name(node.at(ns("./name")), out)
15
+ recommendation_name(node.at(ns("./fmt-name")), out)
16
16
  node.children.each do |n|
17
- parse(n, out) unless n.name == "name"
17
+ parse(n, out) unless n.name == "fmt-name"
18
18
  end
19
19
  end
20
20
 
@@ -1,6 +1,10 @@
1
1
  module IsoDoc
2
2
  module Ietf
3
3
  class RfcConvert < ::IsoDoc::Convert
4
+ def set_termdomain(termdomain)
5
+ @termdomain = termdomain
6
+ end
7
+
4
8
  def definition_parse(node, out)
5
9
  node.children.each { |n| parse(n, out) }
6
10
  end
@@ -27,6 +31,10 @@ module IsoDoc
27
31
  end
28
32
 
29
33
  def term_parse(node, out)
34
+ if domain = node.at(ns("./domain"))
35
+ set_termdomain(domain.text)
36
+ domain["hidden"] = "true"
37
+ end
30
38
  name = node.at(ns(".//name"))
31
39
  out.name do |p|
32
40
  name.children.each { |n| parse(n, p) }
@@ -38,7 +46,12 @@ module IsoDoc
38
46
  end
39
47
 
40
48
  def termdef_parse(node, out)
41
- set_termdomain("")
49
+ if domain = node.at(ns("./domain"))
50
+ set_termdomain(domain.text)
51
+ domain["hidden"] = "true"
52
+ else
53
+ set_termdomain("")
54
+ end
42
55
  node.xpath(ns("./definition")).size > 1 and
43
56
  @isodoc.multidef(node)
44
57
  clause_parse(node, out)
@@ -47,15 +60,25 @@ module IsoDoc
47
60
  def termdocsource_parse(_node, _out); end
48
61
 
49
62
  def concept_parse(node, out)
50
- if d = node.at(ns("./renderterm"))
51
- out.em do |em|
52
- d.children.each { |n| parse(n, em) }
53
- end
54
- out << " "
63
+ ref = node.at(ns("./xref | ./eref | ./termref"))
64
+ render = node.at(ns("./renderterm"))
65
+ !ref && !render and return node.children.each { |n| parse(n, out) }
66
+ !render or concept_render(render, ref, out)
67
+ ref or return
68
+ concept_ref(ref, out)
69
+ end
70
+
71
+ def concept_render(render, ref, out)
72
+ out.em do |em|
73
+ render.children.each { |n| parse(n, em) }
55
74
  end
75
+ ref and out << " "
76
+ end
77
+
78
+ def concept_ref(ref, out)
79
+ ref or return
56
80
  out << "[term defined in "
57
- r = node.at(ns("./xref | ./eref | ./termref"))
58
- parse(r, out)
81
+ parse(ref, out)
59
82
  out << "]"
60
83
  end
61
84
 
@@ -7,12 +7,11 @@ module IsoDoc
7
7
  docxml.xpath(ns("//term[descendant::termnote]")).each do |t|
8
8
  c = IsoDoc::XrefGen::Counter.new
9
9
  notes = t.xpath(ns("./termnote"))
10
- notes.each do |n|
11
- next if n["id"].nil? || n["id"].empty?
12
-
10
+ notes.noblank.each do |n|
13
11
  idx = notes.size == 1 ? "" : " #{c.increment(n).print}"
14
12
  @anchors[n["id"]] =
15
- anchor_struct(idx, n, @labels["note_xref"], "note", false)
13
+ anchor_struct(idx, n, @labels["note_xref"], "note",
14
+ { container: true })
16
15
  end
17
16
  end
18
17
  end
@@ -1783,9 +1783,21 @@ that the `number` given for the series applies to the second iteration of number
1783
1783
  May be used to differentiate rendering of notes in bibliographies</a:documentation>
1784
1784
  </attribute>
1785
1785
  </optional>
1786
- <ref name="LocalizedMarkedUpString">
1786
+ <ref name="LocalizedStringAttributes">
1787
1787
  <a:documentation>The content of the note</a:documentation>
1788
1788
  </ref>
1789
+ <choice>
1790
+ <oneOrMore>
1791
+ <ref name="BasicBlockNoId">
1792
+ <a:documentation>Multiple blocks of content</a:documentation>
1793
+ </ref>
1794
+ </oneOrMore>
1795
+ <oneOrMore>
1796
+ <ref name="TextElement">
1797
+ <a:documentation>Single block of content</a:documentation>
1798
+ </ref>
1799
+ </oneOrMore>
1800
+ </choice>
1789
1801
  </element>
1790
1802
  </define>
1791
1803
  <define name="bibabstract">
@@ -17,7 +17,7 @@
17
17
  these elements; we just want one namespace for any child grammars
18
18
  of this.
19
19
  -->
20
- <!-- VERSION v1.3.4 -->
20
+ <!-- VERSION v1.4.1 -->
21
21
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22
22
  <include href="reqt.rng"/>
23
23
  <include href="basicdoc.rng">
@@ -326,7 +326,7 @@ normative or informative references, some split references into sections organiz
326
326
  <a:documentation>Content of note</a:documentation>
327
327
  <oneOrMore>
328
328
  <choice>
329
- <ref name="paragraph"/>
329
+ <ref name="paragraph-with-footnote"/>
330
330
  <ref name="ul"/>
331
331
  <ref name="ol"/>
332
332
  <ref name="dl"/>
@@ -412,7 +412,7 @@ normative or informative references, some split references into sections organiz
412
412
  <element name="note">
413
413
  <ref name="OptionalId"/>
414
414
  <oneOrMore>
415
- <ref name="paragraph"/>
415
+ <ref name="paragraph-with-footnote"/>
416
416
  </oneOrMore>
417
417
  </element>
418
418
  </define>
@@ -1977,7 +1977,7 @@ used in document amendments</a:documentation>
1977
1977
  <oneOrMore>
1978
1978
  <choice>
1979
1979
  <a:documentation>Content of the verbal representation of the term</a:documentation>
1980
- <ref name="paragraph"/>
1980
+ <ref name="paragraph-with-footnote"/>
1981
1981
  <ref name="dl"/>
1982
1982
  <ref name="ol"/>
1983
1983
  <ref name="ul"/>
@@ -2015,7 +2015,7 @@ used in document amendments</a:documentation>
2015
2015
  <oneOrMore>
2016
2016
  <choice>
2017
2017
  <a:documentation>Content of the term note</a:documentation>
2018
- <ref name="paragraph"/>
2018
+ <ref name="paragraph-with-footnote"/>
2019
2019
  <ref name="ul"/>
2020
2020
  <ref name="ol"/>
2021
2021
  <ref name="dl"/>
@@ -2037,7 +2037,7 @@ used in document amendments</a:documentation>
2037
2037
  <ref name="dl"/>
2038
2038
  <ref name="quote"/>
2039
2039
  <ref name="sourcecode"/>
2040
- <ref name="paragraph"/>
2040
+ <ref name="paragraph-with-footnote"/>
2041
2041
  <ref name="figure"/>
2042
2042
  </choice>
2043
2043
  </oneOrMore>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Ietf
3
- VERSION = "3.3.10".freeze
3
+ VERSION = "3.4.2".freeze
4
4
  end
5
5
  end
@@ -37,7 +37,7 @@ Gem::Specification.new do |spec|
37
37
  spec.required_ruby_version = Gem::Requirement.new(">= 3.1.0")
38
38
 
39
39
  spec.add_dependency "metanorma-ietf-data"
40
- spec.add_dependency "metanorma-standoc", "~> 2.9.3"
40
+ spec.add_dependency "metanorma-standoc", "~> 2.10.2"
41
41
  spec.add_dependency "relaton-render"
42
42
 
43
43
  spec.add_development_dependency "debug"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ietf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.10
4
+ version: 3.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-10-14 00:00:00.000000000 Z
11
+ date: 2024-12-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: metanorma-ietf-data
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 2.9.3
33
+ version: 2.10.2
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 2.9.3
40
+ version: 2.10.2
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: relaton-render
43
43
  requirement: !ruby/object:Gem::Requirement