metanorma-ietf 2.1.3 → 2.2.4

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: ea1c57c13cc70de322dae0d520d9643b939a5835975c49cfb64de8dbadad906b
4
- data.tar.gz: 9c34b9675c03e4c35754fa1f3e2826d1f7837521e4d82e9e76c3f0876fbd7c40
3
+ metadata.gz: f06324c3b9c916155d7de089ca675e524498efdcd6c07ff824f94b57ab6964c6
4
+ data.tar.gz: 51bfdd81d038f103e94bc9d5be4f6954d6bc6fbc691972f4b7f3001cd7ca9a2d
5
5
  SHA512:
6
- metadata.gz: 8c38a69f9cdac8106505836f5f95e76c5d03600fba62d2ba3a90021292c794d36ece9e6658a581697cb06c29aa8ebdb083e99d94cbb0155f43ae89787fac9d1f
7
- data.tar.gz: 678ffc85d78c890e304475f9e0e387287399131e1259d7f034980840157dc488f2de0687291faf0b02de3c617098d7f0f0ed616e95f7fe28b77f95d50c4f2bfc
6
+ metadata.gz: 45fc197eeaeb201677a069bd7ce3037a8d0bb28aacb49678a723bf7628cde25792aca668ddcff291f5932194f906e4bcbe12af342891da9ec5e36963c0cde2e6
7
+ data.tar.gz: a1752e87e7185ef20c56f58b1d1f568617bfecab5c7295a48e67b22d27afd5eb9b9de470edb0b712423991803887a714a834111af0ba03f1fabc62a6219e8c7c
@@ -0,0 +1,92 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: rake
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+
10
+ jobs:
11
+ rake:
12
+ name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
13
+ runs-on: ${{ matrix.os }}
14
+ continue-on-error: ${{ matrix.experimental }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby: [ '2.6', '2.5', '2.4' ]
19
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
20
+ experimental: [ false ]
21
+ include:
22
+ - ruby: '2.7'
23
+ os: 'ubuntu-latest'
24
+ experimental: true
25
+ - ruby: '2.7'
26
+ os: 'windows-latest'
27
+ experimental: true
28
+ - ruby: '2.7'
29
+ os: 'macos-latest'
30
+ experimental: true
31
+
32
+ steps:
33
+ - uses: actions/checkout@master
34
+ - name: Cache xml2rfc
35
+ id: cache-xml2rfc
36
+ uses: actions/cache@v1
37
+ with:
38
+ path: ~/.cache/xml2rfc
39
+ key: xml2rfc
40
+ restore-key: xml2rfc
41
+
42
+ - name: Use Ruby
43
+ uses: ruby/setup-ruby@v1
44
+ with:
45
+ ruby-version: ${{ matrix.ruby }}
46
+ bundler-cache: true
47
+
48
+ - name: Update gems
49
+ run: |
50
+ bundle install --jobs 4 --retry 3
51
+
52
+ - name: Use Python
53
+ uses: actions/setup-python@v1
54
+ with:
55
+ python-version: '3.6'
56
+ architecture: 'x64'
57
+
58
+ - name: set PIP_DOWNLOAD_CACHE
59
+ shell: python
60
+ run: |
61
+ import platform
62
+ from os.path import expanduser
63
+
64
+ home = expanduser("~")
65
+ cache_path = {
66
+ "Linux": f"{home}/.cache/pip",
67
+ "Darwin": f"{home}Library/Caches/pip",
68
+ "Windows": f"{home}/AppData/Local/pip/Cache"
69
+ }
70
+
71
+ print(f"::set-env name=PIP_DOWNLOAD_CACHE::{cache_path[platform.system()]}")
72
+
73
+ - uses: actions/cache@v2
74
+ with:
75
+ path: ${{ env.PIP_DOWNLOAD_CACHE }}
76
+ key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
77
+ restore-keys: ${{ runner.os }}-pip-
78
+
79
+ - name: Install xml2rfc's deps macOS
80
+ if: matrix.os == 'macos-latest'
81
+ run: brew install libmagic
82
+
83
+ - name: Install xml2rfc's deps Windows
84
+ if: matrix.os == 'windows-latest'
85
+ run: pip install python-magic-bin
86
+
87
+ - name: Install xml2rfc
88
+ run: pip install xml2rfc
89
+
90
+ - name: Run specs
91
+ run: |
92
+ bundle exec rake
@@ -402,6 +402,16 @@
402
402
  </choice>
403
403
  </attribute>
404
404
  </optional>
405
+ <optional>
406
+ <attribute name="valign">
407
+ <choice>
408
+ <value>top</value>
409
+ <value>middle</value>
410
+ <value>bottom</value>
411
+ <value>baseline</value>
412
+ </choice>
413
+ </attribute>
414
+ </optional>
405
415
  <choice>
406
416
  <zeroOrMore>
407
417
  <ref name="TextElement"/>
@@ -429,6 +439,16 @@
429
439
  </choice>
430
440
  </attribute>
431
441
  </optional>
442
+ <optional>
443
+ <attribute name="valign">
444
+ <choice>
445
+ <value>top</value>
446
+ <value>middle</value>
447
+ <value>bottom</value>
448
+ <value>baseline</value>
449
+ </choice>
450
+ </attribute>
451
+ </optional>
432
452
  <choice>
433
453
  <zeroOrMore>
434
454
  <ref name="TextElement"/>
@@ -998,6 +1018,9 @@
998
1018
  <value>alphabet_upper</value>
999
1019
  </choice>
1000
1020
  </attribute>
1021
+ <optional>
1022
+ <attribute name="start"/>
1023
+ </optional>
1001
1024
  <oneOrMore>
1002
1025
  <ref name="li"/>
1003
1026
  </oneOrMore>
@@ -32,8 +32,8 @@ module Asciidoctor
32
32
  end
33
33
 
34
34
  def doctype(node)
35
- ret = node.attr("doctype")
36
- ret = "Internet-Draft" if ret == "article"
35
+ ret = super
36
+ ret = "internet-draft" if ret == "article"
37
37
  ret
38
38
  end
39
39
 
@@ -114,13 +114,21 @@ module Asciidoctor
114
114
 
115
115
  def cleanup(xmldoc)
116
116
  bcp14_cleanup(xmldoc)
117
- rfc_anchor_cleanup(xmldoc)
117
+ abstract_cleanup(xmldoc)
118
118
  super
119
+ rfc_anchor_cleanup(xmldoc)
119
120
  end
120
121
 
121
122
  BCP_KEYWORDS = ["MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
122
123
  "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL"].freeze
123
124
 
125
+ def abstract_cleanup(xmldoc)
126
+ xmldoc.xpath("//abstract[not(text())]").each do |x|
127
+ x.remove
128
+ warn "Empty abstract section removed"
129
+ end
130
+ end
131
+
124
132
  def bcp14_cleanup(xmldoc)
125
133
  return unless @bcp_bold
126
134
  xmldoc.xpath("//strong").each do |s|
@@ -174,6 +182,13 @@ module Asciidoctor
174
182
  super
175
183
  end
176
184
 
185
+ def annex_parse(attrs, xml, node)
186
+ attrs[:numbered] = node.attr("numbered")
187
+ attrs[:removeInRFC] = node.attr("removeInRFC")
188
+ attrs[:toc] = node.attr("toc")
189
+ super
190
+ end
191
+
177
192
  def introduction_parse(attrs, xml, node)
178
193
  clause_parse(attrs, xml, node)
179
194
  end
@@ -11,7 +11,7 @@ module Asciidoctor
11
11
 
12
12
  def metadata_publisher(node, xml)
13
13
  publishers = node.attr("publisher") || "IETF"
14
- publishers.split(/,[ ]?/).each do |p|
14
+ csv_split(publishers)&.each do |p|
15
15
  xml.contributor do |c|
16
16
  c.role **{ type: "publisher" }
17
17
  c.organization { |a| organization(a, p) }
@@ -20,8 +20,8 @@ module Asciidoctor
20
20
  end
21
21
 
22
22
  def metadata_copyright(node, xml)
23
- publishers = node.attr("publisher") || "IETF"
24
- publishers.split(/,[ ]?/).each do |p|
23
+ publishers = node.attr("copyright-holder") || node.attr("publisher") || "IETF"
24
+ csv_split(publishers)&.each do |p|
25
25
  xml.copyright do |c|
26
26
  c.from (node.attr("copyright-year") || Date.today.year)
27
27
  c.owner do |owner|
@@ -31,14 +31,8 @@ module Asciidoctor
31
31
  end
32
32
  end
33
33
 
34
- def organization(org, orgname)
35
- if ["IETF",
36
- "Internet Engineering Task Force"].include? orgname
37
- org.name "Internet Engineering Task Force"
38
- org.abbreviation "IETF"
39
- else
40
- org.name orgname
41
- end
34
+ def org_abbrev
35
+ { "Internet Engineering Task Force" => "IETF" }
42
36
  end
43
37
 
44
38
  def metadata_series(node, xml)
@@ -80,7 +74,7 @@ module Asciidoctor
80
74
  x = node.attr("area") and x.split(/,\s*/).each do |a|
81
75
  xml.area a
82
76
  end
83
- x = node.attr("ipr") and xml.ipr x
77
+ xml.ipr (node.attr("ipr") || "trust200902")
84
78
  x = node.attr("consensus") and xml.consensus x
85
79
  x = node.attr("index-include") and xml.indexInclude x
86
80
  x = node.attr("ipr-extract") and xml.iprExtract x
@@ -868,6 +868,13 @@
868
868
  </define>
869
869
  <define name="ietf-standard">
870
870
  <element name="ietf-standard">
871
+ <attribute name="version"/>
872
+ <attribute name="type">
873
+ <choice>
874
+ <value>semantic</value>
875
+ <value>presentation</value>
876
+ </choice>
877
+ </attribute>
871
878
  <ref name="bibdata"/>
872
879
  <zeroOrMore>
873
880
  <ref name="termdocsource"/>
@@ -43,7 +43,9 @@
43
43
  <define name="xref">
44
44
  <element name="xref">
45
45
  <attribute name="target">
46
- <data type="IDREF"/>
46
+ <data type="string">
47
+ <param name="pattern">\i\c*|\c+#\c+</param>
48
+ </data>
47
49
  </attribute>
48
50
  <optional>
49
51
  <attribute name="type">
@@ -61,6 +63,11 @@
61
63
  </choice>
62
64
  </attribute>
63
65
  </optional>
66
+ <optional>
67
+ <attribute name="droploc">
68
+ <data type="boolean"/>
69
+ </attribute>
70
+ </optional>
64
71
  <text/>
65
72
  </element>
66
73
  </define>
@@ -578,6 +585,8 @@
578
585
  <ref name="ol"/>
579
586
  <ref name="dl"/>
580
587
  <ref name="formula"/>
588
+ <ref name="quote"/>
589
+ <ref name="sourcecode"/>
581
590
  </choice>
582
591
  </oneOrMore>
583
592
  </element>
@@ -661,6 +670,16 @@
661
670
  </choice>
662
671
  </attribute>
663
672
  </optional>
673
+ <optional>
674
+ <attribute name="valign">
675
+ <choice>
676
+ <value>top</value>
677
+ <value>middle</value>
678
+ <value>bottom</value>
679
+ <value>baseline</value>
680
+ </choice>
681
+ </attribute>
682
+ </optional>
664
683
  <choice>
665
684
  <zeroOrMore>
666
685
  <choice>
@@ -697,6 +716,16 @@
697
716
  </choice>
698
717
  </attribute>
699
718
  </optional>
719
+ <optional>
720
+ <attribute name="valign">
721
+ <choice>
722
+ <value>top</value>
723
+ <value>middle</value>
724
+ <value>bottom</value>
725
+ <value>baseline</value>
726
+ </choice>
727
+ </attribute>
728
+ </optional>
700
729
  <choice>
701
730
  <zeroOrMore>
702
731
  <choice>
@@ -834,6 +863,13 @@
834
863
  </define>
835
864
  <define name="standard-document">
836
865
  <element name="standard-document">
866
+ <attribute name="version"/>
867
+ <attribute name="type">
868
+ <choice>
869
+ <value>semantic</value>
870
+ <value>presentation</value>
871
+ </choice>
872
+ </attribute>
837
873
  <ref name="bibdata"/>
838
874
  <optional>
839
875
  <ref name="boilerplate"/>
@@ -855,7 +891,7 @@
855
891
  <oneOrMore>
856
892
  <choice>
857
893
  <ref name="content"/>
858
- <ref name="preface_abstract"/>
894
+ <ref name="abstract"/>
859
895
  <ref name="foreword"/>
860
896
  <ref name="introduction"/>
861
897
  <ref name="acknowledgements"/>
@@ -922,6 +958,9 @@
922
958
  <optional>
923
959
  <attribute name="script"/>
924
960
  </optional>
961
+ <optional>
962
+ <attribute name="type"/>
963
+ </optional>
925
964
  <optional>
926
965
  <attribute name="obligation">
927
966
  <choice>
@@ -961,9 +1000,6 @@
961
1000
  </define>
962
1001
  <define name="content-subsection">
963
1002
  <element name="clause">
964
- <optional>
965
- <attribute name="type"/>
966
- </optional>
967
1003
  <ref name="Content-Section"/>
968
1004
  </element>
969
1005
  </define>
@@ -992,6 +1028,9 @@
992
1028
  </choice>
993
1029
  </attribute>
994
1030
  </optional>
1031
+ <optional>
1032
+ <attribute name="type"/>
1033
+ </optional>
995
1034
  <optional>
996
1035
  <ref name="section-title"/>
997
1036
  </optional>
@@ -1011,9 +1050,6 @@
1011
1050
  </define>
1012
1051
  <define name="clause">
1013
1052
  <element name="clause">
1014
- <optional>
1015
- <attribute name="type"/>
1016
- </optional>
1017
1053
  <ref name="Clause-Section"/>
1018
1054
  </element>
1019
1055
  </define>
@@ -1042,18 +1078,24 @@
1042
1078
  </choice>
1043
1079
  </attribute>
1044
1080
  </optional>
1081
+ <optional>
1082
+ <attribute name="type"/>
1083
+ </optional>
1045
1084
  <optional>
1046
1085
  <ref name="section-title"/>
1047
1086
  </optional>
1048
1087
  <group>
1049
- <group>
1050
- <zeroOrMore>
1051
- <ref name="BasicBlock"/>
1052
- </zeroOrMore>
1053
- <zeroOrMore>
1054
- <ref name="note"/>
1055
- </zeroOrMore>
1056
- </group>
1088
+ <choice>
1089
+ <group>
1090
+ <zeroOrMore>
1091
+ <ref name="BasicBlock"/>
1092
+ </zeroOrMore>
1093
+ <zeroOrMore>
1094
+ <ref name="note"/>
1095
+ </zeroOrMore>
1096
+ </group>
1097
+ <ref name="amend"/>
1098
+ </choice>
1057
1099
  <zeroOrMore>
1058
1100
  <choice>
1059
1101
  <ref name="clause-subsection"/>
@@ -1122,49 +1164,7 @@
1122
1164
  </define>
1123
1165
  <define name="annex">
1124
1166
  <element name="annex">
1125
- <optional>
1126
- <attribute name="id">
1127
- <data type="ID"/>
1128
- </attribute>
1129
- </optional>
1130
- <optional>
1131
- <attribute name="language"/>
1132
- </optional>
1133
- <optional>
1134
- <attribute name="script"/>
1135
- </optional>
1136
- <optional>
1137
- <attribute name="inline-header">
1138
- <data type="boolean"/>
1139
- </attribute>
1140
- </optional>
1141
- <attribute name="obligation">
1142
- <choice>
1143
- <value>normative</value>
1144
- <value>informative</value>
1145
- </choice>
1146
- </attribute>
1147
- <optional>
1148
- <ref name="section-title"/>
1149
- </optional>
1150
- <group>
1151
- <group>
1152
- <zeroOrMore>
1153
- <ref name="BasicBlock"/>
1154
- </zeroOrMore>
1155
- <zeroOrMore>
1156
- <ref name="note"/>
1157
- </zeroOrMore>
1158
- </group>
1159
- <zeroOrMore>
1160
- <choice>
1161
- <ref name="annex-subsection"/>
1162
- <ref name="terms"/>
1163
- <ref name="definitions"/>
1164
- <ref name="references"/>
1165
- </choice>
1166
- </zeroOrMore>
1167
- </group>
1167
+ <ref name="Annex-Section"/>
1168
1168
  </element>
1169
1169
  </define>
1170
1170
  <define name="terms">
@@ -1180,6 +1180,9 @@
1180
1180
  <optional>
1181
1181
  <attribute name="script"/>
1182
1182
  </optional>
1183
+ <optional>
1184
+ <attribute name="type"/>
1185
+ </optional>
1183
1186
  <optional>
1184
1187
  <attribute name="obligation">
1185
1188
  <choice>
@@ -1447,11 +1450,6 @@
1447
1450
  </optional>
1448
1451
  </element>
1449
1452
  </define>
1450
- <define name="preface_abstract">
1451
- <element name="abstract">
1452
- <ref name="Basic-Section"/>
1453
- </element>
1454
- </define>
1455
1453
  <define name="term-clause">
1456
1454
  <element name="clause">
1457
1455
  <optional>
@@ -1501,4 +1499,79 @@
1501
1499
  <ref name="CitationType"/>
1502
1500
  </element>
1503
1501
  </define>
1502
+ <define name="amend">
1503
+ <element name="amend">
1504
+ <optional>
1505
+ <attribute name="id">
1506
+ <data type="ID"/>
1507
+ </attribute>
1508
+ </optional>
1509
+ <attribute name="change">
1510
+ <choice>
1511
+ <value>add</value>
1512
+ <value>modify</value>
1513
+ <value>delete</value>
1514
+ </choice>
1515
+ </attribute>
1516
+ <optional>
1517
+ <attribute name="path"/>
1518
+ </optional>
1519
+ <optional>
1520
+ <attribute name="path_end"/>
1521
+ </optional>
1522
+ <optional>
1523
+ <attribute name="title"/>
1524
+ </optional>
1525
+ <optional>
1526
+ <element name="location">
1527
+ <zeroOrMore>
1528
+ <ref name="locality"/>
1529
+ </zeroOrMore>
1530
+ </element>
1531
+ </optional>
1532
+ <zeroOrMore>
1533
+ <ref name="autonumber"/>
1534
+ </zeroOrMore>
1535
+ <optional>
1536
+ <element name="description">
1537
+ <zeroOrMore>
1538
+ <ref name="BasicBlock"/>
1539
+ </zeroOrMore>
1540
+ </element>
1541
+ </optional>
1542
+ <optional>
1543
+ <element name="newcontent">
1544
+ <zeroOrMore>
1545
+ <ref name="BasicBlock"/>
1546
+ </zeroOrMore>
1547
+ </element>
1548
+ </optional>
1549
+ <optional>
1550
+ <element name="description">
1551
+ <zeroOrMore>
1552
+ <ref name="BasicBlock"/>
1553
+ </zeroOrMore>
1554
+ </element>
1555
+ </optional>
1556
+ </element>
1557
+ </define>
1558
+ <define name="autonumber">
1559
+ <element name="autonumber">
1560
+ <attribute name="type">
1561
+ <choice>
1562
+ <value>requirement</value>
1563
+ <value>recommendation</value>
1564
+ <value>permission</value>
1565
+ <value>table</value>
1566
+ <value>figure</value>
1567
+ <value>admonition</value>
1568
+ <value>formula</value>
1569
+ <value>sourcecode</value>
1570
+ <value>example</value>
1571
+ <value>note</value>
1572
+ </choice>
1573
+ </attribute>
1574
+ <text/>
1575
+ </element>
1576
+ </define>
1504
1577
  </grammar>