metanorma-iso 1.9.6 → 1.10.3
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/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\)";
|