metanorma-iso 1.9.6 → 1.10.3
Sign up to get free protection for your applications and to get access to all the features.
- 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/cleanup.rb +7 -6
- data/lib/asciidoctor/iso/front.rb +2 -2
- data/lib/asciidoctor/iso/isodoc.rng +254 -27
- data/lib/asciidoctor/iso/section.rb +1 -1
- data/lib/asciidoctor/iso/validate.rb +7 -7
- data/lib/asciidoctor/iso/validate_section.rb +1 -1
- data/lib/isodoc/iso/html/isodoc.css +0 -1
- data/lib/isodoc/iso/html/isodoc.scss +0 -1
- data/lib/isodoc/iso/html/style-human.css +0 -1
- data/lib/isodoc/iso/html/style-human.scss +0 -1
- data/lib/isodoc/iso/html/style-iso.css +0 -1
- data/lib/isodoc/iso/html/style-iso.scss +0 -1
- data/lib/isodoc/iso/i18n.rb +10 -9
- data/lib/isodoc/iso/iso.amendment.xsl +57 -17
- data/lib/isodoc/iso/iso.international-standard.xsl +57 -17
- data/lib/isodoc/iso/isosts_convert.rb +6 -2
- data/lib/isodoc/iso/presentation_xml_convert.rb +19 -9
- data/lib/isodoc/iso/sections.rb +2 -0
- data/lib/isodoc/iso/sts_convert.rb +5 -2
- data/lib/isodoc/iso/word_cleanup.rb +94 -0
- data/lib/isodoc/iso/word_convert.rb +12 -89
- data/lib/metanorma/iso/processor.rb +2 -2
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +4 -5
- data/spec/asciidoctor/base_spec.rb +543 -209
- data/spec/asciidoctor/blocks_spec.rb +22 -47
- data/spec/asciidoctor/cleanup_spec.rb +37 -20
- data/spec/asciidoctor/inline_spec.rb +10 -2
- data/spec/asciidoctor/refs_spec.rb +174 -88
- data/spec/asciidoctor/section_spec.rb +3 -3
- data/spec/isodoc/i18n_spec.rb +36 -22
- data/spec/isodoc/inline_spec.rb +6 -6
- data/spec/isodoc/section_spec.rb +4 -4
- data/spec/isodoc/table_spec.rb +6 -8
- data/spec/isodoc/terms_spec.rb +25 -25
- data/spec/isodoc/xref_spec.rb +1397 -1376
- data/spec/metanorma/processor_spec.rb +114 -15
- data/spec/spec_helper.rb +2 -1
- data/spec/vcr_cassettes/docrels.yml +427 -37
- data/spec/vcr_cassettes/sortrefs.yml +599 -0
- metadata +13 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 496766841b7e48e3e2f8f879f5e9c485b0874212ea6316a926558ba434f1636a
|
4
|
+
data.tar.gz: 24bc39c4fdf29b8dfeaba19a972d8a2d2610d940b6b9afb93da58975c8bd6ac3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a780fb001362017bf69e8b64ca78eb9c877d20c7bed50670d69fbf9f7a71c40756725e272e3baa0cc9d026c4809cbb222a466f0f9b77b30fe35afbdc9038d60
|
7
|
+
data.tar.gz: 9db3e3c657f3d5525e2407cc27c498bffbda194dcf06199e49def7a540af8a70755e1f6ff2b4465af09ea9440ffae9a106a965ba2e6696363774faf3bbab7004
|
@@ -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
@@ -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)
|
@@ -17,7 +17,7 @@
|
|
17
17
|
these elements; we just want one namespace for any child grammars
|
18
18
|
of this.
|
19
19
|
-->
|
20
|
-
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
|
20
|
+
<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">
|
21
21
|
<include href="reqt.rng"/>
|
22
22
|
<!-- include "biblio.rnc" { } -->
|
23
23
|
<include href="basicdoc.rng">
|
@@ -58,7 +58,7 @@
|
|
58
58
|
<attribute name="alt"/>
|
59
59
|
</optional>
|
60
60
|
<optional>
|
61
|
-
<attribute name="
|
61
|
+
<attribute name="update-type">
|
62
62
|
<data type="boolean"/>
|
63
63
|
</attribute>
|
64
64
|
</optional>
|
@@ -1803,17 +1803,17 @@
|
|
1803
1803
|
<ref name="admitted"/>
|
1804
1804
|
</zeroOrMore>
|
1805
1805
|
<zeroOrMore>
|
1806
|
-
<ref name="
|
1806
|
+
<ref name="deprecates"/>
|
1807
1807
|
</zeroOrMore>
|
1808
1808
|
<zeroOrMore>
|
1809
|
-
<ref name="
|
1809
|
+
<ref name="related"/>
|
1810
1810
|
</zeroOrMore>
|
1811
1811
|
<optional>
|
1812
1812
|
<ref name="termdomain"/>
|
1813
1813
|
</optional>
|
1814
|
-
<
|
1815
|
-
<ref name="
|
1816
|
-
</
|
1814
|
+
<optional>
|
1815
|
+
<ref name="termsubject"/>
|
1816
|
+
</optional>
|
1817
1817
|
<oneOrMore>
|
1818
1818
|
<ref name="termdefinition"/>
|
1819
1819
|
</oneOrMore>
|
@@ -1830,41 +1830,232 @@
|
|
1830
1830
|
</define>
|
1831
1831
|
<define name="preferred">
|
1832
1832
|
<element name="preferred">
|
1833
|
-
<
|
1834
|
-
<ref name="TextElement"/>
|
1835
|
-
</oneOrMore>
|
1833
|
+
<ref name="Designation"/>
|
1836
1834
|
</element>
|
1837
1835
|
</define>
|
1838
1836
|
<define name="admitted">
|
1839
1837
|
<element name="admitted">
|
1840
|
-
<
|
1841
|
-
<ref name="TextElement"/>
|
1842
|
-
</oneOrMore>
|
1838
|
+
<ref name="Designation"/>
|
1843
1839
|
</element>
|
1844
1840
|
</define>
|
1845
1841
|
<define name="related">
|
1846
1842
|
<element name="related">
|
1843
|
+
<attribute name="type">
|
1844
|
+
<ref name="RelatedTermType"/>
|
1845
|
+
</attribute>
|
1846
|
+
<element name="preferred">
|
1847
|
+
<ref name="Designation"/>
|
1848
|
+
</element>
|
1849
|
+
<choice>
|
1850
|
+
<ref name="eref"/>
|
1851
|
+
<ref name="xref"/>
|
1852
|
+
<ref name="termref"/>
|
1853
|
+
</choice>
|
1854
|
+
</element>
|
1855
|
+
</define>
|
1856
|
+
<define name="RelatedTermType">
|
1857
|
+
<choice>
|
1858
|
+
<value>deprecates</value>
|
1859
|
+
<value>supersedes</value>
|
1860
|
+
<value>narrower</value>
|
1861
|
+
<value>broader</value>
|
1862
|
+
<value>equivalent</value>
|
1863
|
+
<value>compare</value>
|
1864
|
+
<value>contrast</value>
|
1865
|
+
<value>see</value>
|
1866
|
+
</choice>
|
1867
|
+
</define>
|
1868
|
+
<define name="deprecates">
|
1869
|
+
<element name="deprecates">
|
1870
|
+
<ref name="Designation"/>
|
1871
|
+
</element>
|
1872
|
+
</define>
|
1873
|
+
<define name="Designation">
|
1874
|
+
<optional>
|
1875
|
+
<attribute name="absent">
|
1876
|
+
<data type="boolean"/>
|
1877
|
+
</attribute>
|
1878
|
+
</optional>
|
1879
|
+
<optional>
|
1880
|
+
<attribute name="geographic-area"/>
|
1881
|
+
</optional>
|
1882
|
+
<choice>
|
1883
|
+
<ref name="expression_designation"/>
|
1884
|
+
<ref name="letter_symbol_designation"/>
|
1885
|
+
<ref name="graphical_symbol_designation"/>
|
1886
|
+
</choice>
|
1887
|
+
<optional>
|
1888
|
+
<ref name="fieldofapplication"/>
|
1889
|
+
</optional>
|
1890
|
+
<optional>
|
1891
|
+
<ref name="usageinfo"/>
|
1892
|
+
</optional>
|
1893
|
+
<zeroOrMore>
|
1894
|
+
<ref name="termsource"/>
|
1895
|
+
</zeroOrMore>
|
1896
|
+
</define>
|
1897
|
+
<define name="fieldofapplication">
|
1898
|
+
<element name="field-of-application">
|
1899
|
+
<oneOrMore>
|
1900
|
+
<ref name="PureTextElement"/>
|
1901
|
+
</oneOrMore>
|
1902
|
+
</element>
|
1903
|
+
</define>
|
1904
|
+
<define name="usageinfo">
|
1905
|
+
<element name="usage-info">
|
1906
|
+
<oneOrMore>
|
1907
|
+
<ref name="PureTextElement"/>
|
1908
|
+
</oneOrMore>
|
1909
|
+
</element>
|
1910
|
+
</define>
|
1911
|
+
<define name="letter_symbol_designation">
|
1912
|
+
<element name="letter-symbol">
|
1847
1913
|
<optional>
|
1848
|
-
<attribute name="
|
1914
|
+
<attribute name="isInternational">
|
1915
|
+
<data type="boolean"/>
|
1916
|
+
</attribute>
|
1917
|
+
</optional>
|
1918
|
+
<element name="name">
|
1919
|
+
<oneOrMore>
|
1849
1920
|
<choice>
|
1850
|
-
<
|
1851
|
-
<
|
1852
|
-
<value>see</value>
|
1921
|
+
<ref name="PureTextElement"/>
|
1922
|
+
<ref name="stem"/>
|
1853
1923
|
</choice>
|
1924
|
+
</oneOrMore>
|
1925
|
+
</element>
|
1926
|
+
</element>
|
1927
|
+
</define>
|
1928
|
+
<define name="graphical_symbol_designation">
|
1929
|
+
<element name="graphical-symbol">
|
1930
|
+
<optional>
|
1931
|
+
<attribute name="isInternational">
|
1932
|
+
<data type="boolean"/>
|
1854
1933
|
</attribute>
|
1855
1934
|
</optional>
|
1856
|
-
<
|
1857
|
-
<ref name="TextElement"/>
|
1858
|
-
</oneOrMore>
|
1935
|
+
<ref name="figure"/>
|
1859
1936
|
</element>
|
1860
1937
|
</define>
|
1861
|
-
<define name="
|
1862
|
-
<element name="
|
1863
|
-
<
|
1864
|
-
<
|
1865
|
-
|
1938
|
+
<define name="expression_designation">
|
1939
|
+
<element name="expression">
|
1940
|
+
<optional>
|
1941
|
+
<attribute name="language">
|
1942
|
+
<a:documentation>ISO-639</a:documentation>
|
1943
|
+
</attribute>
|
1944
|
+
</optional>
|
1945
|
+
<optional>
|
1946
|
+
<attribute name="script">
|
1947
|
+
<a:documentation>ISO-15924</a:documentation>
|
1948
|
+
</attribute>
|
1949
|
+
</optional>
|
1950
|
+
<optional>
|
1951
|
+
<attribute name="type">
|
1952
|
+
<ref name="ExpressionDesignationType"/>
|
1953
|
+
</attribute>
|
1954
|
+
</optional>
|
1955
|
+
<optional>
|
1956
|
+
<attribute name="isInternational">
|
1957
|
+
<data type="boolean"/>
|
1958
|
+
</attribute>
|
1959
|
+
</optional>
|
1960
|
+
<element name="name">
|
1961
|
+
<zeroOrMore>
|
1962
|
+
<ref name="PureTextElement"/>
|
1963
|
+
</zeroOrMore>
|
1964
|
+
</element>
|
1965
|
+
<optional>
|
1966
|
+
<element name="abbreviation-type">
|
1967
|
+
<ref name="AbbreviationType"/>
|
1968
|
+
</element>
|
1969
|
+
</optional>
|
1970
|
+
<optional>
|
1971
|
+
<element name="pronunciation">
|
1972
|
+
<ref name="LocalizedString"/>
|
1973
|
+
</element>
|
1974
|
+
</optional>
|
1975
|
+
<optional>
|
1976
|
+
<element name="grammar-info">
|
1977
|
+
<ref name="Grammar"/>
|
1978
|
+
</element>
|
1979
|
+
</optional>
|
1866
1980
|
</element>
|
1867
1981
|
</define>
|
1982
|
+
<define name="ExpressionDesignationType">
|
1983
|
+
<choice>
|
1984
|
+
<value>prefix</value>
|
1985
|
+
<value>suffix</value>
|
1986
|
+
<value>abbreviation</value>
|
1987
|
+
<value>full</value>
|
1988
|
+
</choice>
|
1989
|
+
</define>
|
1990
|
+
<define name="AbbreviationType">
|
1991
|
+
<choice>
|
1992
|
+
<value>truncation</value>
|
1993
|
+
<value>acronym</value>
|
1994
|
+
<value>initialism</value>
|
1995
|
+
</choice>
|
1996
|
+
</define>
|
1997
|
+
<define name="Grammar">
|
1998
|
+
<zeroOrMore>
|
1999
|
+
<element name="gender">
|
2000
|
+
<ref name="GrammarGender"/>
|
2001
|
+
</element>
|
2002
|
+
</zeroOrMore>
|
2003
|
+
<zeroOrMore>
|
2004
|
+
<element name="number">
|
2005
|
+
<ref name="GrammarNumber"/>
|
2006
|
+
</element>
|
2007
|
+
</zeroOrMore>
|
2008
|
+
<optional>
|
2009
|
+
<element name="isPreposition">
|
2010
|
+
<data type="boolean"/>
|
2011
|
+
</element>
|
2012
|
+
</optional>
|
2013
|
+
<optional>
|
2014
|
+
<element name="isParticiple">
|
2015
|
+
<data type="boolean"/>
|
2016
|
+
</element>
|
2017
|
+
</optional>
|
2018
|
+
<optional>
|
2019
|
+
<element name="isAdjective">
|
2020
|
+
<data type="boolean"/>
|
2021
|
+
</element>
|
2022
|
+
</optional>
|
2023
|
+
<optional>
|
2024
|
+
<element name="isVerb">
|
2025
|
+
<data type="boolean"/>
|
2026
|
+
</element>
|
2027
|
+
</optional>
|
2028
|
+
<optional>
|
2029
|
+
<element name="isAdverb">
|
2030
|
+
<data type="boolean"/>
|
2031
|
+
</element>
|
2032
|
+
</optional>
|
2033
|
+
<optional>
|
2034
|
+
<element name="isNoun">
|
2035
|
+
<data type="boolean"/>
|
2036
|
+
</element>
|
2037
|
+
</optional>
|
2038
|
+
<zeroOrMore>
|
2039
|
+
<element name="grammar-value">
|
2040
|
+
<text/>
|
2041
|
+
</element>
|
2042
|
+
</zeroOrMore>
|
2043
|
+
</define>
|
2044
|
+
<define name="GrammarGender">
|
2045
|
+
<choice>
|
2046
|
+
<value>masculine</value>
|
2047
|
+
<value>feminine</value>
|
2048
|
+
<value>neuter</value>
|
2049
|
+
<value>common</value>
|
2050
|
+
</choice>
|
2051
|
+
</define>
|
2052
|
+
<define name="GrammarNumber">
|
2053
|
+
<choice>
|
2054
|
+
<value>singular</value>
|
2055
|
+
<value>dual</value>
|
2056
|
+
<value>plural</value>
|
2057
|
+
</choice>
|
2058
|
+
</define>
|
1868
2059
|
<define name="termdomain">
|
1869
2060
|
<element name="domain">
|
1870
2061
|
<oneOrMore>
|
@@ -1872,8 +2063,8 @@
|
|
1872
2063
|
</oneOrMore>
|
1873
2064
|
</element>
|
1874
2065
|
</define>
|
1875
|
-
<define name="
|
1876
|
-
<element name="
|
2066
|
+
<define name="termsubject">
|
2067
|
+
<element name="subject">
|
1877
2068
|
<oneOrMore>
|
1878
2069
|
<ref name="TextElement"/>
|
1879
2070
|
</oneOrMore>
|
@@ -1881,9 +2072,39 @@
|
|
1881
2072
|
</define>
|
1882
2073
|
<define name="termdefinition">
|
1883
2074
|
<element name="definition">
|
2075
|
+
<choice>
|
2076
|
+
<ref name="verbaldefinition"/>
|
2077
|
+
<ref name="nonverbalrep"/>
|
2078
|
+
<group>
|
2079
|
+
<ref name="verbaldefinition"/>
|
2080
|
+
<ref name="nonverbalrep"/>
|
2081
|
+
</group>
|
2082
|
+
</choice>
|
2083
|
+
</element>
|
2084
|
+
</define>
|
2085
|
+
<define name="verbaldefinition">
|
2086
|
+
<element name="verbal-definition">
|
1884
2087
|
<oneOrMore>
|
1885
2088
|
<choice>
|
1886
2089
|
<ref name="paragraph"/>
|
2090
|
+
<ref name="dl"/>
|
2091
|
+
<ref name="ol"/>
|
2092
|
+
<ref name="ul"/>
|
2093
|
+
<ref name="table"/>
|
2094
|
+
<ref name="figure"/>
|
2095
|
+
<ref name="formula"/>
|
2096
|
+
</choice>
|
2097
|
+
</oneOrMore>
|
2098
|
+
<zeroOrMore>
|
2099
|
+
<ref name="termsource"/>
|
2100
|
+
</zeroOrMore>
|
2101
|
+
</element>
|
2102
|
+
</define>
|
2103
|
+
<define name="nonverbalrep">
|
2104
|
+
<element name="non-verbal-representation">
|
2105
|
+
<oneOrMore>
|
2106
|
+
<choice>
|
2107
|
+
<ref name="table"/>
|
1887
2108
|
<ref name="figure"/>
|
1888
2109
|
<ref name="formula"/>
|
1889
2110
|
</choice>
|
@@ -1972,6 +2193,12 @@
|
|
1972
2193
|
<value>modified</value>
|
1973
2194
|
</choice>
|
1974
2195
|
</attribute>
|
2196
|
+
<attribute name="type">
|
2197
|
+
<choice>
|
2198
|
+
<value>authoritative</value>
|
2199
|
+
<value>lineage</value>
|
2200
|
+
</choice>
|
2201
|
+
</attribute>
|
1975
2202
|
<ref name="origin"/>
|
1976
2203
|
<optional>
|
1977
2204
|
<ref name="modification"/>
|
@@ -63,7 +63,7 @@ module Asciidoctor
|
|
63
63
|
def locality_erefs_validate(root)
|
64
64
|
root.xpath("//eref[descendant::locality]").each do |t|
|
65
65
|
if /^(ISO|IEC)/.match?(t["citeas"]) &&
|
66
|
-
|
66
|
+
!/: ?(\d+{4}|–)$/.match?(t["citeas"])
|
67
67
|
@log.add("Style", t,
|
68
68
|
"undated reference #{t['citeas']} should not contain "\
|
69
69
|
"specific elements")
|
@@ -78,8 +78,8 @@ module Asciidoctor
|
|
78
78
|
# ISO/IEC DIR 2, 16.5.6
|
79
79
|
def termdef_style(xmldoc)
|
80
80
|
xmldoc.xpath("//term").each do |t|
|
81
|
-
para = t.at("./definition") || return
|
82
|
-
term = t.at("./preferred").text
|
81
|
+
para = t.at("./definition/verbal-definition") || return
|
82
|
+
term = t.at("./preferred//name").text
|
83
83
|
termdef_warn(para.text, /\A(the|a)\b/i, t, term,
|
84
84
|
"term definition starts with article")
|
85
85
|
termdef_warn(para.text, /\.\Z/i, t, term,
|
@@ -90,10 +90,10 @@ module Asciidoctor
|
|
90
90
|
def doctype_validate(xmldoc)
|
91
91
|
doctype = xmldoc&.at("//bibdata/ext/doctype")&.text
|
92
92
|
%w(international-standard technical-specification technical-report
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
93
|
+
publicly-available-specification international-workshop-agreement
|
94
|
+
guide amendment technical-corrigendum).include? doctype or
|
95
|
+
@log.add("Document Attributes", nil,
|
96
|
+
"#{doctype} is not a recognised document type")
|
97
97
|
end
|
98
98
|
|
99
99
|
def script_validate(xmldoc)
|
@@ -216,7 +216,7 @@ module Asciidoctor
|
|
216
216
|
|
217
217
|
def asset_style(root)
|
218
218
|
root.xpath("//example | //termexample").each { |e| example_style(e) }
|
219
|
-
root.xpath("//definition").each { |e| definition_style(e) }
|
219
|
+
root.xpath("//definition/verbal-definition").each { |e| definition_style(e) }
|
220
220
|
root.xpath("//note").each { |e| note_style(e) }
|
221
221
|
root.xpath("//fn").each { |e| footnote_style(e) }
|
222
222
|
root.xpath(ASSETS_TO_STYLE).each { |e| style(e, extract_text(e)) }
|
@@ -689,7 +689,6 @@ p.Terms, li.Terms, div.Terms {
|
|
689
689
|
mso-fareast-font-family: "SimHei",serif;
|
690
690
|
mso-bidi-font-family: {{headerfont}};
|
691
691
|
mso-ansi-language: EN-GB;
|
692
|
-
font-weight: bold;
|
693
692
|
mso-bidi-font-weight: normal; }
|
694
693
|
|
695
694
|
p.AltTerms, li.AltTerms, div.AltTerms {
|
@@ -658,7 +658,6 @@ p.Terms, li.Terms, div.Terms
|
|
658
658
|
mso-fareast-font-family:"SimHei",serif;
|
659
659
|
mso-bidi-font-family:$headerfont;
|
660
660
|
mso-ansi-language:EN-GB;
|
661
|
-
font-weight:bold;
|
662
661
|
mso-bidi-font-weight:normal;}
|
663
662
|
p.AltTerms, li.AltTerms, div.AltTerms
|
664
663
|
{mso-style-name:"AltTerm\(s\)";
|