metanorma-ietf 3.1.8 → 3.2.1

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: 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