metanorma-generic 1.4.6 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +8 -7
- data/.github/workflows/ubuntu.yml +12 -9
- data/.github/workflows/windows.yml +8 -8
- data/lib/asciidoctor/generic/biblio.rng +143 -38
- data/lib/asciidoctor/generic/converter.rb +79 -36
- data/lib/asciidoctor/generic/isodoc.rng +475 -2
- data/lib/asciidoctor/generic/reqt.rng +23 -0
- data/lib/isodoc/generic.rb +1 -0
- data/lib/isodoc/generic/base_convert.rb +11 -1
- data/lib/isodoc/generic/html/scripts.html +14 -27
- data/lib/isodoc/generic/html_convert.rb +2 -4
- data/lib/isodoc/generic/metadata.rb +10 -0
- data/lib/isodoc/generic/presentation_xml_convert.rb +10 -0
- data/lib/isodoc/generic/xref.rb +6 -0
- data/lib/metanorma/generic.rb +21 -1
- data/lib/metanorma/generic/processor.rb +27 -6
- data/lib/metanorma/generic/version.rb +1 -1
- data/metanorma-generic.gemspec +2 -2
- data/metanorma.yml.example +42 -0
- metadata +12 -12
- data/lib/isodoc/generic/html/scripts.pdf.html +0 -72
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4c86f4ec6164879c4e3240c59509762dd17bec3198e6ca291fab12cc31d3a66e
|
4
|
+
data.tar.gz: 9242bc948011576c68c2dcecd7aacb9ee4f10a3839bf105fe23b327203d816ed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 575d6d49b0fae89903776a157e5774029b60ee6049e158b1f6c0410b32edb21ed6908c3a30c089195dcda864ea16636f23c38ec038120ec674956e8610184946
|
7
|
+
data.tar.gz: 455b421535ade823b2ecb128848238bf2ae386d00680daa2bc946f6d87a2bb66afd70dd595b969f37a65bd9b1282707c0f53280be3f740161d28a4704de78ffb
|
data/.github/workflows/macos.yml
CHANGED
@@ -6,15 +6,23 @@ on:
|
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
8
|
pull_request:
|
9
|
+
paths-ignore:
|
10
|
+
- .github/workflows/ubuntu.yml
|
11
|
+
- .github/workflows/windows.yml
|
9
12
|
|
10
13
|
jobs:
|
11
14
|
test-macos:
|
12
15
|
name: Test on Ruby ${{ matrix.ruby }} macOS
|
13
16
|
runs-on: macos-latest
|
17
|
+
continue-on-error: ${{ matrix.experimental }}
|
14
18
|
strategy:
|
15
19
|
fail-fast: false
|
16
20
|
matrix:
|
17
21
|
ruby: [ '2.6', '2.5', '2.4' ]
|
22
|
+
experimental: [false]
|
23
|
+
include:
|
24
|
+
- ruby: '2.7'
|
25
|
+
experimental: true
|
18
26
|
steps:
|
19
27
|
- uses: actions/checkout@master
|
20
28
|
- name: Use Ruby
|
@@ -26,13 +34,6 @@ jobs:
|
|
26
34
|
run: |
|
27
35
|
sudo gem install bundler --force
|
28
36
|
bundle install --jobs 4 --retry 3
|
29
|
-
- name: Use Node
|
30
|
-
uses: actions/setup-node@v1
|
31
|
-
with:
|
32
|
-
node-version: '8'
|
33
|
-
- name: Install Puppeteer
|
34
|
-
run: |
|
35
|
-
npm install -g puppeteer
|
36
37
|
- name: Run specs
|
37
38
|
run: |
|
38
39
|
bundle exec rake
|
@@ -5,16 +5,26 @@ name: ubuntu
|
|
5
5
|
on:
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
|
+
tags:
|
9
|
+
- '*'
|
8
10
|
pull_request:
|
11
|
+
paths-ignore:
|
12
|
+
- .github/workflows/macos.yml
|
13
|
+
- .github/workflows/windows.yml
|
9
14
|
|
10
15
|
jobs:
|
11
16
|
test-linux:
|
12
17
|
name: Test on Ruby ${{ matrix.ruby }} Ubuntu
|
13
18
|
runs-on: ubuntu-latest
|
19
|
+
continue-on-error: ${{ matrix.experimental }}
|
14
20
|
strategy:
|
15
21
|
fail-fast: false
|
16
22
|
matrix:
|
17
23
|
ruby: [ '2.6', '2.5', '2.4' ]
|
24
|
+
experimental: [false]
|
25
|
+
include:
|
26
|
+
- ruby: '2.7'
|
27
|
+
experimental: true
|
18
28
|
steps:
|
19
29
|
- uses: actions/checkout@master
|
20
30
|
- name: Use Ruby
|
@@ -26,18 +36,11 @@ jobs:
|
|
26
36
|
run: |
|
27
37
|
gem install bundler
|
28
38
|
bundle install --jobs 4 --retry 3
|
29
|
-
- name: Use Node
|
30
|
-
uses: actions/setup-node@v1
|
31
|
-
with:
|
32
|
-
node-version: '8'
|
33
|
-
- name: Install Puppeteer
|
34
|
-
run: |
|
35
|
-
npm install -g puppeteer
|
36
39
|
- name: Run specs
|
37
40
|
run: |
|
38
41
|
bundle exec rake
|
39
42
|
- name: Trigger dependent repositories
|
40
|
-
if: github.ref == 'refs/heads/master'
|
43
|
+
if: github.ref == 'refs/heads/master' && matrix.ruby == '2.6'
|
41
44
|
env:
|
42
45
|
GH_USERNAME: ${{ secrets.PAT_USERNAME }}
|
43
46
|
GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
|
@@ -46,5 +49,5 @@ jobs:
|
|
46
49
|
[[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
|
47
50
|
for repo in $DEPENDENT_REPOS
|
48
51
|
do
|
49
|
-
sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY
|
52
|
+
sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "{ \"ref\": \"${GITHUB_REF}\" }"
|
50
53
|
done
|
@@ -6,15 +6,23 @@ on:
|
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
8
|
pull_request:
|
9
|
+
paths-ignore:
|
10
|
+
- .github/workflows/macos.yml
|
11
|
+
- .github/workflows/ubuntu.yml
|
9
12
|
|
10
13
|
jobs:
|
11
14
|
test-windows:
|
12
15
|
name: Test on Ruby ${{ matrix.ruby }} Windows
|
13
16
|
runs-on: windows-latest
|
17
|
+
continue-on-error: ${{ matrix.experimental }}
|
14
18
|
strategy:
|
15
19
|
fail-fast: false
|
16
20
|
matrix:
|
17
21
|
ruby: [ '2.6', '2.5', '2.4' ]
|
22
|
+
experimental: [false]
|
23
|
+
include:
|
24
|
+
- ruby: '2.7'
|
25
|
+
experimental: true
|
18
26
|
steps:
|
19
27
|
- uses: actions/checkout@master
|
20
28
|
- name: Use Ruby
|
@@ -27,15 +35,7 @@ jobs:
|
|
27
35
|
run: |
|
28
36
|
gem install bundler
|
29
37
|
bundle config --local path vendor/bundle
|
30
|
-
bundle update
|
31
38
|
bundle install --jobs 4 --retry 3
|
32
|
-
- name: Use Node
|
33
|
-
uses: actions/setup-node@v1
|
34
|
-
with:
|
35
|
-
node-version: '8'
|
36
|
-
- name: Install Puppeteer
|
37
|
-
run: |
|
38
|
-
npm install -g puppeteer
|
39
39
|
- name: Run specs
|
40
40
|
run: |
|
41
41
|
bundle exec rake
|
@@ -49,11 +49,17 @@
|
|
49
49
|
</define>
|
50
50
|
<define name="stage">
|
51
51
|
<element name="stage">
|
52
|
+
<optional>
|
53
|
+
<attribute name="abbreviation"/>
|
54
|
+
</optional>
|
52
55
|
<text/>
|
53
56
|
</element>
|
54
57
|
</define>
|
55
58
|
<define name="substage">
|
56
59
|
<element name="substage">
|
60
|
+
<optional>
|
61
|
+
<attribute name="abbreviation"/>
|
62
|
+
</optional>
|
57
63
|
<text/>
|
58
64
|
</element>
|
59
65
|
</define>
|
@@ -82,7 +88,7 @@
|
|
82
88
|
<text/>
|
83
89
|
</element>
|
84
90
|
</define>
|
85
|
-
<define name="
|
91
|
+
<define name="LocalizedString1">
|
86
92
|
<optional>
|
87
93
|
<!-- multiple languages and scripts possible: comma delimit them if so -->
|
88
94
|
<attribute name="language"/>
|
@@ -92,6 +98,16 @@
|
|
92
98
|
</optional>
|
93
99
|
<text/>
|
94
100
|
</define>
|
101
|
+
<define name="LocalizedString">
|
102
|
+
<choice>
|
103
|
+
<ref name="LocalizedString1"/>
|
104
|
+
<oneOrMore>
|
105
|
+
<element name="variant">
|
106
|
+
<ref name="LocalizedString1"/>
|
107
|
+
</element>
|
108
|
+
</oneOrMore>
|
109
|
+
</choice>
|
110
|
+
</define>
|
95
111
|
<!--
|
96
112
|
Unlike UML, change type to format: type is overloaded
|
97
113
|
Would be need if plain were default value and could omit the attribute
|
@@ -115,7 +131,7 @@
|
|
115
131
|
</optional>
|
116
132
|
<ref name="LocalizedStringOrXsAny"/>
|
117
133
|
</define>
|
118
|
-
<define name="
|
134
|
+
<define name="LocalizedStringOrXsAny1">
|
119
135
|
<optional>
|
120
136
|
<!-- multiple languages and scripts possible: comma delimit them if so -->
|
121
137
|
<attribute name="language"/>
|
@@ -130,6 +146,16 @@
|
|
130
146
|
</choice>
|
131
147
|
</oneOrMore>
|
132
148
|
</define>
|
149
|
+
<define name="LocalizedStringOrXsAny">
|
150
|
+
<choice>
|
151
|
+
<ref name="LocalizedStringOrXsAny1"/>
|
152
|
+
<oneOrMore>
|
153
|
+
<element name="variant">
|
154
|
+
<ref name="LocalizedStringOrXsAny1"/>
|
155
|
+
</element>
|
156
|
+
</oneOrMore>
|
157
|
+
</choice>
|
158
|
+
</define>
|
133
159
|
<define name="contributor">
|
134
160
|
<element name="contributor">
|
135
161
|
<zeroOrMore>
|
@@ -452,9 +478,14 @@
|
|
452
478
|
<attribute name="bibitemid">
|
453
479
|
<data type="IDREF"/>
|
454
480
|
</attribute>
|
455
|
-
<
|
456
|
-
<
|
457
|
-
|
481
|
+
<choice>
|
482
|
+
<zeroOrMore>
|
483
|
+
<ref name="locality"/>
|
484
|
+
</zeroOrMore>
|
485
|
+
<zeroOrMore>
|
486
|
+
<ref name="localityStack"/>
|
487
|
+
</zeroOrMore>
|
488
|
+
</choice>
|
458
489
|
<optional>
|
459
490
|
<ref name="date"/>
|
460
491
|
</optional>
|
@@ -469,6 +500,25 @@
|
|
469
500
|
<ref name="BibItemLocality"/>
|
470
501
|
</element>
|
471
502
|
</define>
|
503
|
+
<define name="localityStack">
|
504
|
+
<element name="localityStack">
|
505
|
+
<zeroOrMore>
|
506
|
+
<ref name="locality"/>
|
507
|
+
</zeroOrMore>
|
508
|
+
</element>
|
509
|
+
</define>
|
510
|
+
<define name="sourceLocality">
|
511
|
+
<element name="sourceLocality">
|
512
|
+
<ref name="BibItemLocality"/>
|
513
|
+
</element>
|
514
|
+
</define>
|
515
|
+
<define name="sourceLocalityStack">
|
516
|
+
<element name="sourceLocalityStack">
|
517
|
+
<zeroOrMore>
|
518
|
+
<ref name="sourceLocality"/>
|
519
|
+
</zeroOrMore>
|
520
|
+
</element>
|
521
|
+
</define>
|
472
522
|
<define name="BibItemLocality">
|
473
523
|
<attribute name="type">
|
474
524
|
<ref name="LocalityType"/>
|
@@ -482,7 +532,7 @@
|
|
482
532
|
</define>
|
483
533
|
<define name="LocalityType">
|
484
534
|
<data type="string">
|
485
|
-
<param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|locality:[a-zA-Z0-9_]+</param>
|
535
|
+
<param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
|
486
536
|
</data>
|
487
537
|
</define>
|
488
538
|
<define name="referenceFrom">
|
@@ -611,9 +661,9 @@
|
|
611
661
|
<optional>
|
612
662
|
<ref name="status"/>
|
613
663
|
</optional>
|
614
|
-
<
|
664
|
+
<zeroOrMore>
|
615
665
|
<ref name="copyright"/>
|
616
|
-
</
|
666
|
+
</zeroOrMore>
|
617
667
|
<zeroOrMore>
|
618
668
|
<ref name="docrelation"/>
|
619
669
|
</zeroOrMore>
|
@@ -737,6 +787,8 @@
|
|
737
787
|
<value>unchanged</value>
|
738
788
|
<value>circulated</value>
|
739
789
|
<value>adapted</value>
|
790
|
+
<value>vote-started</value>
|
791
|
+
<value>vote-ended</value>
|
740
792
|
</choice>
|
741
793
|
</define>
|
742
794
|
<define name="bdate">
|
@@ -969,7 +1021,17 @@
|
|
969
1021
|
<optional>
|
970
1022
|
<ref name="to"/>
|
971
1023
|
</optional>
|
972
|
-
<
|
1024
|
+
<oneOrMore>
|
1025
|
+
<ref name="owner"/>
|
1026
|
+
</oneOrMore>
|
1027
|
+
<optional>
|
1028
|
+
<ref name="copyright_scope"/>
|
1029
|
+
</optional>
|
1030
|
+
</element>
|
1031
|
+
</define>
|
1032
|
+
<define name="copyright_scope">
|
1033
|
+
<element name="scope">
|
1034
|
+
<text/>
|
973
1035
|
</element>
|
974
1036
|
</define>
|
975
1037
|
<define name="from">
|
@@ -989,38 +1051,63 @@
|
|
989
1051
|
</define>
|
990
1052
|
<define name="DocRelationType">
|
991
1053
|
<choice>
|
992
|
-
<value>obsoletes</value>
|
993
|
-
<value>obsoletedBy</value>
|
994
|
-
<value>supersedes</value>
|
995
|
-
<value>supersededBy</value>
|
996
|
-
<value>updates</value>
|
997
|
-
<value>updatedBy</value>
|
998
|
-
<value>complements</value>
|
999
|
-
<value>derivedFrom</value>
|
1000
|
-
<value>translatedFrom</value>
|
1001
|
-
<value>hasTranslation</value>
|
1002
|
-
<value>adoptedFrom</value>
|
1003
|
-
<value>equivalent</value>
|
1004
|
-
<value>identical</value>
|
1005
|
-
<value>nonequivalent</value>
|
1006
|
-
<value>includedIn</value>
|
1007
1054
|
<value>includes</value>
|
1008
|
-
<value>
|
1009
|
-
<value>instanceOf</value>
|
1010
|
-
<value>partOf</value>
|
1055
|
+
<value>includedIn</value>
|
1011
1056
|
<value>hasPart</value>
|
1012
|
-
<value>
|
1013
|
-
<value>draftOf</value>
|
1057
|
+
<value>partOf</value>
|
1014
1058
|
<value>merges</value>
|
1059
|
+
<value>mergedInto</value>
|
1015
1060
|
<value>splits</value>
|
1016
|
-
<value>
|
1017
|
-
<value>
|
1018
|
-
<value>
|
1019
|
-
<value>
|
1020
|
-
<value>
|
1021
|
-
<value>
|
1061
|
+
<value>splitInto</value>
|
1062
|
+
<value>instance</value>
|
1063
|
+
<value>hasInstance</value>
|
1064
|
+
<value>exemplarOf</value>
|
1065
|
+
<value>hasExemplar</value>
|
1066
|
+
<value>manifestationOf</value>
|
1067
|
+
<value>hasManifestation</value>
|
1068
|
+
<value>reproductionOf</value>
|
1069
|
+
<value>hasReproduction</value>
|
1070
|
+
<value>reprintOf</value>
|
1071
|
+
<value>hasReprint</value>
|
1072
|
+
<value>expressionOf</value>
|
1073
|
+
<value>hasExpression</value>
|
1074
|
+
<value>translatedFrom</value>
|
1075
|
+
<value>hasTranslation</value>
|
1076
|
+
<value>arrangementOf</value>
|
1077
|
+
<value>hasArrangement</value>
|
1078
|
+
<value>abridgementOf</value>
|
1079
|
+
<value>hasAbridgement</value>
|
1080
|
+
<value>annotationOf</value>
|
1081
|
+
<value>hasAnnotation</value>
|
1082
|
+
<value>draftOf</value>
|
1083
|
+
<value>hasDraft</value>
|
1084
|
+
<value>editionOf</value>
|
1085
|
+
<value>hasEdition</value>
|
1086
|
+
<value>updates</value>
|
1087
|
+
<value>updatedBy</value>
|
1088
|
+
<value>derivedFrom</value>
|
1089
|
+
<value>derives</value>
|
1022
1090
|
<value>describes</value>
|
1023
1091
|
<value>describedBy</value>
|
1092
|
+
<value>catalogues</value>
|
1093
|
+
<value>cataloguedBy</value>
|
1094
|
+
<value>hasSuccessor</value>
|
1095
|
+
<value>successorOf</value>
|
1096
|
+
<value>adaptedFrom</value>
|
1097
|
+
<value>hasAdaptation</value>
|
1098
|
+
<value>adoptedFrom</value>
|
1099
|
+
<value>adoptedAs</value>
|
1100
|
+
<value>reviewOf</value>
|
1101
|
+
<value>hasReview</value>
|
1102
|
+
<value>commentaryOf</value>
|
1103
|
+
<value>hasCommentary</value>
|
1104
|
+
<value>related</value>
|
1105
|
+
<value>complements</value>
|
1106
|
+
<value>complementOf</value>
|
1107
|
+
<value>obsoletes</value>
|
1108
|
+
<value>obsoletedBy</value>
|
1109
|
+
<value>cited</value>
|
1110
|
+
<value>isCitedIn</value>
|
1024
1111
|
</choice>
|
1025
1112
|
</define>
|
1026
1113
|
<define name="docrelation">
|
@@ -1028,12 +1115,30 @@
|
|
1028
1115
|
<attribute name="type">
|
1029
1116
|
<ref name="DocRelationType"/>
|
1030
1117
|
</attribute>
|
1118
|
+
<optional>
|
1119
|
+
<element name="description">
|
1120
|
+
<ref name="FormattedString"/>
|
1121
|
+
</element>
|
1122
|
+
</optional>
|
1031
1123
|
<element name="bibitem">
|
1032
1124
|
<ref name="BibliographicItem"/>
|
1033
1125
|
</element>
|
1034
|
-
<
|
1035
|
-
<
|
1036
|
-
|
1126
|
+
<choice>
|
1127
|
+
<zeroOrMore>
|
1128
|
+
<ref name="locality"/>
|
1129
|
+
</zeroOrMore>
|
1130
|
+
<zeroOrMore>
|
1131
|
+
<ref name="localityStack"/>
|
1132
|
+
</zeroOrMore>
|
1133
|
+
</choice>
|
1134
|
+
<choice>
|
1135
|
+
<zeroOrMore>
|
1136
|
+
<ref name="sourceLocality"/>
|
1137
|
+
</zeroOrMore>
|
1138
|
+
<zeroOrMore>
|
1139
|
+
<ref name="sourceLocalityStack"/>
|
1140
|
+
</zeroOrMore>
|
1141
|
+
</choice>
|
1037
1142
|
</element>
|
1038
1143
|
</define>
|
1039
1144
|
<define name="version">
|
@@ -14,6 +14,14 @@ module Asciidoctor
|
|
14
14
|
|
15
15
|
register_for "generic"
|
16
16
|
|
17
|
+
def xml_root_tag
|
18
|
+
configuration.xml_root_tag || XML_ROOT_TAG
|
19
|
+
end
|
20
|
+
|
21
|
+
def xml_namespace
|
22
|
+
configuration.document_namespace || XML_NAMESPACE
|
23
|
+
end
|
24
|
+
|
17
25
|
def baselocation(loc)
|
18
26
|
return nil if loc.nil?
|
19
27
|
File.expand_path(File.join(File.dirname(self.class::_file || __FILE__), "..", "..", "..", loc))
|
@@ -23,7 +31,7 @@ module Asciidoctor
|
|
23
31
|
xml.contributor do |c|
|
24
32
|
c.role **{ type: "author" }
|
25
33
|
c.organization do |a|
|
26
|
-
a.name configuration.
|
34
|
+
a.name configuration.organization_name_long
|
27
35
|
end
|
28
36
|
end
|
29
37
|
personal_author(node, xml)
|
@@ -33,7 +41,7 @@ module Asciidoctor
|
|
33
41
|
xml.contributor do |c|
|
34
42
|
c.role **{ type: "publisher" }
|
35
43
|
c.organization do |a|
|
36
|
-
a.name configuration.
|
44
|
+
a.name configuration.organization_name_long
|
37
45
|
end
|
38
46
|
end
|
39
47
|
end
|
@@ -52,6 +60,15 @@ module Asciidoctor
|
|
52
60
|
end
|
53
61
|
end
|
54
62
|
|
63
|
+
def metadata_status(node, xml)
|
64
|
+
xml.status do |s|
|
65
|
+
s.stage ( node.attr("status") || node.attr("docstage") ||
|
66
|
+
configuration.default_stage || "published" )
|
67
|
+
x = node.attr("substage") and s.substage x
|
68
|
+
x = node.attr("iteration") and s.iteration x
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
55
72
|
def docidentifier_cleanup(xmldoc)
|
56
73
|
template = configuration.docid_template ||
|
57
74
|
"{{ organization_name_short }} {{ docnumeric }}"
|
@@ -61,7 +78,8 @@ module Asciidoctor
|
|
61
78
|
end
|
62
79
|
|
63
80
|
def metadata_id(node, xml)
|
64
|
-
xml.docidentifier
|
81
|
+
xml.docidentifier **{ type:
|
82
|
+
configuration.organization_name_short } do |i|
|
65
83
|
i << "DUMMY"
|
66
84
|
end
|
67
85
|
xml.docnumber { |i| i << node.attr("docnumber") }
|
@@ -73,34 +91,28 @@ module Asciidoctor
|
|
73
91
|
c.from from
|
74
92
|
c.owner do |owner|
|
75
93
|
owner.organization do |o|
|
76
|
-
o.name configuration.
|
94
|
+
o.name configuration.organization_name_long
|
77
95
|
end
|
78
96
|
end
|
79
97
|
end
|
80
98
|
end
|
81
99
|
|
82
|
-
def
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
result << noko { |ixml| middle node, ixml }
|
88
|
-
result << "</#{root_tag}>"
|
89
|
-
result = textcleanup(result)
|
90
|
-
ret1 = cleanup(Nokogiri::XML(result))
|
91
|
-
validate(ret1) unless @novalid
|
92
|
-
ret1.root.add_namespace(nil, configuration.document_namespace ||
|
93
|
-
XML_NAMESPACE)
|
94
|
-
ret1
|
100
|
+
def metadata_ext(node, ext)
|
101
|
+
super
|
102
|
+
Array(configuration.metadata_extensions).each do |e|
|
103
|
+
a = node.attr(e) and ext.send e, a
|
104
|
+
end
|
95
105
|
end
|
96
106
|
|
97
107
|
def doctype(node)
|
98
108
|
d = node.attr("doctype")
|
99
|
-
|
100
|
-
|
109
|
+
configuration.doctypes or return d == "article" ? "standard" : d
|
110
|
+
default = configuration.default_doctype || Array(configuration.doctypes).dig(0) ||
|
111
|
+
"standard"
|
112
|
+
unless Array(configuration.doctypes).include? d
|
101
113
|
@log.add("Document Attributes", nil,
|
102
|
-
"#{d} is not a legal document type: reverting to '
|
103
|
-
d =
|
114
|
+
"#{d} is not a legal document type: reverting to '#{default}'")
|
115
|
+
d = default
|
104
116
|
end
|
105
117
|
d
|
106
118
|
end
|
@@ -110,22 +122,32 @@ module Asciidoctor
|
|
110
122
|
set_default_values_from_yaml_file(path_to_config_file)
|
111
123
|
end
|
112
124
|
|
125
|
+
def sectiontype_streamline(ret)
|
126
|
+
if configuration.termsdefs_titles.map(&:downcase).include? (ret)
|
127
|
+
"terms and definitions"
|
128
|
+
elsif configuration.symbols_titles.map(&:downcase).include? (ret)
|
129
|
+
"symbols and abbreviated terms"
|
130
|
+
elsif configuration.normref_titles.map(&:downcase).include? (ret)
|
131
|
+
"normative references"
|
132
|
+
elsif configuration.bibliography_titles.map(&:downcase).include? (ret)
|
133
|
+
"bibliography"
|
134
|
+
else
|
135
|
+
ret
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
113
139
|
def document(node)
|
114
140
|
read_config_file(node.attr("customize")) if node.attr("customize")
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
end
|
126
|
-
@log.write(@localdir + @filename + ".err") unless @novalid
|
127
|
-
@files_to_delete.each { |f| FileUtils.rm f }
|
128
|
-
ret
|
141
|
+
super
|
142
|
+
end
|
143
|
+
|
144
|
+
def outputs(node, ret)
|
145
|
+
File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
|
146
|
+
presentation_xml_converter(node).convert(@filename + ".xml")
|
147
|
+
html_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.html")
|
148
|
+
doc_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.doc")
|
149
|
+
pdf_converter(node)&.convert(@filename + ".presentation.xml", nil, false, "#{@filename}.pdf")
|
150
|
+
|
129
151
|
end
|
130
152
|
|
131
153
|
def validate(doc)
|
@@ -135,6 +157,23 @@ module Asciidoctor
|
|
135
157
|
File.join(File.dirname(__FILE__), "generic.rng"))
|
136
158
|
end
|
137
159
|
|
160
|
+
def content_validate(doc)
|
161
|
+
super
|
162
|
+
bibdata_validate(doc.root)
|
163
|
+
end
|
164
|
+
|
165
|
+
def bibdata_validate(doc)
|
166
|
+
stage_validate(doc)
|
167
|
+
end
|
168
|
+
|
169
|
+
def stage_validate(xmldoc)
|
170
|
+
stages = configuration&.stage_abbreviations&.keys || return
|
171
|
+
stages.empty? and return
|
172
|
+
stage = xmldoc&.at("//bibdata/status/stage")&.text
|
173
|
+
stages.include? stage or
|
174
|
+
@log.add("Document Attributes", nil, "#{stage} is not a recognised status")
|
175
|
+
end
|
176
|
+
|
138
177
|
def sections_cleanup(x)
|
139
178
|
super
|
140
179
|
x.xpath("//*[@inline-header]").each do |h|
|
@@ -148,11 +187,15 @@ module Asciidoctor
|
|
148
187
|
IsoDoc::Generic::HtmlConvert.new(html_extract_attributes(node))
|
149
188
|
end
|
150
189
|
|
190
|
+
def presentation_xml_converter(node)
|
191
|
+
IsoDoc::Generic::PresentationXMLConvert.new(html_extract_attributes(node))
|
192
|
+
end
|
193
|
+
|
151
194
|
alias_method :pdf_converter, :html_converter
|
152
195
|
alias_method :style, :blank_method
|
153
196
|
alias_method :title_validate, :blank_method
|
154
197
|
|
155
|
-
def
|
198
|
+
def doc_converter(node)
|
156
199
|
IsoDoc::Generic::WordConvert.new(doc_extract_attributes(node))
|
157
200
|
end
|
158
201
|
|