metanorma-ietf 3.1.8 → 3.2.1

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: 2f8cb9a6cb2e25458bb5cb6ccf210d7633c2b204695b25f4ee8d6293153f8edd
4
- data.tar.gz: 214f0679505abceb77c0930949be92983c4388af7ecc03884818370c5e2e5c55
3
+ metadata.gz: 0caa70c59e0b00b7eaf785a68d24b0ec9368c4c0c45c1dee96ef973b0d8c0150
4
+ data.tar.gz: fcc948fcdb7b9e4b05596b741659052789c595deaf65798a517929bc30173faf
5
5
  SHA512:
6
- metadata.gz: a394ac99adbe0430c8577256b11da8ef3fc786aece5535b00d9c87cc40abd55743a9d3caa2577edd609aadb699eb8ca895bd08b6495f82b6451d33a918eb32d8
7
- data.tar.gz: a0c155b799fae53a21b451085b903bf1c7c5de400ecfc5130418dde096d47e3104ef5a412a755ecfe8d635ca42c10aa67f3dabd2d347246a0b63ed6c053cc25e
6
+ metadata.gz: 4699fae2fcb874453ca24a16295b72efe450f03dbb16f002884002b7b324f0f5bf03c843f0424a1a8395914d3db9d031f37b2ffb221d0fa2317e0a63c487b0cc
7
+ data.tar.gz: ba585e9aa3859230b9bf0ff1f574a33ded9268620e40c4438495c8b5a1731b0f8a89e2628b9e1d8a942b9a6d25bcecaba8e0557fc0ea943bebd5eed2c6265280
data/README.adoc CHANGED
@@ -23,12 +23,8 @@ gem, and aligns closely to it.
23
23
 
24
24
  The following outputs are generated:
25
25
 
26
- * RFC XML v2
27
- ** Metanorma `doctype`: `rfc2`
28
- ** Metanorma file extension: `xmlrfc` (not `xml`!)
29
-
30
26
  * RFC XML v3
31
- ** Metanorma `doctype`: `rfc3`
27
+ ** Metanorma `doctype`: `ietf`
32
28
  ** Metanorma file extension: `xmlrfc` (not `xml`!)
33
29
 
34
30
  The "`xml2rfc`" Vocabulary (hereinafter "`RFC XML`") is an XML-based language
@@ -37,18 +33,16 @@ https://www.ietf.org/id-info/guidelines.html[Internet-Drafts]
37
33
  and https://tools.ietf.org/html/rfc7322[RFCs (RFC7322)].
38
34
 
39
35
  This gem allows you to author these types of documents in AsciiDoc, and outputs
40
- RFC XML output in both v3 and v2 formats:
36
+ RFC XML output in v3 format:
41
37
 
42
38
  * v3 RFC XML (https://tools.ietf.org/html/rfc7991[RFC 7991])
43
- * v2 RFC XML (https://tools.ietf.org/html/rfc7749[RFC 7749])
44
39
 
45
40
  Its syntax is designed to be "`native-asciidoctor`" as much as possible, with
46
41
  some templated use of attributes to convey added information for RFC XML
47
42
  output.
48
43
 
49
- This README documents the AsciiRFC markup in full detail. For further
50
- information about AsciiRFC, please refer to the
51
- https://datatracker.ietf.org/doc/draft-ribose-asciirfc/[AsciiRFC IETF Internet-Draft].
44
+ For further information about the markup used, please refer to the
45
+ https://www.metanorma.org/author/ietf/[Writing IETF I-Ds and RFCs using AsciiDoc & Metanorma].
52
46
 
53
47
 
54
48
 
@@ -58,13 +52,12 @@ The preferred way to invoke this gem is via the `metanorma` command:
58
52
 
59
53
  [source,console]
60
54
  ----
61
- $ metanorma --type rfc3 a.adoc # output RFC XML v3
62
- $ metanorma --type rfc3 --extensions xmlrfc a.adoc # output RFC XML v3
55
+ $ metanorma --type ietf a.adoc # output RFC XML v3, text, HTML
56
+ $ metanorma --type ietf --extensions xmlrfc a.adoc # output RFC XML v3
63
57
  ----
64
58
 
65
- The gem translates the document into IETF XML RFC format.
66
-
67
- Text and HTML versions should be generated using the `xml2rfc` tool.
59
+ The gem translates the document into IETF XML RFC format. By default, the gem
60
+ then runs the `xml2rfc` tool to generate text and HTML versions as well.
68
61
 
69
62
 
70
63
  == Installation
@@ -141,18 +134,6 @@ include::spec/examples/example-v3.adoc[]
141
134
  ----
142
135
  endif::[]
143
136
 
144
- === RFC XML v2 Example
145
-
146
- ifdef::env-github[]
147
- include::spec/examples/example-v2.adoc[]
148
- endif::[]
149
- ifndef::env-github[]
150
- [source,asciidoc]
151
- ----
152
- include::spec/examples/example-v2.adoc[]
153
- ----
154
- endif::[]
155
-
156
137
 
157
138
  == Development
158
139
 
@@ -210,9 +191,7 @@ This gem is developed, maintained and funded by https://www.ribose.com[Ribose In
210
191
 
211
192
  == Examples
212
193
 
213
- ////
214
194
  * Example documents are avalable at the https://github.com/metanorma/mn-samples-ietf[mn-samples-ietf] repository.
215
- ////
216
195
 
217
196
  * Document templates are available at the https://github.com/metanorma/mn-templates-ietf[mn-templates-ietf] repository.
218
197
 
@@ -1,5 +1,3 @@
1
- require "mathml2asciimath"
2
-
3
1
  module IsoDoc
4
2
  module Ietf
5
3
  class RfcConvert < ::IsoDoc::Convert
@@ -60,7 +58,8 @@ module IsoDoc
60
58
 
61
59
  def stem_parse(node, out)
62
60
  stem = case node["type"]
63
- when "MathML" then MathML2AsciiMath.m2a(node.children.to_xml)
61
+ when "MathML" then Plurimath::Math
62
+ .parse(node.children.to_xml, "mathml").to_asciimath
64
63
  else HTMLEntities.new.encode(node.text)
65
64
  end
66
65
  out << "#{@openmathdelim} #{stem} #{@closemathdelim}"
@@ -82,12 +81,15 @@ module IsoDoc
82
81
  end
83
82
  end
84
83
 
84
+ def image_parse_attrs(node)
85
+ { src: node["src"], title: node["title"],
86
+ align: node["align"], name: node["filename"],
87
+ anchor: node["id"], type: "svg",
88
+ alt: node["alt"] }
89
+ end
90
+
85
91
  def image_parse(node, out, caption)
86
- attrs = { src: node["src"], title: node["title"],
87
- align: node["align"], name: node["filename"],
88
- anchor: node["id"], type: "svg",
89
- alt: node["alt"] }
90
- out.artwork **attr_code(attrs)
92
+ out.artwork **attr_code(image_parse_attrs(node))
91
93
  image_title_parse(out, caption)
92
94
  end
93
95
 
@@ -102,14 +104,10 @@ module IsoDoc
102
104
  def svg_parse(node, out)
103
105
  if node.parent.name == "image" then super
104
106
  else
105
- attrs = { src: node["src"], title: node["title"],
106
- align: node["align"], name: node["filename"],
107
- anchor: node["id"], type: "svg",
108
- alt: node["alt"] }
109
- out.artwork **attr_code(attrs) do |x|
110
- out = x
111
- super
112
- end
107
+ out.artwork **attr_code(image_parse_attrs(node)) do |x|
108
+ out = x
109
+ super
110
+ end
113
111
  end
114
112
  end
115
113
 
@@ -53,8 +53,8 @@ module Metanorma
53
53
  when :single then xml << "'#{node.text}'"
54
54
  when :superscript then xml.sup { |s| s << node.text }
55
55
  when :subscript then xml.sub { |s| s << node.text }
56
- when :asciimath then stem_parse(node.text, xml, :asciimath)
57
- when :latexmath then stem_parse(node.text, xml, :latexmath)
56
+ when :asciimath then stem_parse(node.text, xml, :asciimath, false)
57
+ when :latexmath then stem_parse(node.text, xml, :latexmath, false)
58
58
  else
59
59
  case node.role
60
60
  when "bcp14" then xml.bcp14 { |s| s << node.text.upcase }
@@ -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.2.2 -->
20
+ <!-- VERSION v1.2.4 -->
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">
@@ -192,9 +192,11 @@
192
192
  </attribute>
193
193
  </optional>
194
194
  <attribute name="citeas"/>
195
- <attribute name="type">
196
- <ref name="ReferenceFormat"/>
197
- </attribute>
195
+ <optional>
196
+ <attribute name="type">
197
+ <ref name="ReferenceFormat"/>
198
+ </attribute>
199
+ </optional>
198
200
  <optional>
199
201
  <attribute name="alt"/>
200
202
  </optional>
@@ -836,6 +838,26 @@
836
838
  <ref name="paragraph"/>
837
839
  </element>
838
840
  </define>
841
+ <define name="stem">
842
+ <element name="stem">
843
+ <attribute name="type">
844
+ <choice>
845
+ <value>MathML</value>
846
+ <value>AsciiMath</value>
847
+ <value>LatexMath</value>
848
+ </choice>
849
+ </attribute>
850
+ <attribute name="block">
851
+ <data type="boolean"/>
852
+ </attribute>
853
+ <oneOrMore>
854
+ <choice>
855
+ <text/>
856
+ <ref name="AnyElement"/>
857
+ </choice>
858
+ </oneOrMore>
859
+ </element>
860
+ </define>
839
861
  <define name="em">
840
862
  <element name="em">
841
863
  <zeroOrMore>
@@ -2046,6 +2068,9 @@
2046
2068
  </define>
2047
2069
  <define name="termdefinition">
2048
2070
  <element name="definition">
2071
+ <optional>
2072
+ <attribute name="type"/>
2073
+ </optional>
2049
2074
  <choice>
2050
2075
  <ref name="verbaldefinition"/>
2051
2076
  <ref name="nonverbalrep"/>
@@ -26,6 +26,9 @@
26
26
  <zeroOrMore>
27
27
  <ref name="area"/>
28
28
  </zeroOrMore>
29
+ <optional>
30
+ <ref name="stream"/>
31
+ </optional>
29
32
  <optional>
30
33
  <ref name="ipr"/>
31
34
  </optional>
@@ -315,4 +318,16 @@
315
318
  </optional>
316
319
  </element>
317
320
  </define>
321
+ <define name="stream">
322
+ <element name="stream">
323
+ <choice>
324
+ <value>IAB</value>
325
+ <value>IETF</value>
326
+ <value>Independent</value>
327
+ <value>IRTF</value>
328
+ <value>Legacy</value>
329
+ <value>Editorial</value>
330
+ </choice>
331
+ </element>
332
+ </define>
318
333
  </grammar>
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Ietf
3
- VERSION = "3.1.8".freeze
3
+ VERSION = "3.2.1".freeze
4
4
  end
5
5
  end
@@ -36,9 +36,8 @@ Gem::Specification.new do |spec|
36
36
  spec.require_paths = ["lib"]
37
37
  spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
38
38
 
39
- spec.add_dependency "mathml2asciimath"
40
39
  spec.add_dependency "metanorma-ietf-data"
41
- spec.add_dependency "metanorma-standoc", "~> 2.4.2"
40
+ spec.add_dependency "metanorma-standoc", "~> 2.5.4"
42
41
 
43
42
  spec.add_development_dependency "debug"
44
43
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-ietf
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.8
4
+ version: 3.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-06 00:00:00.000000000 Z
11
+ date: 2023-08-28 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: mathml2asciimath
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: metanorma-ietf-data
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,14 +30,14 @@ dependencies:
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: 2.4.2
33
+ version: 2.5.4
48
34
  type: :runtime
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: 2.4.2
40
+ version: 2.5.4
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: debug
57
43
  requirement: !ruby/object:Gem::Requirement