metanorma-ietf 3.6.4 → 3.6.6
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 +4 -4
- data/lib/isodoc/ietf/cleanup.rb +6 -1
- data/lib/isodoc/ietf/front.rb +5 -4
- data/lib/isodoc/ietf/i18n-en.yaml +2 -0
- data/lib/isodoc/ietf/inline.rb +1 -0
- data/lib/isodoc/ietf/metadata.rb +4 -2
- data/lib/isodoc/ietf/references.rb +21 -9
- data/lib/metanorma/ietf/biblio.rng +1 -1
- data/lib/metanorma/ietf/cleanup.rb +2 -4
- data/lib/metanorma/ietf/converter.rb +2 -0
- data/lib/metanorma/ietf/ietf.rng +3 -3
- data/lib/metanorma/ietf/isodoc.rng +35 -10
- data/lib/metanorma/ietf/log.rb +26 -0
- data/lib/metanorma/ietf/validate.rb +3 -7
- data/lib/metanorma/ietf/version.rb +1 -1
- data/lib/relaton/render/config.yml +1 -1
- data/lib/relaton/render/fields.rb +2 -2
- data/lib/relaton/render/parse.rb +1 -1
- data/metanorma-ietf.gemspec +3 -2
- metadata +23 -8
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: edd5d53757c7142ccf379c7ffb83ecc79874c544593de69a9b1421a00e90cc3f
|
|
4
|
+
data.tar.gz: ce343131a888ca5c1b617abfea081e2bee46c2f6c2162bd99331e0ce05add13e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3440d8db12dda0936d60ded38bbe47c72fb76ffbbc5aac8ee914b0bb03f3808f93078bba4aeb69edf4133d7b4d6e2561419b9b1e8eaedeb2ce803f0817db1c73
|
|
7
|
+
data.tar.gz: 74564e708027fd31b303cf215d6a5a98c25e4e8ed40bf58e207805d9a7a49ac6a882f483fbae3db4fdc92c973c5db22deb133b3ecfb0380d471b9d32954d1485
|
data/lib/isodoc/ietf/cleanup.rb
CHANGED
|
@@ -99,7 +99,12 @@ module IsoDoc
|
|
|
99
99
|
end
|
|
100
100
|
|
|
101
101
|
def front_cleanup(xmldoc)
|
|
102
|
-
xmldoc.xpath("//title").each
|
|
102
|
+
xmldoc.xpath("//title").each do |s|
|
|
103
|
+
s.xpath(".//eref[normalize-space(.)='']").each do |e|
|
|
104
|
+
e.replace(e["target"])
|
|
105
|
+
end
|
|
106
|
+
s.children = s.text
|
|
107
|
+
end
|
|
103
108
|
xmldoc.xpath("//reference/front[not(author)]").each do |f|
|
|
104
109
|
insert = f.at("./seriesInfo[last()]") || f.at("./title")
|
|
105
110
|
insert.next = "<author surname='Unknown'/>"
|
data/lib/isodoc/ietf/front.rb
CHANGED
|
@@ -72,7 +72,8 @@ module IsoDoc
|
|
|
72
72
|
isoxml.xpath("//xmlns:bibdata/xmlns:contributor[xmlns:role/@type = " \
|
|
73
73
|
"'author' or xmlns:role/@type = 'editor']").each do |c|
|
|
74
74
|
role = c.at(ns("./role/@type")).text == "editor" ? "editor" : nil
|
|
75
|
-
|
|
75
|
+
c.at(ns("./organization/subdivision[@type = 'Workgroup']")) and next
|
|
76
|
+
(c.at(ns("./organization")) and org_author(c, role, front)) or
|
|
76
77
|
person_author(c, role, front)
|
|
77
78
|
end
|
|
78
79
|
end
|
|
@@ -104,7 +105,7 @@ module IsoDoc
|
|
|
104
105
|
front.author **attrs do |a|
|
|
105
106
|
org = contrib.at(ns("./person/affiliation/organization")) and
|
|
106
107
|
organization(org, a, contrib.document.at(ns("//showOnFrontPage")))
|
|
107
|
-
address(contrib.
|
|
108
|
+
address(contrib.at(ns(".//address")),
|
|
108
109
|
contrib.at(ns(".//phone[not(@type = 'fax')]")),
|
|
109
110
|
contrib.at(ns(".//phone[@type = 'fax']")),
|
|
110
111
|
contrib.xpath(ns(".//email")), contrib.at(ns(".//uri")), a)
|
|
@@ -126,13 +127,13 @@ module IsoDoc
|
|
|
126
127
|
name = org.at(ns("./name"))&.text
|
|
127
128
|
out.organization name, **attr_code(
|
|
128
129
|
showOnFrontPage: show&.text, ascii: output_if_translit(name),
|
|
129
|
-
asciiAbbrev: output_if_translit(org.at(ns("./abbreviation"))),
|
|
130
|
+
asciiAbbrev: output_if_translit(org.at(ns("./abbreviation"))&.text),
|
|
130
131
|
abbrev: org.at(ns("./abbreviation"))
|
|
131
132
|
)
|
|
132
133
|
end
|
|
133
134
|
|
|
134
135
|
def address(addr, phone, fax, email, uri, out)
|
|
135
|
-
return unless addr || phone || fax || email || uri
|
|
136
|
+
return unless addr || phone || fax || !email.empty? || uri
|
|
136
137
|
|
|
137
138
|
out.address do |a|
|
|
138
139
|
addr and postal(addr, a)
|
data/lib/isodoc/ietf/inline.rb
CHANGED
data/lib/isodoc/ietf/metadata.rb
CHANGED
|
@@ -29,7 +29,8 @@ module IsoDoc
|
|
|
29
29
|
|
|
30
30
|
def docid(isoxml, _out)
|
|
31
31
|
dn = isoxml.at(ns("//bibdata/docnumber"))
|
|
32
|
-
set(:docnumber, dn&.text&.sub(/^rfc-/, "")
|
|
32
|
+
set(:docnumber, dn&.text&.strip&.sub(/^rfc-/, "")
|
|
33
|
+
&.sub(/\.[a-z0-9]+$/i, ""))
|
|
33
34
|
end
|
|
34
35
|
|
|
35
36
|
def author(xml, _out)
|
|
@@ -39,7 +40,8 @@ module IsoDoc
|
|
|
39
40
|
|
|
40
41
|
def wg(xml)
|
|
41
42
|
workgroups = []
|
|
42
|
-
xml.xpath(ns("//bibdata/
|
|
43
|
+
xml.xpath(ns("//bibdata/contributor[role/description = 'committee']/" \
|
|
44
|
+
"organization/subdivision[@type = 'Workgroup']/name")).each do |wg|
|
|
43
45
|
workgroups << wg.text
|
|
44
46
|
end
|
|
45
47
|
set(:wg, workgroups)
|
|
@@ -29,9 +29,7 @@ module IsoDoc
|
|
|
29
29
|
|
|
30
30
|
def bibliography1(node, out)
|
|
31
31
|
out.references **attr_code(anchor: node["id"]) do |div|
|
|
32
|
-
|
|
33
|
-
title.children.each { |n| parse(n, name) }
|
|
34
|
-
end
|
|
32
|
+
bibliography1_title(node, div)
|
|
35
33
|
node.elements.select do |e|
|
|
36
34
|
%w(references clause).include? e.name
|
|
37
35
|
end.each { |e| bibliography1(e, out) }
|
|
@@ -42,6 +40,12 @@ module IsoDoc
|
|
|
42
40
|
end
|
|
43
41
|
end
|
|
44
42
|
|
|
43
|
+
def bibliography1_title(node, div)
|
|
44
|
+
title = node.at(ns("./title")) and div.name do |name|
|
|
45
|
+
title.children.each { |n| parse(n, name) }
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
|
|
45
49
|
def biblio_list(node, div, _biblio)
|
|
46
50
|
i = 0
|
|
47
51
|
node.xpath(ns("./bibitem | ./note")).each do |b|
|
|
@@ -66,15 +70,23 @@ module IsoDoc
|
|
|
66
70
|
end
|
|
67
71
|
|
|
68
72
|
def bibitem_render(ref, bib)
|
|
73
|
+
bib1 = bibitem_render_prep(bib)
|
|
74
|
+
if (f = bib1.at(ns("./formattedref"))) && !bib1.at(ns("./title"))
|
|
75
|
+
ref.front do |front|
|
|
76
|
+
front.title do |t|
|
|
77
|
+
children_parse(f, t)
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
else
|
|
81
|
+
ref << @bibrenderer.render(bib1.to_xml, embedded: true)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def bibitem_render_prep(bib)
|
|
69
86
|
bib1 = bib.clone
|
|
70
87
|
@isodoc.prep_for_rendering(bib1)
|
|
71
88
|
bib1.namespace = nil
|
|
72
|
-
|
|
73
|
-
ref << if bib1.at(ns("./formattedref")) && !bib1.at(ns("./title"))
|
|
74
|
-
"<front><title>#{ret}</title></front>"
|
|
75
|
-
else
|
|
76
|
-
ret
|
|
77
|
-
end
|
|
89
|
+
bib1
|
|
78
90
|
end
|
|
79
91
|
end
|
|
80
92
|
end
|
|
@@ -869,7 +869,7 @@ depending on whether the items exist as independent documents, or are parts of a
|
|
|
869
869
|
</zeroOrMore>
|
|
870
870
|
</element>
|
|
871
871
|
</define>
|
|
872
|
-
<define name="BibItemType"
|
|
872
|
+
<define name="BibItemType">
|
|
873
873
|
<a:documentation>Type of bibliographic item.
|
|
874
874
|
The value list complies with the types provided in ISO 690:2021.
|
|
875
875
|
NOTE: These values represent a strict superset to BibTeX
|
|
@@ -13,7 +13,7 @@ module Metanorma
|
|
|
13
13
|
def boilerplate_isodoc(xmldoc)
|
|
14
14
|
x = xmldoc.dup
|
|
15
15
|
x.root.add_namespace(nil, xml_namespace)
|
|
16
|
-
#xml = Nokogiri::XML(x.to_xml)
|
|
16
|
+
# xml = Nokogiri::XML(x.to_xml)
|
|
17
17
|
@isodoc ||= isodoc(@lang, @script, @locale)
|
|
18
18
|
# initialise @isodoc.xrefs, for @isodoc.xrefs.info
|
|
19
19
|
@isodoc
|
|
@@ -41,8 +41,7 @@ module Metanorma
|
|
|
41
41
|
c["to"] = id
|
|
42
42
|
r.replace("<bookmark id='#{id}'/>")
|
|
43
43
|
else
|
|
44
|
-
@log.add("
|
|
45
|
-
"No matching annotation for cref:[#{r.text}]", severity: 1)
|
|
44
|
+
@log.add("IETF_1", r, params: [r.text])
|
|
46
45
|
end
|
|
47
46
|
end
|
|
48
47
|
end
|
|
@@ -103,7 +102,6 @@ module Metanorma
|
|
|
103
102
|
def section_names_refs_cleanup(xml); end
|
|
104
103
|
|
|
105
104
|
def note_cleanup(xmldoc); end
|
|
106
|
-
|
|
107
105
|
end
|
|
108
106
|
end
|
|
109
107
|
end
|
data/lib/metanorma/ietf/ietf.rng
CHANGED
|
@@ -259,11 +259,11 @@
|
|
|
259
259
|
<ref name="index-tertiary"/>
|
|
260
260
|
</element>
|
|
261
261
|
</define>
|
|
262
|
-
<define name="TextElement" combine="choice">
|
|
263
|
-
<ref name="review"/>
|
|
264
|
-
</define>
|
|
265
262
|
</include>
|
|
266
263
|
<!-- end overrides -->
|
|
264
|
+
<define name="TextElement" combine="choice">
|
|
265
|
+
<ref name="review"/>
|
|
266
|
+
</define>
|
|
267
267
|
<define name="ReviewAttributes" combine="interleave">
|
|
268
268
|
<optional>
|
|
269
269
|
<attribute name="display"/>
|
|
@@ -311,17 +311,28 @@ and is intended to be referenced by a callout within the source code</a:document
|
|
|
311
311
|
</ref>
|
|
312
312
|
</optional>
|
|
313
313
|
<choice>
|
|
314
|
-
<a:documentation>Content of the figure</a:documentation>
|
|
315
|
-
<ref name="image"
|
|
314
|
+
<a:documentation>Content of the figure </a:documentation>
|
|
315
|
+
<ref name="image">
|
|
316
|
+
<a:documentation>by default the content of a figure is a media file</a:documentation>
|
|
317
|
+
</ref>
|
|
316
318
|
<ref name="video"/>
|
|
317
319
|
<ref name="audio"/>
|
|
318
|
-
<ref name="pre"
|
|
320
|
+
<ref name="pre">
|
|
321
|
+
<a:documentation>figures can contain ASCII art</a:documentation>
|
|
322
|
+
</ref>
|
|
319
323
|
<oneOrMore>
|
|
320
|
-
<ref name="paragraph-with-footnote"
|
|
324
|
+
<ref name="paragraph-with-footnote">
|
|
325
|
+
<a:documentation>figures can contain discursive art</a:documentation>
|
|
326
|
+
</ref>
|
|
321
327
|
</oneOrMore>
|
|
322
328
|
<zeroOrMore>
|
|
323
|
-
<ref name="figure"
|
|
329
|
+
<ref name="figure">
|
|
330
|
+
<a:documentation>subfigures, nested directly within a figure</a:documentation>
|
|
331
|
+
</ref>
|
|
324
332
|
</zeroOrMore>
|
|
333
|
+
<ref name="table">
|
|
334
|
+
<a:documentation>Table is understood in this context to be a tabular arrangement of subfigures</a:documentation>
|
|
335
|
+
</ref>
|
|
325
336
|
</choice>
|
|
326
337
|
<zeroOrMore>
|
|
327
338
|
<ref name="fn">
|
|
@@ -354,17 +365,28 @@ and is intended to be referenced by a callout within the source code</a:document
|
|
|
354
365
|
</ref>
|
|
355
366
|
</optional>
|
|
356
367
|
<choice>
|
|
357
|
-
<a:documentation>Content of the figure</a:documentation>
|
|
358
|
-
<ref name="image-no-id"
|
|
368
|
+
<a:documentation>Content of the figure </a:documentation>
|
|
369
|
+
<ref name="image-no-id">
|
|
370
|
+
<a:documentation>by default the content of a figure is a media file</a:documentation>
|
|
371
|
+
</ref>
|
|
359
372
|
<ref name="video-no-id"/>
|
|
360
373
|
<ref name="audio-no-id"/>
|
|
361
|
-
<ref name="pre-no-id"
|
|
374
|
+
<ref name="pre-no-id">
|
|
375
|
+
<a:documentation>figures can contain ASCII art</a:documentation>
|
|
376
|
+
</ref>
|
|
362
377
|
<oneOrMore>
|
|
363
|
-
<ref name="paragraph-with-footnote-no-id"
|
|
378
|
+
<ref name="paragraph-with-footnote-no-id">
|
|
379
|
+
<a:documentation>figures can contain discursive art</a:documentation>
|
|
380
|
+
</ref>
|
|
364
381
|
</oneOrMore>
|
|
365
382
|
<zeroOrMore>
|
|
366
|
-
<ref name="figure-no-id"
|
|
383
|
+
<ref name="figure-no-id">
|
|
384
|
+
<a:documentation>subfigures, nested directly within a figure</a:documentation>
|
|
385
|
+
</ref>
|
|
367
386
|
</zeroOrMore>
|
|
387
|
+
<ref name="table-no-id">
|
|
388
|
+
<a:documentation>Table is understood in this context to be a tabular arrangement of subfigures</a:documentation>
|
|
389
|
+
</ref>
|
|
368
390
|
</choice>
|
|
369
391
|
<zeroOrMore>
|
|
370
392
|
<ref name="fn">
|
|
@@ -876,6 +898,9 @@ titlecase, or lowercase</a:documentation>
|
|
|
876
898
|
<data type="boolean"/>
|
|
877
899
|
</attribute>
|
|
878
900
|
</optional>
|
|
901
|
+
<ref name="LocalizedStringAttributes">
|
|
902
|
+
<a:documentation>Specify language of bibitem, can be used to render it with language-specific bibliographic style</a:documentation>
|
|
903
|
+
</ref>
|
|
879
904
|
<ref name="ReducedBibliographicItem"/>
|
|
880
905
|
</element>
|
|
881
906
|
</define>
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
module Metanorma
|
|
2
|
+
module Ietf
|
|
3
|
+
class Converter
|
|
4
|
+
IETF_LOG_MESSAGES = {
|
|
5
|
+
# rubocop:disable Naming/VariableNumber
|
|
6
|
+
"IETF_1": { category: "Crossrefences",
|
|
7
|
+
error: "No matching annotation for cref:[%s]",
|
|
8
|
+
severity: 1 },
|
|
9
|
+
"IETF_2": { category: "Document Attributes",
|
|
10
|
+
error: "Editorial stream must have Informational status",
|
|
11
|
+
severity: 2 },
|
|
12
|
+
"IETF_3": { category: "Images",
|
|
13
|
+
error: "image %s is not SVG!",
|
|
14
|
+
severity: 1 },
|
|
15
|
+
"IETF_4": { category: "Document Attributes",
|
|
16
|
+
error: "IETF: unrecognised working group %s",
|
|
17
|
+
severity: 1 },
|
|
18
|
+
}.freeze
|
|
19
|
+
# rubocop:enable Naming/VariableNumber
|
|
20
|
+
|
|
21
|
+
def log_messages
|
|
22
|
+
super.merge(IETF_LOG_MESSAGES)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -19,15 +19,13 @@ module Metanorma
|
|
|
19
19
|
stream = doc.at("//bibdata/series[@type = 'stream']/title")&.text
|
|
20
20
|
status = doc.at("//bibdata/status/stage")&.text
|
|
21
21
|
stream == "editorial" && status != "informational" and
|
|
22
|
-
@log.add("
|
|
23
|
-
"Editorial stream must have Informational status")
|
|
22
|
+
@log.add("IETF_2", nil)
|
|
24
23
|
end
|
|
25
24
|
|
|
26
25
|
def image_validate(doc)
|
|
27
26
|
doc.xpath("//image").each do |i|
|
|
28
27
|
i["mimetype"] == "image/svg+xml" and next
|
|
29
|
-
@log.add("
|
|
30
|
-
severity: 1)
|
|
28
|
+
@log.add("IETF_3", i, params: [i["src"][0, 40]])
|
|
31
29
|
end
|
|
32
30
|
end
|
|
33
31
|
|
|
@@ -37,9 +35,7 @@ module Metanorma
|
|
|
37
35
|
"organization/subdivision[@type = 'Workgroup']/name").each do |wg|
|
|
38
36
|
wg_norm = wg.text.sub(/ (Working|Research) Group$/, "")
|
|
39
37
|
@workgroups.include?(wg_norm) and next
|
|
40
|
-
@log.add("
|
|
41
|
-
"IETF: unrecognised working group #{wg.text}",
|
|
42
|
-
severity: 1)
|
|
38
|
+
@log.add("IETF_4", nil, params: [wg.text])
|
|
43
39
|
end
|
|
44
40
|
end
|
|
45
41
|
|
|
@@ -20,7 +20,7 @@ template:
|
|
|
20
20
|
# skip standardidentifier, it is inserted in front of formattedref within metanorma
|
|
21
21
|
# date is cleaned up into RFC XML formatting afterwards
|
|
22
22
|
# ref-included is cleaned up as referencegroup/reference in RFC XML afterwards
|
|
23
|
-
standard: "{% if stream %}<stream>{{stream}}</stream>{% endif %} <front> <title>{{ title }}</title> {{ creatornames }} <date_cleanme='true'>{{date}}</date> {% for k in keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{abstract}}</abstract> </front> {
|
|
23
|
+
standard: "{% if stream %}<stream>{{stream}}</stream>{% endif %} <front> <title>{{ title }}</title> {{ creatornames }} <date_cleanme='true'>{{date}}</date> {% for k in keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{abstract}}</abstract> </front> {%for d in doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{authoritative_identifier | join: ', '}}</refcontent> {% endif %} {% for i in included %}<ref-included target='{{ i.uris[0].content }}'> {% if i.stream %}<stream>{{i.stream}}</stream>{% endif %} <front> <title>{% if i.title %}{{ i.title}}{%else%}[TITLE]{%endif%}</title> {% if i.creatornames %}{{ i.creatornames }}{%else%}<author></author>{%endif%} <date_cleanme='true'>{{i.date}}</date> {% for k in i.keywords %}<keyword>{{k}}</keyword>{%endfor%} <abstract_cleanme='true'>{{i.abstract}}</abstract> </front> {{ series }} {%for d in i.doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in i.authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | replace: '<esc> ': '<esc>' | replace: ' </esc>' : '</esc>' | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{i.authoritative_identifier | join: ', '}}</refcontent> {% endif %}</ref-included>{% endfor %}"
|
|
24
24
|
website: standard
|
|
25
25
|
book: standard
|
|
26
26
|
booklet: standard
|
|
@@ -2,7 +2,7 @@ module Relaton
|
|
|
2
2
|
module Render
|
|
3
3
|
module Ietf
|
|
4
4
|
class Fields < ::Relaton::Render::Fields
|
|
5
|
-
def nameformat(names)
|
|
5
|
+
def nameformat(names, hash)
|
|
6
6
|
names.nil? and return names
|
|
7
7
|
parts = %i(surname initials given middle nonpersonal
|
|
8
8
|
nonpersonalabbrev completename)
|
|
@@ -12,7 +12,7 @@ module Relaton
|
|
|
12
12
|
m[i] << n[i]
|
|
13
13
|
end
|
|
14
14
|
end
|
|
15
|
-
@r.nametemplate.render(names_out)
|
|
15
|
+
@r.nametemplate.render(names_out, hash)
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
# do not format months
|
data/lib/relaton/render/parse.rb
CHANGED
|
@@ -99,7 +99,7 @@ module Relaton
|
|
|
99
99
|
%w(BCP STD).include?(s.title.title.content)
|
|
100
100
|
end
|
|
101
101
|
bcp and ret.unshift("BCP #{bcp.number}")
|
|
102
|
-
ret.reject { |x|
|
|
102
|
+
ret.reject { |x| /(rfc-anchor|Internet-Draft)/.match? (x) }
|
|
103
103
|
end
|
|
104
104
|
|
|
105
105
|
def simple_xml2hash(doc)
|
data/metanorma-ietf.gemspec
CHANGED
|
@@ -37,13 +37,14 @@ 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", "~> 3.
|
|
40
|
+
spec.add_dependency "metanorma-standoc", "~> 3.2.0"
|
|
41
41
|
spec.add_dependency "relaton-render"
|
|
42
42
|
|
|
43
43
|
spec.add_development_dependency "debug"
|
|
44
44
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
|
45
45
|
spec.add_development_dependency "guard", "~> 2.14"
|
|
46
46
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
|
47
|
+
spec.add_development_dependency "openssl"
|
|
47
48
|
spec.add_development_dependency "rake", "~> 13.0"
|
|
48
49
|
spec.add_development_dependency "rspec", "~> 3.6"
|
|
49
50
|
spec.add_development_dependency "rubocop", "~> 1"
|
|
@@ -51,5 +52,5 @@ spec.add_development_dependency "rubocop-performance"
|
|
|
51
52
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
|
52
53
|
spec.add_development_dependency "timecop", "~> 0.9"
|
|
53
54
|
spec.add_development_dependency "webmock"
|
|
54
|
-
spec.add_development_dependency "canon"
|
|
55
|
+
spec.add_development_dependency "canon", "= 0.1.3"
|
|
55
56
|
end
|
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.6.
|
|
4
|
+
version: 3.6.6
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2025-
|
|
11
|
+
date: 2025-11-03 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: 3.
|
|
33
|
+
version: 3.2.0
|
|
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: 3.
|
|
40
|
+
version: 3.2.0
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: relaton-render
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -108,6 +108,20 @@ dependencies:
|
|
|
108
108
|
- - "~>"
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
110
|
version: '4.7'
|
|
111
|
+
- !ruby/object:Gem::Dependency
|
|
112
|
+
name: openssl
|
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '0'
|
|
118
|
+
type: :development
|
|
119
|
+
prerelease: false
|
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
121
|
+
requirements:
|
|
122
|
+
- - ">="
|
|
123
|
+
- !ruby/object:Gem::Version
|
|
124
|
+
version: '0'
|
|
111
125
|
- !ruby/object:Gem::Dependency
|
|
112
126
|
name: rake
|
|
113
127
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -210,16 +224,16 @@ dependencies:
|
|
|
210
224
|
name: canon
|
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
|
212
226
|
requirements:
|
|
213
|
-
- -
|
|
227
|
+
- - '='
|
|
214
228
|
- !ruby/object:Gem::Version
|
|
215
|
-
version:
|
|
229
|
+
version: 0.1.3
|
|
216
230
|
type: :development
|
|
217
231
|
prerelease: false
|
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
233
|
requirements:
|
|
220
|
-
- -
|
|
234
|
+
- - '='
|
|
221
235
|
- !ruby/object:Gem::Version
|
|
222
|
-
version:
|
|
236
|
+
version: 0.1.3
|
|
223
237
|
description: |
|
|
224
238
|
metanorma-ietf lets you write IETF documents, such as Internet-Drafts and RFCs,
|
|
225
239
|
in native AsciiDoc syntax. This is part of the Metanorma publishing framework.
|
|
@@ -280,6 +294,7 @@ files:
|
|
|
280
294
|
- lib/metanorma/ietf/front.rb
|
|
281
295
|
- lib/metanorma/ietf/ietf.rng
|
|
282
296
|
- lib/metanorma/ietf/isodoc.rng
|
|
297
|
+
- lib/metanorma/ietf/log.rb
|
|
283
298
|
- lib/metanorma/ietf/macros.rb
|
|
284
299
|
- lib/metanorma/ietf/processor.rb
|
|
285
300
|
- lib/metanorma/ietf/relaton-ietf.rng
|