metanorma-ietf 1.0.10 → 2.0.0
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/.github/workflows/macos.yml +3 -2
- data/.github/workflows/ubuntu.yml +3 -2
- data/.github/workflows/windows.yml +4 -3
- data/README.adoc +9 -0
- data/lib/asciidoctor/ietf/basicdoc.rng +1045 -0
- data/lib/asciidoctor/ietf/biblio.rng +1142 -0
- data/lib/asciidoctor/ietf/blocks.rb +76 -0
- data/lib/asciidoctor/ietf/converter.rb +211 -0
- data/lib/asciidoctor/ietf/front.rb +143 -0
- data/lib/asciidoctor/ietf/ietf.rng +882 -0
- data/lib/asciidoctor/ietf/isodoc.rng +514 -0
- data/lib/asciidoctor/ietf/isostandard.rng +860 -0
- data/lib/asciidoctor/ietf/reqt.rng +171 -0
- data/lib/asciidoctor/ietf/validate.rb +84 -0
- data/lib/isodoc/ietf/blocks.rb +215 -0
- data/lib/isodoc/ietf/cleanup.rb +220 -0
- data/lib/isodoc/ietf/footnotes.rb +70 -0
- data/lib/isodoc/ietf/front.rb +232 -0
- data/lib/isodoc/ietf/inline.rb +136 -0
- data/lib/isodoc/ietf/metadata.rb +62 -0
- data/lib/isodoc/ietf/references.rb +129 -0
- data/lib/isodoc/ietf/reqt.rb +74 -0
- data/lib/isodoc/ietf/rfc_convert.rb +60 -0
- data/lib/isodoc/ietf/section.rb +162 -0
- data/lib/isodoc/ietf/table.rb +43 -0
- data/lib/isodoc/ietf/terms.rb +65 -0
- data/lib/metanorma-ietf.rb +2 -1
- data/lib/metanorma/ietf/processor.rb +16 -37
- data/lib/metanorma/ietf/version.rb +1 -1
- data/metanorma-ietf.gemspec +3 -3
- metadata +36 -36
- data/Gemfile.lock +0 -327
- data/lib/asciidoctor/rfc.rb +0 -8
- data/lib/asciidoctor/rfc/common/base.rb +0 -544
- data/lib/asciidoctor/rfc/common/front.rb +0 -120
- data/lib/asciidoctor/rfc/common/validate.rb +0 -31
- data/lib/asciidoctor/rfc/v2/base.rb +0 -380
- data/lib/asciidoctor/rfc/v2/blocks.rb +0 -299
- data/lib/asciidoctor/rfc/v2/converter.rb +0 -60
- data/lib/asciidoctor/rfc/v2/front.rb +0 -69
- data/lib/asciidoctor/rfc/v2/inline_anchor.rb +0 -111
- data/lib/asciidoctor/rfc/v2/lists.rb +0 -135
- data/lib/asciidoctor/rfc/v2/table.rb +0 -116
- data/lib/asciidoctor/rfc/v2/validate.rng +0 -716
- data/lib/asciidoctor/rfc/v3/base.rb +0 -330
- data/lib/asciidoctor/rfc/v3/blocks.rb +0 -246
- data/lib/asciidoctor/rfc/v3/converter.rb +0 -62
- data/lib/asciidoctor/rfc/v3/front.rb +0 -122
- data/lib/asciidoctor/rfc/v3/inline_anchor.rb +0 -89
- data/lib/asciidoctor/rfc/v3/lists.rb +0 -176
- data/lib/asciidoctor/rfc/v3/svg.rng +0 -9081
- data/lib/asciidoctor/rfc/v3/table.rb +0 -65
- data/lib/asciidoctor/rfc/v3/validate.rng +0 -2143
@@ -0,0 +1,162 @@
|
|
1
|
+
module IsoDoc::Ietf
|
2
|
+
class RfcConvert < ::IsoDoc::Convert
|
3
|
+
def common_rfc_pis(node)
|
4
|
+
rfc_pis = {
|
5
|
+
artworkdelimiter: node&.at(ns("//pi/artworkdelimiter"))&.text,
|
6
|
+
artworklines: node&.at(ns("//pi/artworklines"))&.text,
|
7
|
+
authorship: node&.at(ns("//pi/authorship"))&.text,
|
8
|
+
autobreaks: node&.at(ns("//pi/autobreaks"))&.text,
|
9
|
+
background: node&.at(ns("//pi/background"))&.text,
|
10
|
+
colonspace: node&.at(ns("//pi/colonspace"))&.text,
|
11
|
+
comments: node&.at(ns("//pi/comments"))&.text,
|
12
|
+
docmapping: node&.at(ns("//pi/docmapping"))&.text,
|
13
|
+
editing: node&.at(ns("//pi/editing"))&.text,
|
14
|
+
emoticonic: node&.at(ns("//pi/emoticonic"))&.text,
|
15
|
+
footer: node&.at(ns("//pi/footer"))&.text,
|
16
|
+
header: node&.at(ns("//pi/header"))&.text,
|
17
|
+
inline: node&.at(ns("//pi/inline"))&.text,
|
18
|
+
iprnotified: node&.at(ns("//pi/iprnotified"))&.text,
|
19
|
+
linkmailto: node&.at(ns("//pi/linkmailto"))&.text,
|
20
|
+
linefile: node&.at(ns("//pi/linefile"))&.text,
|
21
|
+
notedraftinprogress: node&.at(ns("//pi/notedraftinprogress"))&.text,
|
22
|
+
private: node&.at(ns("//pi/private"))&.text,
|
23
|
+
refparent: node&.at(ns("//pi/refparent"))&.text,
|
24
|
+
rfcedstyle: node&.at(ns("//pi/rfcedstyle"))&.text,
|
25
|
+
slides: node&.at(ns("//pi/slides"))&.text,
|
26
|
+
"text-list-symbols": node&.at(ns("//pi/text-list-symbols"))&.text,
|
27
|
+
tocappendix: node&.at(ns("//pi/tocappendix"))&.text,
|
28
|
+
tocindent: node&.at(ns("//pi/tocindent"))&.text,
|
29
|
+
tocnarrow: node&.at(ns("//pi/tocnarrow"))&.text,
|
30
|
+
tocompact: node&.at(ns("//pi/tocompact"))&.text,
|
31
|
+
topblock: node&.at(ns("//pi/topblock"))&.text,
|
32
|
+
useobject: node&.at(ns("//pi/useobject"))&.text,
|
33
|
+
strict: node&.at(ns("//pi/strict"))&.text || "yes",
|
34
|
+
compact: node&.at(ns("//pi/compact"))&.text || "yes",
|
35
|
+
subcompact: node&.at(ns("//pi/subcompact"))&.text || "no",
|
36
|
+
toc: node&.at(ns("//pi/toc-include"))&.text,
|
37
|
+
tocdepth: node&.at(ns("//pi/toc-depth"))&.text || "4",
|
38
|
+
symrefs: node&.at(ns("//pi/sym-refs"))&.text || "yes",
|
39
|
+
sortrefs: node&.at(ns("//pi/sort-refs"))&.text || "yes",
|
40
|
+
}
|
41
|
+
attr_code(rfc_pis)
|
42
|
+
end
|
43
|
+
|
44
|
+
def set_pis(node, doc)
|
45
|
+
rfc_pis = common_rfc_pis(node)
|
46
|
+
rfc_pis.each_pair do |k, v|
|
47
|
+
pi = Nokogiri::XML::ProcessingInstruction.new(doc, "rfc",
|
48
|
+
"#{k}=\"#{v}\"")
|
49
|
+
doc.root.add_previous_sibling(pi)
|
50
|
+
end
|
51
|
+
doc.to_xml
|
52
|
+
end
|
53
|
+
|
54
|
+
def rfc_attributes(docxml)
|
55
|
+
t = Time.now.getutc
|
56
|
+
obs = xpath_comma(docxml.xpath(ns(
|
57
|
+
"//bibdata/relation[@type = 'obsoletes']/bibitem/docidentifier")))
|
58
|
+
upd = xpath_comma(docxml.xpath(ns(
|
59
|
+
"//bibdata/relation[@type = 'updates']/bibitem/docidentifier")))
|
60
|
+
{
|
61
|
+
docName: @meta.get[:doctype] == "Internet Draft" ? @meta.get[:docnumber] : nil,
|
62
|
+
number: @meta.get[:doctype].casecmp?("rfc") ? @meta.get[:docnumber] : nil,
|
63
|
+
category: docxml&.at(ns("//bibdata/series[@type = 'intended']/title"))&.text || "std",
|
64
|
+
ipr: docxml&.at(ns("//bibdata/ext/ipr"))&.text,
|
65
|
+
obsoletes: obs,
|
66
|
+
updates: upd,
|
67
|
+
indexInclude: docxml&.at(ns("//bibdata/ext/indexInclude"))&.text,
|
68
|
+
iprExtract: docxml&.at(ns("//bibdata/ext/iprExtract"))&.text,
|
69
|
+
sortRefs: docxml&.at(ns("//bibdata/ext/sortRefs"))&.text,
|
70
|
+
symRefs: docxml&.at(ns("//bibdata/ext/symRefs"))&.text,
|
71
|
+
tocInclude: docxml&.at(ns("//bibdata/ext/tocInclude"))&.text,
|
72
|
+
tocDepth: docxml&.at(ns("//bibdata/ext/tocDepth"))&.text,
|
73
|
+
submissionType: docxml&.at(ns(
|
74
|
+
"//bibdata/series[@type = 'stream']/title"))&.text || "IETF",
|
75
|
+
'xml:lang': docxml&.at(ns("//bibdata/language"))&.text,
|
76
|
+
version: "3",
|
77
|
+
'xmlns:xi': "http://www.w3.org/2001/XInclude",
|
78
|
+
prepTime: sprintf("%04d-%02d-%02dT%02d:%02d:%02dZ",
|
79
|
+
t.year, t.month, t.day, t.hour, t.min, t.sec),
|
80
|
+
}
|
81
|
+
end
|
82
|
+
|
83
|
+
def xpath_comma(xpath)
|
84
|
+
return nil if xpath.empty?
|
85
|
+
xpath.map { |x| x.text }.join(", ")
|
86
|
+
end
|
87
|
+
|
88
|
+
def make_link(out, isoxml)
|
89
|
+
links = isoxml.xpath(ns(
|
90
|
+
"//bibdata/relation[@type = 'includedIn' or @type = 'describedBy' or "\
|
91
|
+
"@type = 'derivedFrom' or @type = 'equivalent']")) || return
|
92
|
+
links.each do |l|
|
93
|
+
out.link **{ href: l&.at(ns("./bibitem/docidentifier"))&.text,
|
94
|
+
rel: rel2iana(l["type"]) }
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
def rel2iana(type)
|
99
|
+
case type
|
100
|
+
when "includedIn" then "item"
|
101
|
+
when "describedBy" then "describedby"
|
102
|
+
when "derivedFrom" then "convertedfrom"
|
103
|
+
when "equivalent" then "alternate"
|
104
|
+
else
|
105
|
+
"alternate"
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
def make_middle(out, isoxml)
|
110
|
+
out.middle do |middle|
|
111
|
+
clause isoxml, middle
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
def make_back(out, isoxml)
|
116
|
+
out.back do |back|
|
117
|
+
annex isoxml, back
|
118
|
+
bibliography isoxml, back
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
def clause_parse_title(node, div, c1, out)
|
123
|
+
return unless c1
|
124
|
+
div.name do |n|
|
125
|
+
c1&.children&.each { |c2| parse(c2, n) }
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
def clause_parse(node, out)
|
130
|
+
out.section **attr_code( anchor: node["id"], numbered: node["numbered"],
|
131
|
+
removeInRFC: node["removeInRFC"], toc: node["toc"]) do |div|
|
132
|
+
clause_parse_title(node, div, node.at(ns("./title")), out)
|
133
|
+
node.children.reject { |c1| c1.name == "title" }.each do |c1|
|
134
|
+
parse(c1, div)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
def clause(isoxml, out)
|
140
|
+
isoxml.xpath("//xmlns:preface/child::*[not(name() = 'abstract' or name() = 'foreword')] "\
|
141
|
+
"| //xmlns:sections/child::*").each do |c|
|
142
|
+
clause1(c, out)
|
143
|
+
end
|
144
|
+
end
|
145
|
+
|
146
|
+
def clause1(c, out)
|
147
|
+
out.section **attr_code( anchor: c["id"], numbered: c["numbered"],
|
148
|
+
removeInRFC: c["removeInRFC"], toc: c["toc"]) do |div|
|
149
|
+
clause_parse_title(c, div, c.at(ns("./title")), out)
|
150
|
+
c.elements.reject { |c1| c1.name == "title" }.each do |c1|
|
151
|
+
parse(c1, div)
|
152
|
+
end
|
153
|
+
end
|
154
|
+
end
|
155
|
+
|
156
|
+
def annex(isoxml, out)
|
157
|
+
isoxml.xpath(ns("//annex")).each do |c|
|
158
|
+
clause1(c, out)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
module IsoDoc::Ietf
|
2
|
+
class RfcConvert < ::IsoDoc::Convert
|
3
|
+
def make_table_attr(node)
|
4
|
+
attr_code(anchor: node["id"], align: node["align"])
|
5
|
+
end
|
6
|
+
|
7
|
+
def table_parse(node, out)
|
8
|
+
@in_table = true
|
9
|
+
out.table **make_table_attr(node) do |t|
|
10
|
+
table_title_parse(node, out)
|
11
|
+
thead_parse(node, t)
|
12
|
+
tbody_parse(node, t)
|
13
|
+
tfoot_parse(node, t)
|
14
|
+
end
|
15
|
+
(dl = node.at(ns("./dl"))) && parse(dl, out)
|
16
|
+
node.xpath(ns("./note")).each { |n| parse(n, out) }
|
17
|
+
@in_table = false
|
18
|
+
end
|
19
|
+
|
20
|
+
def table_title_parse(node, out)
|
21
|
+
name = node.at(ns("./name")) || return
|
22
|
+
out.name do |p|
|
23
|
+
name.children.each { |n| parse(n, p) }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def tr_parse(node, out, ord, totalrows, header)
|
28
|
+
out.tr do |r|
|
29
|
+
node.elements.each do |td|
|
30
|
+
attrs = make_tr_attr(td, ord, totalrows - 1, header)
|
31
|
+
r.send td.name, **attrs do |entry|
|
32
|
+
td.children.each { |n| parse(n, entry) }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def make_tr_attr(td, row, totalrows, header)
|
39
|
+
attr_code(rowspan: td["rowspan"], colspan: td["colspan"],
|
40
|
+
align: td["align"] )
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module IsoDoc::Ietf
|
2
|
+
class RfcConvert < ::IsoDoc::Convert
|
3
|
+
|
4
|
+
def definition_parse(node, out)
|
5
|
+
node.children.each { |n| parse(n, out) }
|
6
|
+
end
|
7
|
+
|
8
|
+
def modification_parse(node, out)
|
9
|
+
para = node.at(ns("./p"))
|
10
|
+
out << " -- "
|
11
|
+
para.children.each { |n| parse(n, out) }
|
12
|
+
end
|
13
|
+
|
14
|
+
def deprecated_term_parse(node, out)
|
15
|
+
out.t do |p|
|
16
|
+
p << l10n("#{@deprecated_lbl}: ")
|
17
|
+
node.children.each { |c| parse(c, p) }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def admitted_term_parse(node, out)
|
22
|
+
out.t do |p|
|
23
|
+
node.children.each { |c| parse(c, p) }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
def term_parse(node, out)
|
28
|
+
out.name do |p|
|
29
|
+
node.children.each { |n| parse(n, p) }
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def termnote_parse(node, out)
|
34
|
+
note_parse(node, out)
|
35
|
+
end
|
36
|
+
|
37
|
+
def termref_parse(node, out)
|
38
|
+
out.t do |p|
|
39
|
+
p << "SOURCE: "
|
40
|
+
node.children.each { |n| parse(n, p) }
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
def termdef_parse(node, out)
|
45
|
+
set_termdomain("")
|
46
|
+
clause_parse(node, out)
|
47
|
+
end
|
48
|
+
|
49
|
+
def termdocsource_parse(_node, _out)
|
50
|
+
end
|
51
|
+
|
52
|
+
def termnote_anchor_names(docxml)
|
53
|
+
docxml.xpath(ns("//term[descendant::termnote]")).each do |t|
|
54
|
+
c = Counter.new
|
55
|
+
notes = t.xpath(ns(".//termnote"))
|
56
|
+
notes.each do |n|
|
57
|
+
next if n["id"].nil? || n["id"].empty?
|
58
|
+
idx = notes.size == 1 ? "" : " #{c.increment(n).print}"
|
59
|
+
@anchors[n["id"]] =
|
60
|
+
anchor_struct(idx, n, @note_xref_lbl, "note", false)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
data/lib/metanorma-ietf.rb
CHANGED
@@ -2,6 +2,7 @@ require "asciidoctor" unless defined? Asciidoctor::Converter
|
|
2
2
|
require "metanorma"
|
3
3
|
|
4
4
|
require_relative "metanorma/ietf"
|
5
|
-
require_relative "asciidoctor/
|
5
|
+
require_relative "asciidoctor/ietf/converter"
|
6
|
+
require_relative "isodoc/ietf/rfc_convert"
|
6
7
|
|
7
8
|
Metanorma::Registry.instance.register(Metanorma::Ietf::Processor)
|
@@ -8,13 +8,13 @@ module Metanorma
|
|
8
8
|
def initialize
|
9
9
|
@short = :ietf
|
10
10
|
@input_format = :asciidoc
|
11
|
-
@asciidoctor_backend = :
|
11
|
+
@asciidoctor_backend = :ietf
|
12
12
|
end
|
13
13
|
|
14
14
|
def output_formats
|
15
15
|
{
|
16
|
-
|
17
|
-
|
16
|
+
xml: "xml",
|
17
|
+
rfc: "rfc.xml",
|
18
18
|
html: "html",
|
19
19
|
txt: "txt"
|
20
20
|
}
|
@@ -25,15 +25,10 @@ module Metanorma
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def input_to_isodoc(file, filename)
|
28
|
-
# TODO: storing these two variables for xmlrfc2. Remove when we have IsoDoc
|
29
|
-
@file = file
|
30
|
-
@filename = filename
|
31
|
-
|
32
28
|
# This is XML RFC v3 output in text
|
33
29
|
Metanorma::Input::Asciidoc.new.process(file, filename, @asciidoctor_backend)
|
34
30
|
end
|
35
31
|
|
36
|
-
# TODO: we're not yet using IsoDoc here
|
37
32
|
def extract_options(isodocxml)
|
38
33
|
{}
|
39
34
|
end
|
@@ -43,48 +38,32 @@ module Metanorma
|
|
43
38
|
def which(cmd)
|
44
39
|
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
45
40
|
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
46
|
-
exts.each
|
41
|
+
exts.each do |ext|
|
47
42
|
exe = File.join(path, "#{cmd}#{ext}")
|
48
43
|
return exe if File.executable?(exe) && !File.directory?(exe)
|
49
|
-
|
44
|
+
end
|
50
45
|
end
|
51
46
|
nil
|
52
47
|
end
|
53
48
|
|
54
49
|
def output(isodoc_node, outname, format, options={})
|
55
50
|
case format
|
56
|
-
when :
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
# xmlrfcdoc = Metanorma::Input::Asciidoc.new.process(@file, @filename, :rfc2)
|
61
|
-
# File.open(outname, 'w') { |f| f << xmlrfcdoc }
|
62
|
-
|
63
|
-
# TODO: When we have IsoDoc, we just translate IsoDoc to XML RFC v2
|
64
|
-
File.open(outname, 'w') { |f| f << isodoc_node }
|
65
|
-
when :xmlrfc3
|
66
|
-
# TODO: When we have IsoDoc, we just translate IsoDoc to XML RFC v3
|
67
|
-
xmlrfcdoc = Metanorma::Input::Asciidoc.new.process(@file, @filename, :rfc3)
|
68
|
-
File.open(outname, 'w') { |f| f << xmlrfcdoc }
|
51
|
+
when :rfc
|
52
|
+
IsoDoc::Ietf::RfcConvert.new(options).convert(outname, isodoc_node)
|
53
|
+
@done_rfc = true
|
69
54
|
|
70
55
|
when :txt, :html
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
warn "[metanorma-ietf] Error: unable to generate #{format}, the command `xml2rfc` is not found in path."
|
77
|
-
return
|
78
|
-
end
|
79
|
-
|
80
|
-
# In xml2rfc, --text and --html are used
|
81
|
-
format = :text if format == :txt
|
82
|
-
# puts "xml2rfc --#{format} #{f.path} -o #{outname}"
|
83
|
-
system("xml2rfc --#{format} #{f.path} -o #{outname}")
|
56
|
+
rfcname = outname.sub(/\.(html|txt)$/, ".rfc.xml")
|
57
|
+
output(isodoc_node, outname, :rfc, options) unless @done_rfc
|
58
|
+
unless which("xml2rfc")
|
59
|
+
warn "[metanorma-ietf] Error: unable to generate #{format}, the command `xml2rfc` is not found in path."
|
60
|
+
return
|
84
61
|
end
|
62
|
+
# In xml2rfc, --text and --html are used
|
63
|
+
format = :text if format == :txt
|
64
|
+
system("xml2rfc --#{format} #{rfcname} -o #{outname}")
|
85
65
|
end
|
86
66
|
end
|
87
|
-
|
88
67
|
end
|
89
68
|
end
|
90
69
|
end
|
data/metanorma-ietf.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
|
|
15
15
|
metanorma-ietf lets you write IETF documents, such as Internet-Drafts and RFCs,
|
16
16
|
in native AsciiDoc syntax. This is part of the Metanorma publishing framework.
|
17
17
|
|
18
|
-
RFC XML ("xml2rfc" Vocabulary XML,
|
18
|
+
RFC XML ("xml2rfc" Vocabulary XML, RFC 7991) is the XML-based language used for
|
19
19
|
writing Internet-Drafts and RFCs, but not everyone likes hand-crafting XML,
|
20
20
|
especially when the focus should be on the content.
|
21
21
|
|
@@ -37,9 +37,9 @@ Gem::Specification.new do |spec|
|
|
37
37
|
|
38
38
|
spec.add_dependency "metanorma-standoc", "~> 1.3.0"
|
39
39
|
spec.add_dependency "isodoc", "~> 1.0.0"
|
40
|
+
spec.add_dependency "mathml2asciimath"
|
40
41
|
|
41
|
-
spec.add_development_dependency "
|
42
|
-
spec.add_development_dependency "byebug", "~> 9.1"
|
42
|
+
spec.add_development_dependency "byebug"
|
43
43
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
44
44
|
spec.add_development_dependency "guard", "~> 2.14"
|
45
45
|
spec.add_development_dependency "guard-rspec", "~> 4.7"
|
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:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|
@@ -39,33 +39,33 @@ dependencies:
|
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.0.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: mathml2asciimath
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
48
|
-
type: :
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: byebug
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
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: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: equivalent-xml
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,7 +224,7 @@ description: |
|
|
224
224
|
metanorma-ietf lets you write IETF documents, such as Internet-Drafts and RFCs,
|
225
225
|
in native AsciiDoc syntax. This is part of the Metanorma publishing framework.
|
226
226
|
|
227
|
-
RFC XML ("xml2rfc" Vocabulary XML,
|
227
|
+
RFC XML ("xml2rfc" Vocabulary XML, RFC 7991) is the XML-based language used for
|
228
228
|
writing Internet-Drafts and RFCs, but not everyone likes hand-crafting XML,
|
229
229
|
especially when the focus should be on the content.
|
230
230
|
|
@@ -249,7 +249,6 @@ files:
|
|
249
249
|
- ".rubocop.yml"
|
250
250
|
- CODE_OF_CONDUCT.md
|
251
251
|
- Gemfile
|
252
|
-
- Gemfile.lock
|
253
252
|
- Guardfile
|
254
253
|
- LICENSE
|
255
254
|
- README.adoc
|
@@ -263,27 +262,28 @@ files:
|
|
263
262
|
- docs/installation.md
|
264
263
|
- docs/navigation.md
|
265
264
|
- docs/overview.md
|
266
|
-
- lib/asciidoctor/
|
267
|
-
- lib/asciidoctor/
|
268
|
-
- lib/asciidoctor/
|
269
|
-
- lib/asciidoctor/
|
270
|
-
- lib/asciidoctor/
|
271
|
-
- lib/asciidoctor/
|
272
|
-
- lib/asciidoctor/
|
273
|
-
- lib/asciidoctor/
|
274
|
-
- lib/asciidoctor/
|
275
|
-
- lib/asciidoctor/
|
276
|
-
- lib/
|
277
|
-
- lib/
|
278
|
-
- lib/
|
279
|
-
- lib/
|
280
|
-
- lib/
|
281
|
-
- lib/
|
282
|
-
- lib/
|
283
|
-
- lib/
|
284
|
-
- lib/
|
285
|
-
- lib/
|
286
|
-
- lib/
|
265
|
+
- lib/asciidoctor/ietf/basicdoc.rng
|
266
|
+
- lib/asciidoctor/ietf/biblio.rng
|
267
|
+
- lib/asciidoctor/ietf/blocks.rb
|
268
|
+
- lib/asciidoctor/ietf/converter.rb
|
269
|
+
- lib/asciidoctor/ietf/front.rb
|
270
|
+
- lib/asciidoctor/ietf/ietf.rng
|
271
|
+
- lib/asciidoctor/ietf/isodoc.rng
|
272
|
+
- lib/asciidoctor/ietf/isostandard.rng
|
273
|
+
- lib/asciidoctor/ietf/reqt.rng
|
274
|
+
- lib/asciidoctor/ietf/validate.rb
|
275
|
+
- lib/isodoc/ietf/blocks.rb
|
276
|
+
- lib/isodoc/ietf/cleanup.rb
|
277
|
+
- lib/isodoc/ietf/footnotes.rb
|
278
|
+
- lib/isodoc/ietf/front.rb
|
279
|
+
- lib/isodoc/ietf/inline.rb
|
280
|
+
- lib/isodoc/ietf/metadata.rb
|
281
|
+
- lib/isodoc/ietf/references.rb
|
282
|
+
- lib/isodoc/ietf/reqt.rb
|
283
|
+
- lib/isodoc/ietf/rfc_convert.rb
|
284
|
+
- lib/isodoc/ietf/section.rb
|
285
|
+
- lib/isodoc/ietf/table.rb
|
286
|
+
- lib/isodoc/ietf/terms.rb
|
287
287
|
- lib/metanorma-ietf.rb
|
288
288
|
- lib/metanorma/ietf.rb
|
289
289
|
- lib/metanorma/ietf/processor.rb
|
@@ -312,7 +312,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
312
312
|
version: '0'
|
313
313
|
requirements: []
|
314
314
|
rubyforge_project:
|
315
|
-
rubygems_version: 2.7.
|
315
|
+
rubygems_version: 2.7.7
|
316
316
|
signing_key:
|
317
317
|
specification_version: 4
|
318
318
|
summary: metanorma-ietf lets you write IETF documents, such as Internet-Drafts and
|