metanorma-iso 1.10.0 → 1.10.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/.github/workflows/ubuntu.yml +41 -0
- data/Gemfile +3 -4
- data/Makefile +44 -0
- data/Rakefile +1 -1
- data/bin/rspec +1 -2
- data/lib/asciidoctor/iso/basicdoc.rng +11 -1
- data/lib/asciidoctor/iso/biblio.rng +2 -0
- data/lib/asciidoctor/iso/cleanup.rb +7 -6
- data/lib/asciidoctor/iso/isodoc.rng +13 -1
- data/lib/asciidoctor/iso/isostandard-amd.rng +1 -1
- data/lib/asciidoctor/iso/isostandard.rng +3 -1
- data/lib/asciidoctor/iso/reqt.rng +1 -1
- data/lib/isodoc/iso/i18n.rb +10 -9
- data/lib/isodoc/iso/iso.amendment.xsl +27 -9
- data/lib/isodoc/iso/iso.international-standard.xsl +27 -9
- data/lib/isodoc/iso/sections.rb +2 -0
- data/lib/isodoc/iso/word_cleanup.rb +94 -0
- data/lib/isodoc/iso/word_convert.rb +12 -89
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/asciidoctor/base_spec.rb +543 -209
- data/spec/asciidoctor/blocks_spec.rb +0 -39
- data/spec/asciidoctor/refs_spec.rb +87 -4
- data/spec/isodoc/i18n_spec.rb +25 -11
- data/spec/isodoc/table_spec.rb +6 -8
- data/spec/vcr_cassettes/docrels.yml +783 -0
- data/spec/vcr_cassettes/sortrefs.yml +599 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24633dfc813afd54d496d125ac4cc7ffdb4e11b9a2958437033c0cfe57ea7873
|
4
|
+
data.tar.gz: b3995300f75025e162a31b28aa2aea9ebfdb3fd791928d622ee9fea264948a63
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d495eb4e4758f85053f888027b8776048ed4e1c2f1c0ee5f87a5dda4214fcfe85d2d490947633a8889cf9aa8db48dcd42eb319e1ae63abb5cf3901fec9cb789
|
7
|
+
data.tar.gz: c4472ab5da3868ccf1331e6ff1879218a5e5e515128f3733d1ef32dcc8b4fec5b5855d5712c03ac950c67b4a7e0ccdf452da1b4fba9c6f61907b9ed40b0867e3
|
@@ -0,0 +1,41 @@
|
|
1
|
+
name: ubuntu
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches:
|
6
|
+
- main
|
7
|
+
pull_request:
|
8
|
+
|
9
|
+
jobs:
|
10
|
+
build:
|
11
|
+
runs-on: ubuntu-latest
|
12
|
+
steps:
|
13
|
+
- uses: actions/checkout@v2
|
14
|
+
|
15
|
+
- name: Setup prerequisites
|
16
|
+
run: |
|
17
|
+
sudo apt-get update
|
18
|
+
sudo apt-get -y install xsltproc
|
19
|
+
|
20
|
+
- run: make xsd_doc
|
21
|
+
env:
|
22
|
+
GITHUB_USERNAME: ${{ github.actor }}
|
23
|
+
GITHUB_TOKEN: ${{ github.token }}
|
24
|
+
|
25
|
+
- uses: actions/upload-artifact@master
|
26
|
+
with:
|
27
|
+
name: xsd_doc
|
28
|
+
path: xsd_doc
|
29
|
+
|
30
|
+
deploy-gh-pages:
|
31
|
+
if: github.ref == 'refs/heads/main'
|
32
|
+
runs-on: ubuntu-latest
|
33
|
+
needs: build
|
34
|
+
steps:
|
35
|
+
- uses: actions/checkout@master
|
36
|
+
|
37
|
+
- uses: actions/download-artifact@master
|
38
|
+
with:
|
39
|
+
name: xsd_doc-ubuntu
|
40
|
+
path: xsd_doc
|
41
|
+
|
data/Gemfile
CHANGED
@@ -4,11 +4,10 @@ Encoding.default_internal = Encoding::UTF_8
|
|
4
4
|
source "https://rubygems.org"
|
5
5
|
git_source(:github) { |repo| "https://github.com/#{repo}" }
|
6
6
|
|
7
|
-
#gem "asciimath", git: "https://github.com/asciidoctor/asciimath"
|
7
|
+
# gem "asciimath", git: "https://github.com/asciidoctor/asciimath"
|
8
8
|
|
9
9
|
gemspec
|
10
10
|
|
11
|
-
if File.exist?
|
12
|
-
eval File.read(
|
11
|
+
if File.exist? "Gemfile.devel"
|
12
|
+
eval File.read("Gemfile.devel"), nil, "Gemfile.devel" # rubocop:disable Security/Eval
|
13
13
|
end
|
14
|
-
|
data/Makefile
CHANGED
@@ -8,6 +8,15 @@ SHELL := /bin/bash
|
|
8
8
|
# Ensure the xml2rfc cache directory exists locally
|
9
9
|
IGNORE := $(shell mkdir -p $(HOME)/.cache/xml2rfc)
|
10
10
|
|
11
|
+
TRANG_RELEASE := https://github.com/relaxng/jing-trang/releases/download/V20181222/trang-20181222.zip
|
12
|
+
TOOLS_DIR := ${CURDIR}/tools
|
13
|
+
TRANG_JAR := $(TOOLS_DIR)/trang.jar
|
14
|
+
XSDVIPATH := $(TOOLS_DIR)/xsdvi.jar
|
15
|
+
XSLT_FILE := $(TOOLS_DIR)/xs3pxsl
|
16
|
+
XSLT_FILE_MERGE := $(TOOLS_DIR)/xsdmerge.xsl
|
17
|
+
RNG_FILE_SRC := lib/asciidoctor/iso/isostandard.rng
|
18
|
+
XSD_FILE_DEST := ${CURDIR}/xsd_doc/isostandard.xsd
|
19
|
+
|
11
20
|
all: $(TXT) $(HTML) $(XML) $(NITS)
|
12
21
|
|
13
22
|
clean:
|
@@ -37,3 +46,38 @@ clean:
|
|
37
46
|
open:
|
38
47
|
open *.txt
|
39
48
|
|
49
|
+
|
50
|
+
$(XSDVIPATH):
|
51
|
+
mkdir -p $(dir $@); \
|
52
|
+
curl -sSL https://sourceforge.net/projects/xsdvi/files/latest/download > $(dir $@)/xsdvi.zip; \
|
53
|
+
unzip -p $(dir $@)/xsdvi.zip dist/lib/xercesImpl.jar > $(dir $@)/xercesImpl.jar; \
|
54
|
+
curl -sSL https://github.com/metanorma/xsdvi/releases/download/v1.0/xsdvi-1.0.jar > $@
|
55
|
+
|
56
|
+
$(XSLT_FILE):
|
57
|
+
mkdir -p $(dir $@)
|
58
|
+
curl -sSL https://raw.githubusercontent.com/metanorma/xs3p/main/xsl/xs3p.xsl > $@
|
59
|
+
|
60
|
+
$(XSLT_FILE_MERGE):
|
61
|
+
mkdir -p $(dir $@)
|
62
|
+
curl -sSL https://raw.githubusercontent.com/metanorma/xs3p/main/xsl/xsdmerge.xsl > $@
|
63
|
+
|
64
|
+
$(TRANG_JAR):
|
65
|
+
mkdir -p $(dir $@); \
|
66
|
+
cd $(dir $@); \
|
67
|
+
curl -sSL $(TRANG_RELEASE) > trang.zip; \
|
68
|
+
unzip -p trang.zip trang-20181222/trang.jar > $@
|
69
|
+
|
70
|
+
|
71
|
+
$(XSD_FILE_DEST): $(TRANG_JAR)
|
72
|
+
mkdir -p $(dir $@); \
|
73
|
+
java -jar $< $(RNG_FILE_SRC) $@
|
74
|
+
|
75
|
+
xsd_doc: $(XSD_FILE_DEST) $(XSDVIPATH) $(XSLT_FILE) $(XSLT_FILE_MERGE)
|
76
|
+
mkdir -p $@/diagrams; \
|
77
|
+
cd $@; \
|
78
|
+
java -jar $(XSDVIPATH) $< -rootNodeName all -oneNodeOnly -outputPath diagrams; \
|
79
|
+
xsltproc --nonet --stringparam rootxsd iso-standard --output $@.tmp $(XSLT_FILE_MERGE) $<;\
|
80
|
+
xsltproc --nonet --param title "'Metanorma XML Schema Documentation, ISO Standard'" \
|
81
|
+
--output index.html $(XSLT_FILE) $@.tmp;\
|
82
|
+
rm $@.tmp
|
83
|
+
|
data/Rakefile
CHANGED
data/bin/rspec
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
3
|
<include href="biblio.rng">
|
4
4
|
<start>
|
5
5
|
<ref name="document"/>
|
@@ -19,6 +19,7 @@
|
|
19
19
|
</define>
|
20
20
|
<define name="bibdata">
|
21
21
|
<element name="bibdata">
|
22
|
+
<a:documentation>Document attributes</a:documentation>
|
22
23
|
<ref name="BibData"/>
|
23
24
|
</element>
|
24
25
|
</define>
|
@@ -104,10 +105,12 @@
|
|
104
105
|
</define>
|
105
106
|
<define name="paragraph">
|
106
107
|
<element name="p">
|
108
|
+
<a:documentation>Paragraph</a:documentation>
|
107
109
|
<ref name="ParagraphType"/>
|
108
110
|
</element>
|
109
111
|
</define>
|
110
112
|
<define name="Alignments">
|
113
|
+
<a:documentation>Text alignment</a:documentation>
|
111
114
|
<choice>
|
112
115
|
<value>left</value>
|
113
116
|
<value>right</value>
|
@@ -215,6 +218,7 @@
|
|
215
218
|
</define>
|
216
219
|
<define name="quote">
|
217
220
|
<element name="quote">
|
221
|
+
<a:documentation>Block quotes</a:documentation>
|
218
222
|
<attribute name="id">
|
219
223
|
<data type="ID"/>
|
220
224
|
</attribute>
|
@@ -249,6 +253,7 @@
|
|
249
253
|
</define>
|
250
254
|
<define name="sourcecode">
|
251
255
|
<element name="sourcecode">
|
256
|
+
<a:documentation>Source code, a pre-formatted source snippet to be rendered in monospace font, and with spaces preserved</a:documentation>
|
252
257
|
<attribute name="id">
|
253
258
|
<data type="ID"/>
|
254
259
|
</attribute>
|
@@ -1047,6 +1052,7 @@
|
|
1047
1052
|
</define>
|
1048
1053
|
<define name="ul">
|
1049
1054
|
<element name="ul">
|
1055
|
+
<a:documentation>Unordered list</a:documentation>
|
1050
1056
|
<attribute name="id">
|
1051
1057
|
<data type="ID"/>
|
1052
1058
|
</attribute>
|
@@ -1060,6 +1066,7 @@
|
|
1060
1066
|
</define>
|
1061
1067
|
<define name="li">
|
1062
1068
|
<element name="li">
|
1069
|
+
<a:documentation>List item</a:documentation>
|
1063
1070
|
<optional>
|
1064
1071
|
<attribute name="id">
|
1065
1072
|
<data type="ID"/>
|
@@ -1097,6 +1104,7 @@
|
|
1097
1104
|
</define>
|
1098
1105
|
<define name="dl">
|
1099
1106
|
<element name="dl">
|
1107
|
+
<a:documentation>Definition list</a:documentation>
|
1100
1108
|
<attribute name="id">
|
1101
1109
|
<data type="ID"/>
|
1102
1110
|
</attribute>
|
@@ -1111,6 +1119,7 @@
|
|
1111
1119
|
</define>
|
1112
1120
|
<define name="dt">
|
1113
1121
|
<element name="dt">
|
1122
|
+
<a:documentation>Definition term</a:documentation>
|
1114
1123
|
<zeroOrMore>
|
1115
1124
|
<ref name="TextElement"/>
|
1116
1125
|
</zeroOrMore>
|
@@ -1118,6 +1127,7 @@
|
|
1118
1127
|
</define>
|
1119
1128
|
<define name="dd">
|
1120
1129
|
<element name="dd">
|
1130
|
+
<a:documentation>Definition description</a:documentation>
|
1121
1131
|
<zeroOrMore>
|
1122
1132
|
<ref name="paragraph-with-footnote"/>
|
1123
1133
|
</zeroOrMore>
|
@@ -76,12 +76,14 @@
|
|
76
76
|
<define name="script">
|
77
77
|
<a:documentation>ISO-639</a:documentation>
|
78
78
|
<element name="script">
|
79
|
+
<a:documentation>ISO-639</a:documentation>
|
79
80
|
<text/>
|
80
81
|
</element>
|
81
82
|
</define>
|
82
83
|
<define name="edition">
|
83
84
|
<a:documentation>ISO-15924: Latn</a:documentation>
|
84
85
|
<element name="edition">
|
86
|
+
<a:documentation>ISO-15924: Latn</a:documentation>
|
85
87
|
<optional>
|
86
88
|
<attribute name="number"/>
|
87
89
|
</optional>
|
@@ -8,7 +8,7 @@ module Asciidoctor
|
|
8
8
|
module ISO
|
9
9
|
class Converter < Standoc::Converter
|
10
10
|
PRE_NORMREF_FOOTNOTES = "//preface//fn | "\
|
11
|
-
|
11
|
+
"//clause[@type = 'scope']//fn".freeze
|
12
12
|
|
13
13
|
NORMREF_FOOTNOTES =
|
14
14
|
"//references[@normative = 'true']//fn".freeze
|
@@ -41,7 +41,7 @@ module Asciidoctor
|
|
41
41
|
xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']"\
|
42
42
|
"/organization").each do |x|
|
43
43
|
x1 = x.at("abbreviation")&.text || x.at("name")&.text
|
44
|
-
x1 == "ISO" and prefix.unshift("ISO") or prefix << x1
|
44
|
+
(x1 == "ISO" and prefix.unshift("ISO")) or prefix << x1
|
45
45
|
end
|
46
46
|
prefix
|
47
47
|
end
|
@@ -64,14 +64,15 @@ module Asciidoctor
|
|
64
64
|
super
|
65
65
|
end
|
66
66
|
|
67
|
-
TERM_CLAUSE =
|
67
|
+
TERM_CLAUSE =
|
68
|
+
"//sections//terms | "\
|
68
69
|
"//sections//clause[descendant::terms][not(descendant::definitions)]"
|
69
|
-
|
70
|
+
.freeze
|
70
71
|
|
71
72
|
PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
|
72
73
|
|
73
74
|
OTHERIDS = "@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or "\
|
74
|
-
|
75
|
+
"@type = 'ISBN'".freeze
|
75
76
|
|
76
77
|
def pub_class(bib)
|
77
78
|
return 1 if bib.at("#{PUBLISHER}[abbreviation = 'ISO']")
|
@@ -111,7 +112,7 @@ module Asciidoctor
|
|
111
112
|
bib&.at("./title")&.text || bib&.at("./formattedref")&.text
|
112
113
|
"#{pubclass} :: #{type} :: "\
|
113
114
|
"#{num.nil? ? abbrid : sprintf('%09d', num.to_i)} :: "\
|
114
|
-
"#{partid} :: #{id&.text} :: #{title}"
|
115
|
+
"#{sprintf('%09d', partid.to_i)} :: #{id&.text} :: #{title}"
|
115
116
|
end
|
116
117
|
|
117
118
|
def sections_cleanup(xml)
|
@@ -194,6 +194,7 @@
|
|
194
194
|
</optional>
|
195
195
|
<optional>
|
196
196
|
<attribute name="type">
|
197
|
+
<a:documentation>allow specifying labels of an ordered list</a:documentation>
|
197
198
|
<choice>
|
198
199
|
<value>roman</value>
|
199
200
|
<value>alphabet</value>
|
@@ -2063,7 +2064,12 @@
|
|
2063
2064
|
<define name="verbaldefinition">
|
2064
2065
|
<element name="verbaldefinition">
|
2065
2066
|
<oneOrMore>
|
2066
|
-
<
|
2067
|
+
<choice>
|
2068
|
+
<ref name="paragraph"/>
|
2069
|
+
<ref name="dl"/>
|
2070
|
+
<ref name="ol"/>
|
2071
|
+
<ref name="ul"/>
|
2072
|
+
</choice>
|
2067
2073
|
</oneOrMore>
|
2068
2074
|
<zeroOrMore>
|
2069
2075
|
<ref name="termsource"/>
|
@@ -2163,6 +2169,12 @@
|
|
2163
2169
|
<value>modified</value>
|
2164
2170
|
</choice>
|
2165
2171
|
</attribute>
|
2172
|
+
<attribute name="type">
|
2173
|
+
<choice>
|
2174
|
+
<value>authoritative</value>
|
2175
|
+
<value>lineage</value>
|
2176
|
+
</choice>
|
2177
|
+
</attribute>
|
2166
2178
|
<ref name="origin"/>
|
2167
2179
|
<optional>
|
2168
2180
|
<ref name="modification"/>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
+
<grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
3
|
<!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
|
4
4
|
<include href="isostandard.rng">
|
5
5
|
<start>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
+
<grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
3
|
<!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
|
4
4
|
<include href="isodoc.rng">
|
5
5
|
<start>
|
@@ -359,6 +359,7 @@
|
|
359
359
|
-->
|
360
360
|
<define name="iso-standard">
|
361
361
|
<element name="iso-standard">
|
362
|
+
<a:documentation>Root element for xml document</a:documentation>
|
362
363
|
<attribute name="version"/>
|
363
364
|
<attribute name="type">
|
364
365
|
<choice>
|
@@ -469,6 +470,7 @@
|
|
469
470
|
</define>
|
470
471
|
<define name="annex-appendix">
|
471
472
|
<element name="appendix">
|
473
|
+
<a:documentation>Appendix</a:documentation>
|
472
474
|
<ref name="Clause-Section"/>
|
473
475
|
</element>
|
474
476
|
</define>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
2
|
+
<grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
3
3
|
<!--
|
4
4
|
Presupposes isodoc.rnc, is included in it
|
5
5
|
include "isodoc.rnc" { }
|
data/lib/isodoc/iso/i18n.rb
CHANGED
@@ -1,16 +1,17 @@
|
|
1
1
|
module IsoDoc
|
2
2
|
module Iso
|
3
3
|
class I18n < IsoDoc::I18n
|
4
|
+
def load_file(fname)
|
5
|
+
YAML.load_file(File.join(File.dirname(__FILE__), fname))
|
6
|
+
end
|
7
|
+
|
4
8
|
def load_yaml1(lang, script)
|
5
|
-
y = if lang == "en"
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
else
|
12
|
-
YAML.load_file(File.join(File.dirname(__FILE__), "i18n-en.yaml"))
|
13
|
-
end
|
9
|
+
y = if lang == "en" then load_file("i18n-en.yaml")
|
10
|
+
elsif lang == "fr" then load_file("i18n-fr.yaml")
|
11
|
+
elsif lang == "zh" && script == "Hans"
|
12
|
+
load_file("i18n-zh-Hans.yaml")
|
13
|
+
else load_file("i18n-en.yaml")
|
14
|
+
end
|
14
15
|
super.merge(y)
|
15
16
|
end
|
16
17
|
end
|
@@ -1798,7 +1798,7 @@
|
|
1798
1798
|
</xsl:variable>
|
1799
1799
|
<fo:block line-height="1.1" role="H{$levelTerm}">
|
1800
1800
|
<fo:block font-weight="bold" keep-with-next="always">
|
1801
|
-
<xsl:apply-templates select="ancestor::iso:term/iso:name" mode="presentation"/>
|
1801
|
+
<xsl:apply-templates select="ancestor::iso:term[1]/iso:name" mode="presentation"/>
|
1802
1802
|
</fo:block>
|
1803
1803
|
<fo:block font-weight="bold" keep-with-next="always">
|
1804
1804
|
<xsl:apply-templates/>
|
@@ -4295,6 +4295,7 @@
|
|
4295
4295
|
<fo:table-cell>
|
4296
4296
|
|
4297
4297
|
<fo:block margin-top="6pt">
|
4298
|
+
<xsl:copy-of select="@id"/>
|
4298
4299
|
|
4299
4300
|
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
4300
4301
|
|
@@ -5141,14 +5142,20 @@
|
|
5141
5142
|
</xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
|
5142
5143
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5143
5144
|
</xsl:template><xsl:template match="*[local-name() = 'terms']">
|
5145
|
+
<!-- <xsl:message>'terms' <xsl:number/> processing...</xsl:message> -->
|
5144
5146
|
<fo:block id="{@id}">
|
5145
5147
|
<xsl:apply-templates/>
|
5146
5148
|
</fo:block>
|
5147
5149
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
5150
|
+
<!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
|
5148
5151
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
5149
5152
|
|
5150
5153
|
|
5151
|
-
|
5154
|
+
<xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
|
5155
|
+
|
5156
|
+
<xsl:attribute name="space-before">12pt</xsl:attribute>
|
5157
|
+
|
5158
|
+
</xsl:if>
|
5152
5159
|
<xsl:apply-templates/>
|
5153
5160
|
</fo:block>
|
5154
5161
|
</xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
|
@@ -6122,7 +6129,8 @@
|
|
6122
6129
|
</fo:block>
|
6123
6130
|
</fo:table-cell>
|
6124
6131
|
</xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
|
6125
|
-
<fo:block font-size="11pt"
|
6132
|
+
<fo:block font-size="11pt">
|
6133
|
+
|
6126
6134
|
<xsl:apply-templates/>
|
6127
6135
|
</fo:block>
|
6128
6136
|
</xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
|
@@ -6243,13 +6251,15 @@
|
|
6243
6251
|
<!-- <xsl:apply-templates /> -->
|
6244
6252
|
<xsl:copy-of select="$termsource_text"/>
|
6245
6253
|
</xsl:when>
|
6246
|
-
<xsl:otherwise>
|
6254
|
+
<xsl:otherwise>
|
6255
|
+
|
6247
6256
|
|
6248
6257
|
<xsl:text>[</xsl:text>
|
6249
6258
|
|
6250
6259
|
<!-- <xsl:apply-templates /> -->
|
6251
6260
|
<xsl:copy-of select="$termsource_text"/>
|
6252
6261
|
|
6262
|
+
|
6253
6263
|
<xsl:text>]</xsl:text>
|
6254
6264
|
|
6255
6265
|
</xsl:otherwise>
|
@@ -6331,12 +6341,20 @@
|
|
6331
6341
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
6332
6342
|
<xsl:text>— </xsl:text>
|
6333
6343
|
<xsl:apply-templates/>
|
6334
|
-
</xsl:template><xsl:
|
6344
|
+
</xsl:template><xsl:variable name="bibitem_hidden_">
|
6345
|
+
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
6346
|
+
<xsl:copy-of select="."/>
|
6347
|
+
</xsl:for-each>
|
6348
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
|
6349
|
+
<xsl:copy-of select="."/>
|
6350
|
+
</xsl:for-each>
|
6351
|
+
</xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
6335
6352
|
|
6336
6353
|
<xsl:variable name="bibitemid">
|
6337
6354
|
<xsl:choose>
|
6338
|
-
<xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"
|
6339
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"
|
6355
|
+
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
6356
|
+
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
6357
|
+
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
6340
6358
|
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
6341
6359
|
</xsl:choose>
|
6342
6360
|
</xsl:variable>
|
@@ -6425,10 +6443,10 @@
|
|
6425
6443
|
</xsl:choose>
|
6426
6444
|
</xsl:variable>
|
6427
6445
|
|
6428
|
-
<xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
|
6446
|
+
<!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
|
6429
6447
|
|
6430
6448
|
<xsl:choose>
|
6431
|
-
<xsl:when test="$
|
6449
|
+
<xsl:when test="$lang = 'zh'">
|
6432
6450
|
<fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
|
6433
6451
|
</xsl:when>
|
6434
6452
|
<xsl:when test="../../@inline-header = 'true'">
|
@@ -1798,7 +1798,7 @@
|
|
1798
1798
|
</xsl:variable>
|
1799
1799
|
<fo:block line-height="1.1" role="H{$levelTerm}">
|
1800
1800
|
<fo:block font-weight="bold" keep-with-next="always">
|
1801
|
-
<xsl:apply-templates select="ancestor::iso:term/iso:name" mode="presentation"/>
|
1801
|
+
<xsl:apply-templates select="ancestor::iso:term[1]/iso:name" mode="presentation"/>
|
1802
1802
|
</fo:block>
|
1803
1803
|
<fo:block font-weight="bold" keep-with-next="always">
|
1804
1804
|
<xsl:apply-templates/>
|
@@ -4295,6 +4295,7 @@
|
|
4295
4295
|
<fo:table-cell>
|
4296
4296
|
|
4297
4297
|
<fo:block margin-top="6pt">
|
4298
|
+
<xsl:copy-of select="@id"/>
|
4298
4299
|
|
4299
4300
|
<xsl:attribute name="margin-top">0pt</xsl:attribute>
|
4300
4301
|
|
@@ -5141,14 +5142,20 @@
|
|
5141
5142
|
</xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'p']">
|
5142
5143
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5143
5144
|
</xsl:template><xsl:template match="*[local-name() = 'terms']">
|
5145
|
+
<!-- <xsl:message>'terms' <xsl:number/> processing...</xsl:message> -->
|
5144
5146
|
<fo:block id="{@id}">
|
5145
5147
|
<xsl:apply-templates/>
|
5146
5148
|
</fo:block>
|
5147
5149
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
5150
|
+
<!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
|
5148
5151
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
5149
5152
|
|
5150
5153
|
|
5151
|
-
|
5154
|
+
<xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
|
5155
|
+
|
5156
|
+
<xsl:attribute name="space-before">12pt</xsl:attribute>
|
5157
|
+
|
5158
|
+
</xsl:if>
|
5152
5159
|
<xsl:apply-templates/>
|
5153
5160
|
</fo:block>
|
5154
5161
|
</xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
|
@@ -6122,7 +6129,8 @@
|
|
6122
6129
|
</fo:block>
|
6123
6130
|
</fo:table-cell>
|
6124
6131
|
</xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
|
6125
|
-
<fo:block font-size="11pt"
|
6132
|
+
<fo:block font-size="11pt">
|
6133
|
+
|
6126
6134
|
<xsl:apply-templates/>
|
6127
6135
|
</fo:block>
|
6128
6136
|
</xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
|
@@ -6243,13 +6251,15 @@
|
|
6243
6251
|
<!-- <xsl:apply-templates /> -->
|
6244
6252
|
<xsl:copy-of select="$termsource_text"/>
|
6245
6253
|
</xsl:when>
|
6246
|
-
<xsl:otherwise>
|
6254
|
+
<xsl:otherwise>
|
6255
|
+
|
6247
6256
|
|
6248
6257
|
<xsl:text>[</xsl:text>
|
6249
6258
|
|
6250
6259
|
<!-- <xsl:apply-templates /> -->
|
6251
6260
|
<xsl:copy-of select="$termsource_text"/>
|
6252
6261
|
|
6262
|
+
|
6253
6263
|
<xsl:text>]</xsl:text>
|
6254
6264
|
|
6255
6265
|
</xsl:otherwise>
|
@@ -6331,12 +6341,20 @@
|
|
6331
6341
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
6332
6342
|
<xsl:text>— </xsl:text>
|
6333
6343
|
<xsl:apply-templates/>
|
6334
|
-
</xsl:template><xsl:
|
6344
|
+
</xsl:template><xsl:variable name="bibitem_hidden_">
|
6345
|
+
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
6346
|
+
<xsl:copy-of select="."/>
|
6347
|
+
</xsl:for-each>
|
6348
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
|
6349
|
+
<xsl:copy-of select="."/>
|
6350
|
+
</xsl:for-each>
|
6351
|
+
</xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
6335
6352
|
|
6336
6353
|
<xsl:variable name="bibitemid">
|
6337
6354
|
<xsl:choose>
|
6338
|
-
<xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"
|
6339
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"
|
6355
|
+
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
6356
|
+
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
6357
|
+
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
6340
6358
|
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
6341
6359
|
</xsl:choose>
|
6342
6360
|
</xsl:variable>
|
@@ -6425,10 +6443,10 @@
|
|
6425
6443
|
</xsl:choose>
|
6426
6444
|
</xsl:variable>
|
6427
6445
|
|
6428
|
-
<xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
|
6446
|
+
<!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
|
6429
6447
|
|
6430
6448
|
<xsl:choose>
|
6431
|
-
<xsl:when test="$
|
6449
|
+
<xsl:when test="$lang = 'zh'">
|
6432
6450
|
<fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
|
6433
6451
|
</xsl:when>
|
6434
6452
|
<xsl:when test="../../@inline-header = 'true'">
|
data/lib/isodoc/iso/sections.rb
CHANGED
@@ -49,12 +49,14 @@ module IsoDoc
|
|
49
49
|
|
50
50
|
def foreword(isoxml, out)
|
51
51
|
f = isoxml.at(ns("//foreword")) || return
|
52
|
+
@foreword = true
|
52
53
|
page_break(out)
|
53
54
|
out.div **attr_code(id: f["id"]) do |s|
|
54
55
|
clause_name(nil, f.at(ns("./title")) || @i18n.foreword, s,
|
55
56
|
{ class: "ForewordTitle" })
|
56
57
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
57
58
|
end
|
59
|
+
@foreword = false
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|