metanorma-ietf 3.3.0 → 3.3.2
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/blocks.rb +20 -32
- data/lib/isodoc/ietf/cleanup.rb +16 -175
- data/lib/isodoc/ietf/cleanup_blocks.rb +174 -0
- data/lib/isodoc/ietf/front.rb +200 -199
- data/lib/isodoc/ietf/inline.rb +8 -7
- data/lib/isodoc/ietf/references.rb +1 -1
- data/lib/isodoc/ietf/section.rb +48 -48
- data/lib/metanorma/ietf/basicdoc.rng +3 -0
- data/lib/metanorma/ietf/blocks.rb +5 -1
- data/lib/metanorma/ietf/ietf.rng +20 -1
- data/lib/metanorma/ietf/isodoc.rng +4 -1
- data/lib/metanorma/ietf/version.rb +1 -1
- data/lib/relaton/render/config.yml +2 -1
- data/lib/relaton/render/fields.rb +8 -0
- data/lib/relaton/render/parse.rb +45 -4
- data/metanorma-ietf.gemspec +1 -2
- metadata +5 -18
data/lib/metanorma/ietf/ietf.rng
CHANGED
@@ -30,6 +30,9 @@
|
|
30
30
|
<data type="boolean"/>
|
31
31
|
</attribute>
|
32
32
|
</optional>
|
33
|
+
<optional>
|
34
|
+
<attribute name="indent"/>
|
35
|
+
</optional>
|
33
36
|
<zeroOrMore>
|
34
37
|
<ref name="TextElement"/>
|
35
38
|
</zeroOrMore>
|
@@ -47,6 +50,9 @@
|
|
47
50
|
<ref name="Alignments"/>
|
48
51
|
</attribute>
|
49
52
|
</optional>
|
53
|
+
<optional>
|
54
|
+
<attribute name="indent"/>
|
55
|
+
</optional>
|
50
56
|
<zeroOrMore>
|
51
57
|
<choice>
|
52
58
|
<ref name="TextElement"/>
|
@@ -64,11 +70,21 @@
|
|
64
70
|
<data type="ID"/>
|
65
71
|
</attribute>
|
66
72
|
<optional>
|
67
|
-
<attribute name="nobullet"
|
73
|
+
<attribute name="nobullet">
|
74
|
+
<data type="boolean"/>
|
75
|
+
</attribute>
|
68
76
|
</optional>
|
69
77
|
<optional>
|
70
78
|
<attribute name="spacing"/>
|
71
79
|
</optional>
|
80
|
+
<optional>
|
81
|
+
<attribute name="indent"/>
|
82
|
+
</optional>
|
83
|
+
<optional>
|
84
|
+
<attribute name="bare">
|
85
|
+
<data type="boolean"/>
|
86
|
+
</attribute>
|
87
|
+
</optional>
|
72
88
|
<oneOrMore>
|
73
89
|
<ref name="li"/>
|
74
90
|
</oneOrMore>
|
@@ -101,6 +117,9 @@
|
|
101
117
|
<optional>
|
102
118
|
<attribute name="start"/>
|
103
119
|
</optional>
|
120
|
+
<optional>
|
121
|
+
<attribute name="indent"/>
|
122
|
+
</optional>
|
104
123
|
<oneOrMore>
|
105
124
|
<ref name="li"/>
|
106
125
|
</oneOrMore>
|
@@ -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.
|
20
|
+
<!-- VERSION v1.3.0 -->
|
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">
|
@@ -146,6 +146,9 @@
|
|
146
146
|
<data type="boolean"/>
|
147
147
|
</attribute>
|
148
148
|
</optional>
|
149
|
+
<optional>
|
150
|
+
<attribute name="style"/>
|
151
|
+
</optional>
|
149
152
|
<oneOrMore>
|
150
153
|
<ref name="PureTextElement"/>
|
151
154
|
</oneOrMore>
|
@@ -19,7 +19,8 @@ journaltemplate: "{% if series_title and series_num %}<seriesInfo_name='{{ serie
|
|
19
19
|
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> {% for u in uris %}<format_target='{{u.content}}'_type='{%if u.type%}{{u.type}}{%else%}HTML{%endif%}'/>{% endfor %} {{ series }} {%for d in doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | strip }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | strip | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | strip | 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> {% for u in i.uris %}<format_target='{{u.content}}'_type='{%if u.type%}{{u.type}}{%else%}HTML{%endif%}'/>{% endfor %} {{ series }} {%for d in i.doi %}<seriesInfo_value='{{ d | replace: ' ', ' ' | remove_first: 'DOI' | strip }}'_name='DOI'/>{% endfor %} {% if home_standard %}{% for j in i.authoritative_identifier %} <seriesInfo_value='{{ j | replace: ' ', ' ' | strip | split: ' ' | last | remove_first: 'I-D.'}}'_name='{%if j contains 'I-D.'%}Internet-Draft{% else %}{{ j | replace: ' ', ' ' | strip | split: ' ' | slice: -2 }}{%endif%}'/> {% endfor %} {% else %} <refcontent>{{i.authoritative_identifier | join: ', '}}</refcontent> {% endif %}</ref-included>{% endfor %}"
|
23
24
|
website: standard
|
24
25
|
book: standard
|
25
26
|
booklet: standard
|
data/lib/relaton/render/parse.rb
CHANGED
@@ -2,6 +2,11 @@ module Relaton
|
|
2
2
|
module Render
|
3
3
|
module Ietf
|
4
4
|
class Parse < ::Relaton::Render::Parse
|
5
|
+
def initialize(options)
|
6
|
+
super
|
7
|
+
@fieldsklass = Relaton::Render::Ietf::Fields
|
8
|
+
end
|
9
|
+
|
5
10
|
def simple_or_host_xml2hash(doc, host)
|
6
11
|
ret = super
|
7
12
|
ret.merge(home_standard: home_standard(doc, ret[:publisher_raw]),
|
@@ -24,7 +29,8 @@ module Relaton
|
|
24
29
|
|
25
30
|
def series_xml2hash1(series, doc)
|
26
31
|
ret = super
|
27
|
-
%w(BCP RFC I-D. Internet-Draft).include?(ret[:series_title]) and
|
32
|
+
%w(BCP RFC I-D. Internet-Draft).include?(ret[:series_title]) and
|
33
|
+
return {}
|
28
34
|
ret
|
29
35
|
end
|
30
36
|
|
@@ -87,14 +93,49 @@ module Relaton
|
|
87
93
|
super
|
88
94
|
end
|
89
95
|
|
90
|
-
# add BCP number
|
91
96
|
def authoritative_identifier(doc)
|
92
97
|
ret = super
|
93
|
-
|
94
|
-
|
98
|
+
bcp = doc.series.detect do |s|
|
99
|
+
%w(BCP STD).include?(s.title.title.content)
|
95
100
|
end
|
101
|
+
bcp and ret.unshift("BCP #{bcp.number}")
|
96
102
|
ret.reject { |x| /^(rfc-anchor|Internet-Draft)/.match? (x) }
|
97
103
|
end
|
104
|
+
|
105
|
+
def simple_xml2hash(doc)
|
106
|
+
super.merge(stream: stream(doc))
|
107
|
+
end
|
108
|
+
|
109
|
+
def series(doc)
|
110
|
+
a = doc.series.reject { |s| s.type == "stream" }
|
111
|
+
a.empty? and return nil
|
112
|
+
a.detect { |s| s.type == "main" } ||
|
113
|
+
a.detect { |s| s.type.nil? } || a.first
|
114
|
+
end
|
115
|
+
|
116
|
+
def stream(doc)
|
117
|
+
a = doc.series.detect { |s| s.type == "stream" } or return nil
|
118
|
+
series_title(a, doc)
|
119
|
+
end
|
120
|
+
|
121
|
+
def extract(doc)
|
122
|
+
super.merge(included_xml2hash(doc))
|
123
|
+
end
|
124
|
+
|
125
|
+
def included_xml2hash(doc)
|
126
|
+
r = doc.relation.select { |x| x.type == "includes" }.map do |x|
|
127
|
+
parse_single_bibitem(x.bibitem)
|
128
|
+
end
|
129
|
+
r.empty? and return {}
|
130
|
+
{ included: r }
|
131
|
+
end
|
132
|
+
|
133
|
+
def parse_single_bibitem(doc)
|
134
|
+
data = extract(doc)
|
135
|
+
# enhance_data(data, r.template_raw)
|
136
|
+
# data_liquid = @fieldsklass.new(renderer: self)
|
137
|
+
# .compound_fields_format(data)
|
138
|
+
end
|
98
139
|
end
|
99
140
|
end
|
100
141
|
end
|
data/metanorma-ietf.gemspec
CHANGED
@@ -37,9 +37,8 @@ Gem::Specification.new do |spec|
|
|
37
37
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
|
38
38
|
|
39
39
|
spec.add_dependency "metanorma-ietf-data"
|
40
|
-
spec.add_dependency "metanorma-standoc", "~> 2.8.
|
40
|
+
spec.add_dependency "metanorma-standoc", "~> 2.8.2"
|
41
41
|
spec.add_dependency "relaton-render"
|
42
|
-
spec.add_dependency "vectory", "~> 0.6"
|
43
42
|
|
44
43
|
spec.add_development_dependency "debug"
|
45
44
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
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.
|
4
|
+
version: 3.3.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-
|
11
|
+
date: 2024-02-19 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.8.
|
33
|
+
version: 2.8.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.8.
|
40
|
+
version: 2.8.2
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: relaton-render
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,20 +52,6 @@ dependencies:
|
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: vectory
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - "~>"
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0.6'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - "~>"
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0.6'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: debug
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,6 +236,7 @@ files:
|
|
250
236
|
- lib/isodoc/ietf/SVG-1.2-RFC.rng
|
251
237
|
- lib/isodoc/ietf/blocks.rb
|
252
238
|
- lib/isodoc/ietf/cleanup.rb
|
239
|
+
- lib/isodoc/ietf/cleanup_blocks.rb
|
253
240
|
- lib/isodoc/ietf/cleanup_inline.rb
|
254
241
|
- lib/isodoc/ietf/footnotes.rb
|
255
242
|
- lib/isodoc/ietf/front.rb
|