metanorma-iso 1.4.3.pre.alpha → 1.5.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 +1 -1
- data/lib/asciidoctor/iso/base.rb +8 -19
- data/lib/asciidoctor/iso/cleanup.rb +2 -3
- data/lib/asciidoctor/iso/front.rb +4 -5
- data/lib/asciidoctor/iso/front_id.rb +1 -1
- data/lib/asciidoctor/iso/isodoc.rng +12 -6
- data/lib/asciidoctor/iso/section.rb +5 -11
- data/lib/asciidoctor/iso/term_lookup_cleanup.rb +0 -1
- data/lib/asciidoctor/iso/validate_section.rb +40 -44
- data/lib/isodoc/iso/base_convert.rb +3 -64
- data/lib/isodoc/iso/html_convert.rb +2 -1
- data/lib/{asciidoctor → isodoc}/iso/i18n-en.yaml +0 -1
- data/lib/{asciidoctor → isodoc}/iso/i18n-fr.yaml +0 -0
- data/lib/{asciidoctor → isodoc}/iso/i18n-zh-Hans.yaml +0 -0
- data/lib/isodoc/iso/i18n.rb +19 -0
- data/lib/isodoc/iso/init.rb +33 -0
- data/lib/isodoc/iso/iso.amendment.xsl +1403 -1719
- data/lib/isodoc/iso/iso.international-standard.xsl +1403 -1719
- data/lib/isodoc/iso/metadata.rb +1 -1
- data/lib/isodoc/iso/presentation_xml_convert.rb +99 -1
- data/lib/isodoc/iso/sections.rb +3 -8
- data/lib/isodoc/iso/word_convert.rb +2 -1
- data/lib/isodoc/iso/xref.rb +2 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +2 -2
- data/spec/asciidoctor-iso/base_spec.rb +3 -11
- data/spec/asciidoctor-iso/cleanup_spec.rb +4 -4
- data/spec/asciidoctor-iso/inline_spec.rb +1 -1
- data/spec/asciidoctor-iso/refs_spec.rb +3 -3
- data/spec/asciidoctor-iso/section_spec.rb +9 -6
- data/spec/asciidoctor-iso/validate_spec.rb +100 -21
- data/spec/isodoc/amd_spec.rb +309 -153
- data/spec/isodoc/blocks_spec.rb +362 -28
- data/spec/isodoc/i18n_spec.rb +468 -108
- data/spec/isodoc/inline_spec.rb +99 -31
- data/spec/isodoc/iso_spec.rb +95 -29
- data/spec/isodoc/postproc_spec.rb +114 -149
- data/spec/isodoc/ref_spec.rb +175 -3
- data/spec/isodoc/section_spec.rb +148 -82
- data/spec/isodoc/table_spec.rb +142 -5
- data/spec/isodoc/terms_spec.rb +78 -53
- data/spec/isodoc/xref_spec.rb +831 -658
- data/spec/metanorma/processor_spec.rb +2 -1
- metadata +13 -11
data/lib/isodoc/iso/metadata.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require_relative "
|
1
|
+
require_relative "init"
|
2
2
|
require "isodoc"
|
3
3
|
|
4
4
|
module IsoDoc
|
@@ -8,6 +8,104 @@ module IsoDoc
|
|
8
8
|
# schema encapsulation of the document for validation
|
9
9
|
#
|
10
10
|
class PresentationXMLConvert < IsoDoc::PresentationXMLConvert
|
11
|
+
def initialize(options)
|
12
|
+
super
|
13
|
+
end
|
14
|
+
|
15
|
+
def convert1(docxml, filename, dir)
|
16
|
+
if amd(docxml)
|
17
|
+
@oldsuppressheadingnumbers = @suppressheadingnumbers
|
18
|
+
@suppressheadingnumbers = true
|
19
|
+
end
|
20
|
+
super
|
21
|
+
end
|
22
|
+
|
23
|
+
def annex(isoxml)
|
24
|
+
amd(isoxml) and @suppressheadingnumbers = @oldsuppressheadingnumbers
|
25
|
+
super
|
26
|
+
isoxml.xpath(ns("//annex//clause | //annex//appendix")).each do |f|
|
27
|
+
clause1(f)
|
28
|
+
end
|
29
|
+
amd(isoxml) and @suppressheadingnumbers = true
|
30
|
+
end
|
31
|
+
|
32
|
+
def xref_init(lang, script, klass, labels, options)
|
33
|
+
@xrefs = Xref.new(lang, script, klass, labels, options)
|
34
|
+
end
|
35
|
+
|
36
|
+
def figure1(f)
|
37
|
+
return if labelled_ancestor(f) && f.ancestors("figure").empty?
|
38
|
+
lbl = @xrefs.anchor(f['id'], :label, false) or return
|
39
|
+
figname = f.parent.name == "figure" ? "" : "#{@i18n.figure} "
|
40
|
+
connective = f.parent.name == "figure" ? " " : " — "
|
41
|
+
prefix_name(f, connective, l10n("#{figname}#{lbl}"), "name")
|
42
|
+
end
|
43
|
+
|
44
|
+
def example1(f)
|
45
|
+
n = @xrefs.get[f["id"]]
|
46
|
+
lbl = (n.nil? || n[:label].nil? || n[:label].empty?) ? @i18n.example :
|
47
|
+
l10n("#{@i18n.example} #{n[:label]}")
|
48
|
+
prefix_name(f, " — ", lbl, "name")
|
49
|
+
end
|
50
|
+
|
51
|
+
def eref_localities1_zh(target, type, from, to, delim)
|
52
|
+
subsection = from&.text&.match(/\./)
|
53
|
+
ret = (delim == ";") ? ";" : (type == "list") ? "" : delim
|
54
|
+
ret += " 第#{from.text}" if from
|
55
|
+
ret += "–#{to.text}" if to
|
56
|
+
loc = (@i18n.locality[type] || type.sub(/^locality:/, "").capitalize )
|
57
|
+
ret += " #{loc}" unless subsection && type == "clause" ||
|
58
|
+
type == "list" || target.match(/^IEV$|^IEC 60050-/)
|
59
|
+
ret += ")" if type == "list"
|
60
|
+
ret
|
61
|
+
end
|
62
|
+
|
63
|
+
def eref_localities1(target, type, from, to, delim, lang = "en")
|
64
|
+
return "" if type == "anchor"
|
65
|
+
subsection = from&.text&.match(/\./)
|
66
|
+
type = type.downcase
|
67
|
+
lang == "zh" and
|
68
|
+
return l10n(eref_localities1_zh(target, type, from, to, delim))
|
69
|
+
ret = (delim == ";") ? ";" : (type == "list") ? "" : delim
|
70
|
+
loc = @i18n.locality[type] || type.sub(/^locality:/, "").capitalize
|
71
|
+
ret += " #{loc}" unless subsection && type == "clause" ||
|
72
|
+
type == "list" || target.match(/^IEV$|^IEC 60050-/)
|
73
|
+
ret += " #{from.text}" if from
|
74
|
+
ret += "–#{to.text}" if to
|
75
|
+
ret += ")" if type == "list"
|
76
|
+
l10n(ret)
|
77
|
+
end
|
78
|
+
|
79
|
+
def prefix_container(container, linkend, target)
|
80
|
+
delim = @xrefs.anchor(target, :type) == "listitem" ? " " : ", "
|
81
|
+
l10n(@xrefs.anchor(container, :xref) + delim + linkend)
|
82
|
+
end
|
83
|
+
|
84
|
+
def example_span_label(node, div, name)
|
85
|
+
return if name.nil?
|
86
|
+
div.span **{ class: "example_label" } do |p|
|
87
|
+
name.children.each { |n| parse(n, div) }
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
def clause1(f)
|
92
|
+
if !f.at(ns("./title")) &&
|
93
|
+
!%w(sections preface bibliography).include?(f.parent.name)
|
94
|
+
f["inline-header"] = "true"
|
95
|
+
end
|
96
|
+
super
|
97
|
+
end
|
98
|
+
|
99
|
+
def clause(docxml)
|
100
|
+
docxml.xpath(ns("//clause[not(ancestor::annex)] | "\
|
101
|
+
"//terms | //definitions | //references | "\
|
102
|
+
"//preface/introduction[clause]")).
|
103
|
+
each do |f|
|
104
|
+
clause1(f)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
include Init
|
11
109
|
end
|
12
110
|
end
|
13
111
|
end
|
data/lib/isodoc/iso/sections.rb
CHANGED
@@ -37,11 +37,10 @@ module IsoDoc
|
|
37
37
|
|
38
38
|
def introduction(isoxml, out)
|
39
39
|
f = isoxml.at(ns("//introduction")) || return
|
40
|
-
num = f.at(ns(".//clause")) ? "0" : nil
|
41
40
|
title_attr = { class: "IntroTitle" }
|
42
41
|
page_break(out)
|
43
42
|
out.div **{ class: "Section3", id: f["id"] } do |div|
|
44
|
-
clause_name(
|
43
|
+
clause_name(nil, f.at(ns("./title")), div, title_attr)
|
45
44
|
f.elements.each do |e|
|
46
45
|
parse(e, div) unless e.name == "title"
|
47
46
|
end
|
@@ -52,15 +51,11 @@ module IsoDoc
|
|
52
51
|
f = isoxml.at(ns("//foreword")) || return
|
53
52
|
page_break(out)
|
54
53
|
out.div **attr_code(id: f["id"]) do |s|
|
55
|
-
|
54
|
+
clause_name(nil, f.at(ns("./title")) || @i18n.foreword, s,
|
55
|
+
{ class: "ForewordTitle" })
|
56
56
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
57
57
|
end
|
58
58
|
end
|
59
|
-
|
60
|
-
def clause_parse_title(node, div, c1, out)
|
61
|
-
return inline_header_title(out, node, c1) if c1.nil?
|
62
|
-
super
|
63
|
-
end
|
64
59
|
end
|
65
60
|
end
|
66
61
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require_relative "base_convert"
|
2
2
|
require "isodoc"
|
3
|
-
require_relative "
|
3
|
+
require_relative "init"
|
4
4
|
|
5
5
|
module IsoDoc
|
6
6
|
module Iso
|
@@ -121,6 +121,7 @@ module IsoDoc
|
|
121
121
|
end
|
122
122
|
|
123
123
|
include BaseConvert
|
124
|
+
include Init
|
124
125
|
end
|
125
126
|
end
|
126
127
|
end
|
data/lib/isodoc/iso/xref.rb
CHANGED
@@ -21,6 +21,8 @@ module IsoDoc
|
|
21
21
|
# we can reference 0-number clauses in introduction
|
22
22
|
def introduction_names(clause)
|
23
23
|
return if clause.nil?
|
24
|
+
clause.at(ns("./clause")) and @anchors[clause["id"]] =
|
25
|
+
{ label: "0", level: 1, xref: clause.at(ns("./title"))&.text, type: "clause" }
|
24
26
|
clause.xpath(ns("./clause")).each_with_index do |c, i|
|
25
27
|
section_names1(c, "0.#{i + 1}", 2)
|
26
28
|
end
|
data/metanorma-iso.gemspec
CHANGED
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
31
31
|
|
32
32
|
spec.add_dependency "ruby-jing"
|
33
|
-
spec.add_dependency "isodoc", "~> 1.
|
34
|
-
spec.add_dependency "metanorma-standoc", "~> 1.
|
33
|
+
spec.add_dependency "isodoc", "~> 1.2.0"
|
34
|
+
spec.add_dependency "metanorma-standoc", "~> 1.5.0"
|
35
35
|
spec.add_dependency "tokenizer", "~> 0.3.0"
|
36
36
|
spec.add_dependency "twitter_cldr"
|
37
37
|
spec.add_dependency "mn2sts", "~> 1.2.0"
|
@@ -186,6 +186,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
186
186
|
:language: el
|
187
187
|
:script: Grek
|
188
188
|
:publisher: IEC,IETF,ISO
|
189
|
+
:copyright-holder: ISO,IETF
|
189
190
|
:copyright-year: 2001
|
190
191
|
:doctype: technical-report
|
191
192
|
INPUT
|
@@ -248,8 +249,8 @@ RSpec.describe Asciidoctor::ISO do
|
|
248
249
|
<from>2001</from>
|
249
250
|
<owner>
|
250
251
|
<organization>
|
251
|
-
<name>International
|
252
|
-
<abbreviation>
|
252
|
+
<name>International Organization for Standardization</name>
|
253
|
+
<abbreviation>ISO</abbreviation>
|
253
254
|
</organization>
|
254
255
|
</owner>
|
255
256
|
</copyright>
|
@@ -261,15 +262,6 @@ RSpec.describe Asciidoctor::ISO do
|
|
261
262
|
</organization>
|
262
263
|
</owner>
|
263
264
|
</copyright>
|
264
|
-
<copyright>
|
265
|
-
<from>2001</from>
|
266
|
-
<owner>
|
267
|
-
<organization>
|
268
|
-
<name>International Organization for Standardization</name>
|
269
|
-
<abbreviation>ISO</abbreviation>
|
270
|
-
</organization>
|
271
|
-
</owner>
|
272
|
-
</copyright>
|
273
265
|
<ext>
|
274
266
|
<doctype>technical-report</doctype>
|
275
267
|
<editorialgroup>
|
@@ -190,7 +190,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
190
190
|
</p>
|
191
191
|
</foreword></preface><sections>
|
192
192
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
193
|
-
<title>Normative
|
193
|
+
<title>Normative references</title>
|
194
194
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
195
195
|
<bibitem id="iso216" type="standard">
|
196
196
|
<title format="text/plain">Reference</title>
|
@@ -233,7 +233,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
233
233
|
</p>
|
234
234
|
</foreword></preface><sections>
|
235
235
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
236
|
-
<title>Normative
|
236
|
+
<title>Normative references</title>
|
237
237
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
238
238
|
<bibitem id="iso216" type="standard">
|
239
239
|
<title format="text/plain">Reference</title>
|
@@ -333,7 +333,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
333
333
|
INPUT
|
334
334
|
#{BLANK_HDR}
|
335
335
|
<sections></sections>
|
336
|
-
<bibliography><references id="_" obligation="informative" normative="true"><title>Normative
|
336
|
+
<bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
|
337
337
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
338
338
|
<bibitem id="iso216" type="standard">
|
339
339
|
<title format="text/plain">Reference</title>
|
@@ -638,7 +638,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
638
638
|
</fn>
|
639
639
|
</p>
|
640
640
|
</clause></sections><bibliography><references id="_" obligation="informative" normative="true">
|
641
|
-
<title>Normative
|
641
|
+
<title>Normative references</title>
|
642
642
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
643
643
|
<bibitem id="iso123" type="standard">
|
644
644
|
<title format="text/plain">Standard</title>
|
@@ -128,7 +128,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
128
128
|
<sections>
|
129
129
|
|
130
130
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
131
|
-
<title>Normative
|
131
|
+
<title>Normative references</title>
|
132
132
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
133
133
|
<bibitem id="ISO712">
|
134
134
|
<formattedref format="application/x-isodoc+xml">Reference</formattedref>
|
@@ -16,7 +16,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
16
16
|
#{BLANK_HDR}
|
17
17
|
<sections>
|
18
18
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
19
|
-
<title>Normative
|
19
|
+
<title>Normative references</title>
|
20
20
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
21
21
|
<bibitem id="iso123" type="standard">
|
22
22
|
<title format="text/plain">Standard</title>
|
@@ -65,7 +65,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
65
65
|
</clause>
|
66
66
|
</sections>
|
67
67
|
<bibliography><references id="_" obligation="informative" normative="true">
|
68
|
-
<title>Normative
|
68
|
+
<title>Normative references</title>
|
69
69
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
70
70
|
<bibitem id="iso123" type="standard">
|
71
71
|
<title format="text/plain">Standard</title>
|
@@ -101,7 +101,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
101
101
|
<sections>
|
102
102
|
|
103
103
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
104
|
-
<title>Normative
|
104
|
+
<title>Normative references</title>
|
105
105
|
<p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
|
106
106
|
<bibitem id="iso123">
|
107
107
|
<formattedref format="application/x-isodoc+xml">
|
@@ -66,7 +66,7 @@ RSpec.describe Asciidoctor::ISO do
|
|
66
66
|
<title>Acknowledgements</title>
|
67
67
|
</acknowledgements>
|
68
68
|
</preface><sections>
|
69
|
-
<clause id="_" obligation="normative">
|
69
|
+
<clause id="_" obligation="normative" inline-header='false' type="scope">
|
70
70
|
<title>Scope</title>
|
71
71
|
<p id="_">Text</p>
|
72
72
|
</clause>
|
@@ -88,7 +88,9 @@ standardization at the following addresses:</p>
|
|
88
88
|
<preferred>Term1</preferred>
|
89
89
|
</term>
|
90
90
|
</terms>
|
91
|
-
<clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title
|
91
|
+
<clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title>
|
92
|
+
<terms id="_" obligation="normative">
|
93
|
+
<title>Normal Terms</title>
|
92
94
|
<p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
|
93
95
|
<p id='_'>
|
94
96
|
ISO and IEC maintain terminological databases for use in
|
@@ -108,13 +110,14 @@ standardization at the following addresses:</p>
|
|
108
110
|
</p>
|
109
111
|
</li>
|
110
112
|
</ul>
|
111
|
-
<title>Normal Terms</title>
|
112
113
|
<term id="term-term2">
|
113
114
|
<preferred>Term2</preferred>
|
114
115
|
</term>
|
115
116
|
</terms>
|
116
|
-
<definitions id="_"
|
117
|
-
|
117
|
+
<definitions id="_" obligation="normative">
|
118
|
+
<title>Symbols and abbreviated terms</title></definitions></clause>
|
119
|
+
<definitions id="_" obligation="normative">
|
120
|
+
<title>Symbols and abbreviated terms</title></definitions>
|
118
121
|
<clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" inline-header="false" obligation="normative">
|
119
122
|
<title>Introduction</title>
|
120
123
|
</clause>
|
@@ -134,7 +137,7 @@ standardization at the following addresses:</p>
|
|
134
137
|
<appendix id="_" inline-header="false" obligation="normative">
|
135
138
|
<title>Appendix 1</title>
|
136
139
|
</appendix></annex><bibliography><references id="_" obligation="informative" normative="true">
|
137
|
-
<title>Normative
|
140
|
+
<title>Normative references</title>
|
138
141
|
<p id="_">There are no normative references in this document.</p>
|
139
142
|
</references><clause id="_" obligation="informative">
|
140
143
|
<title>Bibliography</title>
|
@@ -3,6 +3,93 @@ require "fileutils"
|
|
3
3
|
|
4
4
|
RSpec.describe Asciidoctor::ISO do
|
5
5
|
|
6
|
+
it "Warns of missing scope" do
|
7
|
+
FileUtils.rm_f "test.err"
|
8
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
9
|
+
= Document title
|
10
|
+
Author
|
11
|
+
:docfile: test.adoc
|
12
|
+
:nodoc:
|
13
|
+
:no-isobib:
|
14
|
+
:doctype: pizza
|
15
|
+
|
16
|
+
text
|
17
|
+
INPUT
|
18
|
+
expect(File.read("test.err")).to include "Scope clause missing"
|
19
|
+
FileUtils.rm_f "test.err"
|
20
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
21
|
+
= Document title
|
22
|
+
Author
|
23
|
+
:docfile: test.adoc
|
24
|
+
:nodoc:
|
25
|
+
:no-isobib:
|
26
|
+
:doctype: pizza
|
27
|
+
|
28
|
+
== Scope
|
29
|
+
INPUT
|
30
|
+
expect(File.read("test.err")).not_to include "Scope clause missing"
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
it "Warns of missing normative references" do
|
35
|
+
FileUtils.rm_f "test.err"
|
36
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
37
|
+
= Document title
|
38
|
+
Author
|
39
|
+
:docfile: test.adoc
|
40
|
+
:nodoc:
|
41
|
+
:no-isobib:
|
42
|
+
:doctype: pizza
|
43
|
+
|
44
|
+
text
|
45
|
+
INPUT
|
46
|
+
expect(File.read("test.err")).to include "Normative references missing"
|
47
|
+
FileUtils.rm_f "test.err"
|
48
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
49
|
+
= Document title
|
50
|
+
Author
|
51
|
+
:docfile: test.adoc
|
52
|
+
:nodoc:
|
53
|
+
:no-isobib:
|
54
|
+
:doctype: pizza
|
55
|
+
|
56
|
+
[bibliography]
|
57
|
+
== Normative references
|
58
|
+
INPUT
|
59
|
+
expect(File.read("test.err")).not_to include "Normative references missing"
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
it "Warns of missing terms & definitions" do
|
64
|
+
FileUtils.rm_f "test.err"
|
65
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
66
|
+
= Document title
|
67
|
+
Author
|
68
|
+
:docfile: test.adoc
|
69
|
+
:nodoc:
|
70
|
+
:no-isobib:
|
71
|
+
:doctype: pizza
|
72
|
+
|
73
|
+
text
|
74
|
+
INPUT
|
75
|
+
expect(File.read("test.err")).to include "Terms & definitions missing"
|
76
|
+
FileUtils.rm_f "test.err"
|
77
|
+
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
78
|
+
= Document title
|
79
|
+
Author
|
80
|
+
:docfile: test.adoc
|
81
|
+
:nodoc:
|
82
|
+
:no-isobib:
|
83
|
+
:doctype: pizza
|
84
|
+
|
85
|
+
== Terms and definitions
|
86
|
+
=== Term 1
|
87
|
+
INPUT
|
88
|
+
expect(File.read("test.err")).not_to include "Terms & definitions missing"
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
|
6
93
|
it "Warns of illegal doctype" do
|
7
94
|
FileUtils.rm_f "test.err"
|
8
95
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
@@ -527,7 +614,7 @@ it "Style warning if Symbols and Abbreviated Terms contains extraneous matter" d
|
|
527
614
|
expect(File.read("test.err")).to include "Symbols and Abbreviated Terms can only contain a definition list"
|
528
615
|
end
|
529
616
|
|
530
|
-
it "Warning if
|
617
|
+
it "Warning if missing foreword" do
|
531
618
|
FileUtils.rm_f "test.err"
|
532
619
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
533
620
|
#{VALIDATING_BLANK_HDR}
|
@@ -536,19 +623,15 @@ it "Warning if do not start with scope or introduction" do
|
|
536
623
|
|
537
624
|
Paragraph
|
538
625
|
INPUT
|
539
|
-
expect(File.read("test.err")).to include "
|
626
|
+
expect(File.read("test.err")).to include "Initial section must be (content) Foreword"
|
540
627
|
end
|
541
628
|
|
542
|
-
it "Warning if
|
629
|
+
it "Warning if do not start with scope or introduction" do
|
543
630
|
FileUtils.rm_f "test.err"
|
544
631
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
545
632
|
#{VALIDATING_BLANK_HDR}
|
546
|
-
|
547
|
-
.Foreword
|
548
633
|
Foreword
|
549
634
|
|
550
|
-
== Introduction
|
551
|
-
|
552
635
|
== Symbols and Abbreviated Terms
|
553
636
|
|
554
637
|
Paragraph
|
@@ -556,7 +639,7 @@ it "Warning if introduction not followed by scope" do
|
|
556
639
|
expect(File.read("test.err")).to include "Prefatory material must be followed by (clause) Scope"
|
557
640
|
end
|
558
641
|
|
559
|
-
it "Warning if
|
642
|
+
it "Warning if introduction not followed by scope" do
|
560
643
|
FileUtils.rm_f "test.err"
|
561
644
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
562
645
|
#{VALIDATING_BLANK_HDR}
|
@@ -564,19 +647,16 @@ it "Warning if normative references not followed by terms and definitions" do
|
|
564
647
|
.Foreword
|
565
648
|
Foreword
|
566
649
|
|
567
|
-
==
|
568
|
-
|
569
|
-
[bibliography]
|
570
|
-
== Normative References
|
650
|
+
== Introduction
|
571
651
|
|
572
652
|
== Symbols and Abbreviated Terms
|
573
653
|
|
574
654
|
Paragraph
|
575
655
|
INPUT
|
576
|
-
expect(File.read("test.err")).to include "
|
656
|
+
expect(File.read("test.err")).to include "Prefatory material must be followed by (clause) Scope"
|
577
657
|
end
|
578
658
|
|
579
|
-
it "Warning if
|
659
|
+
it "Warning if normative references not followed by terms and definitions" do
|
580
660
|
FileUtils.rm_f "test.err"
|
581
661
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
582
662
|
#{VALIDATING_BLANK_HDR}
|
@@ -589,20 +669,19 @@ it "Warning if there are no clauses in the document" do
|
|
589
669
|
[bibliography]
|
590
670
|
== Normative References
|
591
671
|
|
592
|
-
== Terms and Definitions
|
593
|
-
|
594
672
|
== Symbols and Abbreviated Terms
|
595
673
|
|
674
|
+
Paragraph
|
596
675
|
INPUT
|
597
|
-
expect(File.read("test.err")).to include "
|
676
|
+
expect(File.read("test.err")).to include "Normative References must be followed by Terms and Definitions"
|
598
677
|
end
|
599
678
|
|
600
|
-
it "Warning if
|
679
|
+
it "Warning if there are no clauses in the document" do
|
601
680
|
FileUtils.rm_f "test.err"
|
602
681
|
Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)
|
603
682
|
#{VALIDATING_BLANK_HDR}
|
604
683
|
|
605
|
-
.Foreword
|
684
|
+
.Foreword
|
606
685
|
Foreword
|
607
686
|
|
608
687
|
== Scope
|
@@ -612,10 +691,10 @@ it "Warning if scope occurs after Terms and Definitions" do
|
|
612
691
|
|
613
692
|
== Terms and Definitions
|
614
693
|
|
615
|
-
==
|
694
|
+
== Symbols and Abbreviated Terms
|
616
695
|
|
617
696
|
INPUT
|
618
|
-
expect(File.read("test.err")).to include "
|
697
|
+
expect(File.read("test.err")).to include "Document must contain at least one clause"
|
619
698
|
end
|
620
699
|
|
621
700
|
it "Warning if scope occurs after Terms and Definitions" do
|