metanorma-ietf 3.3.0 → 3.3.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 +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/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/parse.rb +40 -5
- metadata +3 -2
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> {% 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
@@ -24,7 +24,8 @@ module Relaton
|
|
24
24
|
|
25
25
|
def series_xml2hash1(series, doc)
|
26
26
|
ret = super
|
27
|
-
%w(BCP RFC I-D. Internet-Draft).include?(ret[:series_title]) and
|
27
|
+
%w(BCP RFC I-D. Internet-Draft).include?(ret[:series_title]) and
|
28
|
+
return {}
|
28
29
|
ret
|
29
30
|
end
|
30
31
|
|
@@ -87,14 +88,48 @@ module Relaton
|
|
87
88
|
super
|
88
89
|
end
|
89
90
|
|
90
|
-
# add BCP number
|
91
|
+
# do not add BCP number, it is not included in IETF practice
|
91
92
|
def authoritative_identifier(doc)
|
92
93
|
ret = super
|
93
|
-
if bcp = doc.series.detect { |s| s.title.title.content == "BCP" }
|
94
|
-
ret.unshift("BCP #{bcp.number}")
|
95
|
-
|
94
|
+
#if bcp = doc.series.detect { |s| s.title.title.content == "BCP" }
|
95
|
+
#ret.unshift("BCP #{bcp.number}")
|
96
|
+
#end
|
96
97
|
ret.reject { |x| /^(rfc-anchor|Internet-Draft)/.match? (x) }
|
97
98
|
end
|
99
|
+
|
100
|
+
def simple_xml2hash(doc)
|
101
|
+
super.merge(stream: stream(doc))
|
102
|
+
end
|
103
|
+
|
104
|
+
def series(doc)
|
105
|
+
a = doc.series.reject { |s| s.type == "stream" }
|
106
|
+
a.empty? and return nil
|
107
|
+
a.detect { |s| s.type == "main" } ||
|
108
|
+
a.detect { |s| s.type.nil? } || a.first
|
109
|
+
end
|
110
|
+
|
111
|
+
def stream(doc)
|
112
|
+
a = doc.series.detect { |s| s.type == "stream" } or return nil
|
113
|
+
series_title(a, doc)
|
114
|
+
end
|
115
|
+
|
116
|
+
def extract(doc)
|
117
|
+
super.merge(included_xml2hash(doc))
|
118
|
+
end
|
119
|
+
|
120
|
+
def included_xml2hash(doc)
|
121
|
+
r = doc.relation.select { |x| x.type == "includes" }
|
122
|
+
.map { |x| parse_single_bibitem(x.bibitem) }
|
123
|
+
r.empty? and return {}
|
124
|
+
{ included: r }
|
125
|
+
end
|
126
|
+
|
127
|
+
def parse_single_bibitem(doc)
|
128
|
+
data = extract(doc)
|
129
|
+
#enhance_data(data, r.template_raw)
|
130
|
+
#data_liquid = @fieldsklass.new(renderer: self)
|
131
|
+
# .compound_fields_format(data)
|
132
|
+
end
|
98
133
|
end
|
99
134
|
end
|
100
135
|
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.3.
|
4
|
+
version: 3.3.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: 2024-
|
11
|
+
date: 2024-02-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-ietf-data
|
@@ -250,6 +250,7 @@ files:
|
|
250
250
|
- lib/isodoc/ietf/SVG-1.2-RFC.rng
|
251
251
|
- lib/isodoc/ietf/blocks.rb
|
252
252
|
- lib/isodoc/ietf/cleanup.rb
|
253
|
+
- lib/isodoc/ietf/cleanup_blocks.rb
|
253
254
|
- lib/isodoc/ietf/cleanup_inline.rb
|
254
255
|
- lib/isodoc/ietf/footnotes.rb
|
255
256
|
- lib/isodoc/ietf/front.rb
|