metanorma-standoc 1.0.9 → 1.0.10
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/Gemfile.lock +6 -6
- data/README.adoc +7 -4
- data/lib/asciidoctor/standoc/base.rb +2 -3
- data/lib/asciidoctor/standoc/cleanup_block.rb +24 -1
- data/lib/asciidoctor/standoc/cleanup_ref.rb +15 -5
- data/lib/asciidoctor/standoc/ref.rb +8 -3
- data/lib/asciidoctor/standoc/section.rb +8 -0
- data/lib/metanorma/standoc/version.rb +1 -1
- data/spec/asciidoctor-standoc/base_spec.rb +9 -3
- data/spec/asciidoctor-standoc/cleanup_spec.rb +4 -4
- data/spec/asciidoctor-standoc/isobib_cache_spec.rb +136 -66
- data/spec/asciidoctor-standoc/section_spec.rb +18 -6
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 106a6752670de093881dbe34b54de139df3f146de2ffa569db1166734c5a4b5d
|
|
4
|
+
data.tar.gz: 3185e67d4d921ad7ab77622771fcf70209509b1808afaf651e08ee64059bb7a6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 343159ce51ce6952014f833e571930bf0552726d46a977fc7c0cd7809a3f9cc8f9876db85f5d8857285a038d2f57d08bc253f5a9e6a85c0429fa3db50ade2352
|
|
7
|
+
data.tar.gz: 0afdde4f04027aba0820d92765d3df52e52603b5bb12a5b2155968eea4f26f7ec25b7908f46e1adc64e728853ad9d42dd547f027f8f3de76c90cb0ae4a2837ba
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
metanorma-standoc (1.0.
|
|
4
|
+
metanorma-standoc (1.0.10)
|
|
5
5
|
asciidoctor (~> 1.5.7)
|
|
6
6
|
iev (~> 0.2.0)
|
|
7
7
|
isodoc (~> 0.9.0)
|
|
@@ -36,7 +36,7 @@ GEM
|
|
|
36
36
|
cnccs (~> 0.1.1)
|
|
37
37
|
gb-agencies (~> 0.0.1)
|
|
38
38
|
iso-bib-item (~> 0.4.2)
|
|
39
|
-
guard (2.
|
|
39
|
+
guard (2.15.0)
|
|
40
40
|
formatador (>= 0.2.4)
|
|
41
41
|
listen (>= 2.7, < 4.0)
|
|
42
42
|
lumberjack (>= 1.0.12, < 2.0)
|
|
@@ -70,7 +70,7 @@ GEM
|
|
|
70
70
|
iev (0.2.0)
|
|
71
71
|
nokogiri
|
|
72
72
|
image_size (2.0.0)
|
|
73
|
-
iso-bib-item (0.4.
|
|
73
|
+
iso-bib-item (0.4.3)
|
|
74
74
|
isoics (~> 0.1.6)
|
|
75
75
|
nokogiri (~> 1.8.4)
|
|
76
76
|
ruby_deep_clone (~> 0.8.0)
|
|
@@ -78,7 +78,7 @@ GEM
|
|
|
78
78
|
algoliasearch
|
|
79
79
|
iecbib (~> 0.2.1)
|
|
80
80
|
iso-bib-item (~> 0.4.2)
|
|
81
|
-
isodoc (0.9.
|
|
81
|
+
isodoc (0.9.10)
|
|
82
82
|
asciimath
|
|
83
83
|
html2doc (~> 0.8.6)
|
|
84
84
|
htmlentities (~> 4.3.4)
|
|
@@ -100,7 +100,7 @@ GEM
|
|
|
100
100
|
rb-inotify (~> 0.9, >= 0.9.7)
|
|
101
101
|
ruby_dep (~> 1.2)
|
|
102
102
|
lumberjack (1.0.13)
|
|
103
|
-
metanorma (0.3.
|
|
103
|
+
metanorma (0.3.1)
|
|
104
104
|
method_source (0.9.2)
|
|
105
105
|
mime-types (3.2.2)
|
|
106
106
|
mime-types-data (~> 3.2015)
|
|
@@ -117,7 +117,7 @@ GEM
|
|
|
117
117
|
parser (2.5.3.0)
|
|
118
118
|
ast (~> 2.4.0)
|
|
119
119
|
powerpack (0.1.2)
|
|
120
|
-
pry (0.12.
|
|
120
|
+
pry (0.12.2)
|
|
121
121
|
coderay (~> 1.1.0)
|
|
122
122
|
method_source (~> 0.9.0)
|
|
123
123
|
public_suffix (3.0.3)
|
data/README.adoc
CHANGED
|
@@ -498,13 +498,14 @@ TODO: update
|
|
|
498
498
|
|
|
499
499
|
[[cache]]
|
|
500
500
|
The results of all `relaton` searches done to date, across all documents,
|
|
501
|
-
are cached in the global cache file `~/.relaton
|
|
501
|
+
are cached in the global cache file `~/.relaton/cache`,
|
|
502
502
|
so they do not need to be re-fetched each time a document is processed.
|
|
503
503
|
(The web query takes a few seconds per reference.)
|
|
504
504
|
|
|
505
505
|
The results of all `relaton` searches done to date in a given directory
|
|
506
506
|
are stored in the same directory as the current document,
|
|
507
|
-
|
|
507
|
+
by default to the file `relaton/cache`. (The filename can be overriden in
|
|
508
|
+
document attributes.) The local cache overrides entries in
|
|
508
509
|
the global cache, and can be manually edited. The local cache is only used
|
|
509
510
|
if the `:local-cache:` or `:local-cache-only:` document attribute is set.
|
|
510
511
|
|
|
@@ -542,10 +543,12 @@ ISO and IEV references online, nor the <<cache,cache>> of `relaton` and `iev` se
|
|
|
542
543
|
ISO and IEV references online, but do not use the <<cache,cache>> of `relaton` and `iev` searches.
|
|
543
544
|
|
|
544
545
|
`:local-cache:`:: Use the local relaton and iev search caches to override the global `relaton` and `iev` search
|
|
545
|
-
caches.
|
|
546
|
+
caches. If a directory name is given for the attribute, that name overrides `relaton` as the
|
|
547
|
+
cache name.
|
|
546
548
|
|
|
547
549
|
`:local-cache-only:`:: Use the local relaton and iev search caches to the exclusion of the global `relaton` and `iev` search
|
|
548
|
-
caches.
|
|
550
|
+
caches. If a directory name is given for the attribute, that name overrides `relaton` as the
|
|
551
|
+
cache name.
|
|
549
552
|
|
|
550
553
|
`:i18nyaml:`:: Name of YAML file of internationalisation text, to use instead
|
|
551
554
|
of the built-in English, French or Chinese text used to label parts of the document
|
|
@@ -95,9 +95,8 @@ module Asciidoctor
|
|
|
95
95
|
|
|
96
96
|
def init_bib_caches(node)
|
|
97
97
|
unless (@no_isobib_cache || @no_isobib)
|
|
98
|
-
globalname =
|
|
99
|
-
localname =
|
|
100
|
-
node.attr("local-cache-only")
|
|
98
|
+
globalname = global_bibliocache_name unless node.attr("local-cache-only")
|
|
99
|
+
localname = local_bibliocache_name(node.attr("local-cache") || node.attr("local-cache-only"))
|
|
101
100
|
if node.attr("flush-caches")
|
|
102
101
|
FileUtils.rm_f globalname unless globalname.nil?
|
|
103
102
|
FileUtils.rm_f localname unless localname.nil?
|
|
@@ -23,7 +23,7 @@ module Asciidoctor
|
|
|
23
23
|
def dl_table_cleanup(xmldoc)
|
|
24
24
|
q = "//table/following-sibling::*[1][self::p]"
|
|
25
25
|
xmldoc.xpath(q).each do |s|
|
|
26
|
-
if s.text =~ /^\s*key[^a-z]*$/i && !s.next_element.nil? &&
|
|
26
|
+
if s.text =~ /^\s*key[^a-z]*$/i && !s.next_element.nil? &&
|
|
27
27
|
s.next_element.name == "dl"
|
|
28
28
|
s.previous_element << s.next_element.remove
|
|
29
29
|
s.remove
|
|
@@ -118,6 +118,29 @@ module Asciidoctor
|
|
|
118
118
|
introduction = x.at("//introduction")
|
|
119
119
|
preface.add_child introduction.remove if introduction
|
|
120
120
|
end
|
|
121
|
+
make_abstract(x, s)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def make_abstract(x, s)
|
|
125
|
+
if x.at("//abstract[not(ancestor::bibitem)]")
|
|
126
|
+
preface = s.at("//preface") || s.add_previous_sibling("<preface/>").first
|
|
127
|
+
abstract = x.at("//abstract[not(ancestor::bibitem)]").remove
|
|
128
|
+
preface.prepend_child abstract.remove
|
|
129
|
+
bibabstract = bibabstract_location(x)
|
|
130
|
+
dupabstract = abstract.dup
|
|
131
|
+
dupabstract.traverse { |n| n.remove_attribute("id") }
|
|
132
|
+
bibabstract.next = dupabstract
|
|
133
|
+
end
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def bibabstract_location(x)
|
|
137
|
+
bibabstract = x.at("//bibdata/script") || x.at("//bibdata/language") ||
|
|
138
|
+
x.at("//bibdata/contributor[not(following-sibling::contributor)]") ||
|
|
139
|
+
x.at("//bibdata/date[not(following-sibling::date)]") ||
|
|
140
|
+
x.at("//docnumber") ||
|
|
141
|
+
x.at("//bibdata/docidentifier[not(following-sibling::docidentifier)]") ||
|
|
142
|
+
x.at("//bibdata/uri[not(following-sibling::uri)]") ||
|
|
143
|
+
x.at("//bibdata/title[not(following-sibling::title)]")
|
|
121
144
|
end
|
|
122
145
|
|
|
123
146
|
def make_bibliography(x, s)
|
|
@@ -35,7 +35,7 @@ module Asciidoctor
|
|
|
35
35
|
def xref_to_eref(x)
|
|
36
36
|
x["bibitemid"] = x["target"]
|
|
37
37
|
x["citeas"] = @anchors&.dig(x["target"], :xref) ||
|
|
38
|
-
warn("
|
|
38
|
+
warn("#{x['target']} is not a real reference!")
|
|
39
39
|
x.delete("target")
|
|
40
40
|
extract_localities(x) unless x.children.empty?
|
|
41
41
|
end
|
|
@@ -69,7 +69,7 @@ module Asciidoctor
|
|
|
69
69
|
def origin_cleanup(xmldoc)
|
|
70
70
|
xmldoc.xpath("//origin").each do |x|
|
|
71
71
|
x["citeas"] = @anchors&.dig(x["bibitemid"], :xref) ||
|
|
72
|
-
warn("
|
|
72
|
+
warn("#{x['bibitemid']} is not a real reference!")
|
|
73
73
|
extract_localities(x) unless x.children.empty?
|
|
74
74
|
end
|
|
75
75
|
end
|
|
@@ -90,8 +90,18 @@ module Asciidoctor
|
|
|
90
90
|
end
|
|
91
91
|
end
|
|
92
92
|
|
|
93
|
-
def
|
|
94
|
-
|
|
93
|
+
def docid_prefix(prefix, docid)
|
|
94
|
+
docid = "#{prefix} #{docid}" unless omit_docid_prefix(prefix)
|
|
95
|
+
docid
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def omit_docid_prefix(prefix)
|
|
99
|
+
return true if prefix.nil? || prefix.empty?
|
|
100
|
+
["ISO", "IEC", "IEV"].include? prefix
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def format_ref(ref, type, isopub)
|
|
104
|
+
return docid_prefix(type, ref) if isopub
|
|
95
105
|
return "[#{ref}]" if /^\d+$/.match(ref) && !/^\[.*\]$/.match(ref)
|
|
96
106
|
ref
|
|
97
107
|
end
|
|
@@ -106,7 +116,7 @@ module Asciidoctor
|
|
|
106
116
|
xmldoc.xpath("//bibitem[not(ancestor::bibitem)]").each do |ref|
|
|
107
117
|
isopub = ref.at(ISO_PUBLISHER_XPATH)
|
|
108
118
|
docid = ref.at("./docidentifier[not(@type = 'DOI')]")
|
|
109
|
-
reference = format_ref(docid.text, isopub)
|
|
119
|
+
reference = format_ref(docid.text, docid["type"], isopub)
|
|
110
120
|
@anchors[ref["id"]] = { xref: reference }
|
|
111
121
|
end
|
|
112
122
|
end
|
|
@@ -194,9 +194,14 @@ module Asciidoctor
|
|
|
194
194
|
end.join("\n")
|
|
195
195
|
end
|
|
196
196
|
|
|
197
|
-
def
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
def global_bibliocache_name
|
|
198
|
+
"#{Dir.home}/.relaton/cache"
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
def local_bibliocache_name(cachename)
|
|
202
|
+
return nil if cachename.nil?
|
|
203
|
+
cachename = "relaton" if cachename.empty?
|
|
204
|
+
"#{cachename}/cache"
|
|
200
205
|
end
|
|
201
206
|
|
|
202
207
|
def ievcache_name(global)
|
|
@@ -56,6 +56,8 @@ module Asciidoctor
|
|
|
56
56
|
elsif @biblio then bibliography_parse(a, xml, node)
|
|
57
57
|
elsif node.attr("style") == "bibliography" && node.level == 1
|
|
58
58
|
bibliography_parse(a, xml, node)
|
|
59
|
+
elsif node.attr("style") == "abstract"
|
|
60
|
+
abstract_parse(a, xml, node)
|
|
59
61
|
elsif node.attr("style") == "appendix" && node.level == 1
|
|
60
62
|
annex_parse(a, xml, node)
|
|
61
63
|
else
|
|
@@ -75,6 +77,12 @@ module Asciidoctor
|
|
|
75
77
|
end
|
|
76
78
|
end
|
|
77
79
|
|
|
80
|
+
def abstract_parse(attrs, xml, node)
|
|
81
|
+
xml.abstract **attr_code(attrs) do |xml_section|
|
|
82
|
+
xml_section << node.content
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
78
86
|
def clause_parse(attrs, xml, node)
|
|
79
87
|
attrs["inline-header".to_sym] = node.option? "inline-header"
|
|
80
88
|
attrs[:level] = node.attr("level")
|
|
@@ -155,7 +155,7 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
it "processes complex metadata" do
|
|
158
|
-
expect(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).to be_equivalent_to <<~'OUTPUT'
|
|
158
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).sub(%r{</bibdata>.*$}m, "</bibdata>")).to be_equivalent_to <<~'OUTPUT'
|
|
159
159
|
= Document title
|
|
160
160
|
Author
|
|
161
161
|
:docfile: test.adoc
|
|
@@ -173,6 +173,12 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
173
173
|
:pdf-uri: D
|
|
174
174
|
:doc-uri: E
|
|
175
175
|
:relaton-uri: F
|
|
176
|
+
|
|
177
|
+
[abstract]
|
|
178
|
+
== Abstract
|
|
179
|
+
This is the abstract of the document
|
|
180
|
+
|
|
181
|
+
This is the second paragraph of the abstract of the document.
|
|
176
182
|
INPUT
|
|
177
183
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
178
184
|
<standard-document xmlns="http://riboseinc.com/isoxml">
|
|
@@ -223,6 +229,8 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
223
229
|
</contributor>
|
|
224
230
|
<language>el</language>
|
|
225
231
|
<script>Grek</script>
|
|
232
|
+
<abstract><p id="_">This is the abstract of the document</p>
|
|
233
|
+
<p id="_">This is the second paragraph of the abstract of the document.</p></abstract>
|
|
226
234
|
<status format="plain">published</status>
|
|
227
235
|
<copyright>
|
|
228
236
|
<from>2018</from>
|
|
@@ -252,8 +260,6 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
252
260
|
<technical-committee/>
|
|
253
261
|
</editorialgroup>
|
|
254
262
|
</bibdata>
|
|
255
|
-
<sections/>
|
|
256
|
-
</standard-document>
|
|
257
263
|
OUTPUT
|
|
258
264
|
end
|
|
259
265
|
|
|
@@ -808,10 +808,10 @@ r = 1 %</stem>
|
|
|
808
808
|
|
|
809
809
|
it "separates IEV citations by top-level clause" do
|
|
810
810
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
811
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
811
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
812
812
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
|
813
813
|
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
|
814
|
-
FileUtils.rm_rf "
|
|
814
|
+
FileUtils.rm_rf "relaton/cache"
|
|
815
815
|
FileUtils.rm_rf "test.iev.pstore"
|
|
816
816
|
# mock_iecbib_get_iec60050_102_01
|
|
817
817
|
# mock_iecbib_get_iec60050_103_01
|
|
@@ -961,8 +961,8 @@ r = 1 %</stem>
|
|
|
961
961
|
end
|
|
962
962
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
|
963
963
|
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
|
964
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
965
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
964
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
965
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
966
966
|
end
|
|
967
967
|
|
|
968
968
|
private
|
|
@@ -4,6 +4,15 @@ require "fileutils"
|
|
|
4
4
|
|
|
5
5
|
RSpec.describe Asciidoctor::Standoc do
|
|
6
6
|
|
|
7
|
+
IETF_123_SHORT = <<~EOS
|
|
8
|
+
<bibitem type="international-standard" id="IETF123">
|
|
9
|
+
<title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title>
|
|
10
|
+
<docidentifier type="IETF">RFC 123</docidentifier>
|
|
11
|
+
<contributor> <role type="publisher"/> <organization> <name>International Organization for Standardization</name> <abbreviation>ISO</abbreviation> <uri>www.iso.org</uri> </organization> </contributor>
|
|
12
|
+
<status>Published</status>
|
|
13
|
+
</bibitem>
|
|
14
|
+
EOS
|
|
15
|
+
|
|
7
16
|
ISO_123_SHORT = <<~EOS
|
|
8
17
|
<bibitem type="international-standard" id="ISO123">
|
|
9
18
|
<title format="text/plain" language="en" script="Latn">Rubber latex -- Sampling</title>
|
|
@@ -58,10 +67,10 @@ EOS
|
|
|
58
67
|
|
|
59
68
|
it "does not activate biblio caches if isobib disabled" do
|
|
60
69
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
61
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
70
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
62
71
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
|
63
72
|
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
|
64
|
-
FileUtils.rm_rf "
|
|
73
|
+
FileUtils.rm_rf "relaton/cache"
|
|
65
74
|
FileUtils.rm_rf "test.iev.pstore"
|
|
66
75
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
67
76
|
#{ASCIIDOC_BLANK_HDR}
|
|
@@ -70,23 +79,23 @@ EOS
|
|
|
70
79
|
|
|
71
80
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
72
81
|
INPUT
|
|
73
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
82
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be false
|
|
74
83
|
expect(File.exist?("#{Dir.home}/.iev.pstore")).to be false
|
|
75
|
-
expect(File.exist?("
|
|
84
|
+
expect(File.exist?("relaton/cache")).to be false
|
|
76
85
|
expect(File.exist?("test.iev.pstore")).to be false
|
|
77
86
|
|
|
78
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
79
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
87
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
88
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
80
89
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
|
81
90
|
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
|
82
91
|
end
|
|
83
92
|
|
|
84
93
|
it "does not activate biblio caches if isobib caching disabled" do
|
|
85
94
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
86
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
95
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
87
96
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore1")
|
|
88
97
|
FileUtils.mv File.expand_path("~/.iev.pstore"), File.expand_path("~/.iev.pstore1"), force: true
|
|
89
|
-
FileUtils.rm_rf "
|
|
98
|
+
FileUtils.rm_rf "relaton/cache"
|
|
90
99
|
FileUtils.rm_rf "test.iev.pstore"
|
|
91
100
|
mock_isobib_get_123
|
|
92
101
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
@@ -96,19 +105,19 @@ EOS
|
|
|
96
105
|
|
|
97
106
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
98
107
|
INPUT
|
|
99
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
108
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be false
|
|
100
109
|
expect(File.exist?("#{Dir.home}/.iev.pstore")).to be false
|
|
101
|
-
expect(File.exist?("
|
|
110
|
+
expect(File.exist?("relaton/cache")).to be false
|
|
102
111
|
expect(File.exist?("test.iev.pstore")).to be false
|
|
103
112
|
|
|
104
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
113
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
105
114
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
|
106
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
115
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
107
116
|
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
|
108
117
|
end
|
|
109
118
|
|
|
110
119
|
it "flushes biblio caches" do
|
|
111
|
-
relaton_bib_file = File.expand_path("~/.relaton
|
|
120
|
+
relaton_bib_file = File.expand_path("~/.relaton/cache")
|
|
112
121
|
relaton_bib_file1 = File.expand_path("~/.relaton-bib.pstore1")
|
|
113
122
|
iev_file = File.expand_path("~/.iev.pstore")
|
|
114
123
|
iev_file1 = File.expand_path("~/.iev.pstore1")
|
|
@@ -117,7 +126,7 @@ EOS
|
|
|
117
126
|
FileUtils.rm_rf iev_file1 if File.exist? iev_file1
|
|
118
127
|
FileUtils.mv iev_file, iev_file1 if File.exist? iev_file
|
|
119
128
|
|
|
120
|
-
File.open("#{Dir.home}/.relaton
|
|
129
|
+
File.open("#{Dir.home}/.relaton/cache", "w") { |f| f.write "XXX" }
|
|
121
130
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
|
122
131
|
|
|
123
132
|
# mock_isobib_get_123
|
|
@@ -130,23 +139,23 @@ EOS
|
|
|
130
139
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
131
140
|
INPUT
|
|
132
141
|
end
|
|
133
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
142
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
|
134
143
|
expect(File.exist?("#{Dir.home}/.iev.pstore")).to be true
|
|
135
144
|
|
|
136
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
145
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
137
146
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
138
147
|
expect(db.fetched("ISO(ISO 123:2001)")).to eq(Date.today.to_s)
|
|
139
148
|
expect(entry).to be_equivalent_to(ISO_123_DATED)
|
|
140
149
|
|
|
141
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
150
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
142
151
|
FileUtils.rm_rf File.expand_path("~/.iev.pstore")
|
|
143
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
152
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
144
153
|
FileUtils.mv File.expand_path("~/.iev.pstore1"), File.expand_path("~/.iev.pstore"), force: true
|
|
145
154
|
end
|
|
146
155
|
|
|
147
156
|
it "does not fetch references for ISO references in preparation" do
|
|
148
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
149
|
-
FileUtils.
|
|
157
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
158
|
+
FileUtils.rm_rf "relaton/cache"
|
|
150
159
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
151
160
|
#{CACHED_ISOBIB_BLANK_HDR}
|
|
152
161
|
[bibliography]
|
|
@@ -154,40 +163,71 @@ EOS
|
|
|
154
163
|
|
|
155
164
|
* [[[iso123,ISO 123:--]]] footnote:[The standard is in press] _Standard_
|
|
156
165
|
INPUT
|
|
157
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
158
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
166
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
|
167
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
159
168
|
entry = db.load_entry("ISO(ISO 123:--)")
|
|
160
169
|
expect(entry).to be nil
|
|
161
170
|
|
|
162
|
-
FileUtils.
|
|
163
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
171
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
172
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
164
173
|
end
|
|
165
174
|
|
|
166
|
-
it "
|
|
167
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
168
|
-
FileUtils.
|
|
175
|
+
it "inserts prefixes to fetched reference identifiers other than ISO IEC" do
|
|
176
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
177
|
+
FileUtils.rm_rf "relaton/cache"
|
|
169
178
|
mock_isobib_get_123
|
|
170
|
-
|
|
179
|
+
mock_ietfbib_get_123
|
|
180
|
+
out = Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
171
181
|
#{CACHED_ISOBIB_BLANK_HDR}
|
|
182
|
+
|
|
183
|
+
<<iso123>>
|
|
184
|
+
<<ietf123>>
|
|
185
|
+
|
|
172
186
|
[bibliography]
|
|
173
187
|
== Normative References
|
|
174
188
|
|
|
175
189
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
190
|
+
* [[[ietf123,RFC 123]]] _Standard_
|
|
176
191
|
INPUT
|
|
177
|
-
|
|
178
|
-
|
|
192
|
+
expect(out).to include '<eref type="inline" bibitemid="iso123" citeas="ISO 123:2001"/>'
|
|
193
|
+
expect(out).to include '<eref type="inline" bibitemid="ietf123" citeas="IETF RFC 123"/>'
|
|
194
|
+
end
|
|
195
|
+
|
|
196
|
+
it "activates global cache" do
|
|
197
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
198
|
+
FileUtils.rm_rf "relaton/cache"
|
|
199
|
+
VCR.use_cassette "isobib_get_123" do
|
|
200
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
201
|
+
#{CACHED_ISOBIB_BLANK_HDR}
|
|
202
|
+
[bibliography]
|
|
203
|
+
== Normative References
|
|
204
|
+
|
|
205
|
+
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
206
|
+
INPUT
|
|
207
|
+
end
|
|
179
208
|
|
|
180
|
-
|
|
209
|
+
#mock_isobib_get_123
|
|
210
|
+
#Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
211
|
+
##{CACHED_ISOBIB_BLANK_HDR}
|
|
212
|
+
#[bibliography]
|
|
213
|
+
#== Normative References
|
|
214
|
+
#
|
|
215
|
+
#* [[[iso123,ISO 123:2001]]] _Standard_
|
|
216
|
+
#INPUT
|
|
217
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
|
218
|
+
expect(File.exist?("relaton/cache")).to be false
|
|
219
|
+
|
|
220
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
181
221
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
182
222
|
expect(entry).to_not be nil
|
|
183
223
|
|
|
184
|
-
FileUtils.
|
|
185
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
224
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
225
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
186
226
|
end
|
|
187
227
|
|
|
188
228
|
it "activates local cache" do
|
|
189
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
190
|
-
FileUtils.
|
|
229
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
230
|
+
FileUtils.rm_rf "relaton/cache"
|
|
191
231
|
mock_isobib_get_123
|
|
192
232
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
193
233
|
#{LOCAL_CACHED_ISOBIB_BLANK_HDR}
|
|
@@ -196,27 +236,54 @@ EOS
|
|
|
196
236
|
|
|
197
237
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
198
238
|
INPUT
|
|
199
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
200
|
-
expect(File.exist?("
|
|
239
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be true
|
|
240
|
+
expect(File.exist?("relaton/cache")).to be true
|
|
241
|
+
|
|
242
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
243
|
+
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
244
|
+
expect(entry).to_not be nil
|
|
201
245
|
|
|
202
|
-
db = Relaton::Db.new "
|
|
246
|
+
db = Relaton::Db.new "relaton/cache", nil
|
|
203
247
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
204
248
|
expect(entry).to_not be nil
|
|
205
249
|
|
|
206
|
-
|
|
250
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
251
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
252
|
+
end
|
|
253
|
+
|
|
254
|
+
it "renames local cache" do
|
|
255
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
256
|
+
FileUtils.rm_rf "test/cache"
|
|
257
|
+
mock_isobib_get_123
|
|
258
|
+
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
259
|
+
= Document title
|
|
260
|
+
Author
|
|
261
|
+
:docfile: test.adoc
|
|
262
|
+
:nodoc:
|
|
263
|
+
:novalid:
|
|
264
|
+
:local-cache: test
|
|
265
|
+
|
|
266
|
+
[bibliography]
|
|
267
|
+
== Normative References
|
|
268
|
+
|
|
269
|
+
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
270
|
+
INPUT
|
|
271
|
+
expect(File.exist?("test/cache")).to be true
|
|
272
|
+
|
|
273
|
+
db = Relaton::Db.new "test/cache", nil
|
|
207
274
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
208
275
|
expect(entry).to_not be nil
|
|
209
276
|
|
|
210
|
-
FileUtils.
|
|
211
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
277
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
278
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
212
279
|
end
|
|
213
280
|
|
|
214
281
|
it "activates only local cache" do
|
|
215
|
-
relaton_bib_file = File.expand_path("~/.relaton
|
|
282
|
+
relaton_bib_file = File.expand_path("~/.relaton/cache")
|
|
216
283
|
relaton_bib_file1 = File.expand_path("~/.relaton-bib.pstore1")
|
|
217
284
|
FileUtils.rm_rf relaton_bib_file1 if File.exist? relaton_bib_file1
|
|
218
285
|
FileUtils.mv(relaton_bib_file, relaton_bib_file1, force: true) if File.exist? relaton_bib_file
|
|
219
|
-
FileUtils.rm_rf "
|
|
286
|
+
FileUtils.rm_rf "relaton/cache"
|
|
220
287
|
mock_isobib_get_123
|
|
221
288
|
Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
|
|
222
289
|
#{LOCAL_ONLY_CACHED_ISOBIB_BLANK_HDR}
|
|
@@ -225,19 +292,19 @@ EOS
|
|
|
225
292
|
|
|
226
293
|
* [[[iso123,ISO 123:2001]]] _Standard_
|
|
227
294
|
INPUT
|
|
228
|
-
expect(File.exist?("#{Dir.home}/.relaton
|
|
229
|
-
expect(File.exist?("
|
|
295
|
+
expect(File.exist?("#{Dir.home}/.relaton/cache")).to be false
|
|
296
|
+
expect(File.exist?("relaton/cache")).to be true
|
|
230
297
|
|
|
231
|
-
db = Relaton::Db.new "
|
|
298
|
+
db = Relaton::Db.new "relaton/cache", nil
|
|
232
299
|
entry = db.load_entry("ISO(ISO 123:2001)")
|
|
233
300
|
expect(entry).to_not be nil
|
|
234
301
|
|
|
235
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
302
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
236
303
|
end
|
|
237
304
|
|
|
238
305
|
it "fetches uncached references" do
|
|
239
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
240
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
306
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
307
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
241
308
|
db.save_entry("ISO(ISO 123:2001)",
|
|
242
309
|
{
|
|
243
310
|
"fetched" => Date.today.to_s,
|
|
@@ -264,16 +331,15 @@ EOS
|
|
|
264
331
|
expect(db.fetched("ISO(ISO 124:2014)")).to eq(Date.today.to_s)
|
|
265
332
|
expect(entry).to be_equivalent_to(ISO_124_DATED)
|
|
266
333
|
|
|
267
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
268
|
-
FileUtils.
|
|
269
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton-bib.pstore"), force: true
|
|
334
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
335
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
270
336
|
end
|
|
271
337
|
|
|
272
338
|
it "expires stale undated references" do
|
|
273
339
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
274
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
340
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
275
341
|
|
|
276
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
342
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
277
343
|
db.save_entry("ISO 123",
|
|
278
344
|
{
|
|
279
345
|
"fetched" => (Date.today - 90),
|
|
@@ -296,18 +362,18 @@ EOS
|
|
|
296
362
|
expect(db.fetched("ISO(ISO 123)")).to eq(Date.today.to_s)
|
|
297
363
|
expect(entry).to be_equivalent_to(ISO_123_UNDATED)
|
|
298
364
|
|
|
299
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
300
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
365
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
366
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
301
367
|
end
|
|
302
368
|
|
|
303
369
|
it "does not expire stale dated references" do
|
|
304
370
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
305
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
371
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
306
372
|
|
|
307
373
|
bibitem = IsoBibItem::XMLParser.from_xml ISO_123_DATED
|
|
308
374
|
bibitem.instance_variable_set :@fetched, (Date.today - 90)
|
|
309
375
|
|
|
310
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
376
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
311
377
|
db.save_entry("ISO(ISO 123:2001)", bibitem.to_xml)
|
|
312
378
|
# {
|
|
313
379
|
# "fetched" => (Date.today - 90),
|
|
@@ -327,16 +393,16 @@ EOS
|
|
|
327
393
|
expect(db.fetched("ISO(ISO 123:2001)")).to eq((Date.today - 90).to_s)
|
|
328
394
|
# expect(entry).to be_equivalent_to(ISO_123_DATED) It can't be true since fetched date is changed
|
|
329
395
|
|
|
330
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
331
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
396
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
397
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
332
398
|
end
|
|
333
399
|
|
|
334
400
|
it "prioritises local over global cache values" do
|
|
335
401
|
FileUtils.rm_rf File.expand_path("~/.relaton-bib.pstore1")
|
|
336
|
-
FileUtils.mv File.expand_path("~/.relaton
|
|
337
|
-
FileUtils.rm_rf "
|
|
402
|
+
FileUtils.mv File.expand_path("~/.relaton/cache"), File.expand_path("~/.relaton-bib.pstore1"), force: true
|
|
403
|
+
FileUtils.rm_rf "relaton/cache"
|
|
338
404
|
|
|
339
|
-
db = Relaton::Db.new "#{Dir.home}/.relaton
|
|
405
|
+
db = Relaton::Db.new "#{Dir.home}/.relaton/cache", nil
|
|
340
406
|
db.save_entry("ISO(ISO 123:2001)", IsoBibItem::XMLParser.from_xml(ISO_123_DATED).to_xml)
|
|
341
407
|
# {
|
|
342
408
|
# "fetched" => Date.today,
|
|
@@ -350,7 +416,7 @@ EOS
|
|
|
350
416
|
# }
|
|
351
417
|
# )
|
|
352
418
|
|
|
353
|
-
localdb = Relaton::Db.new "
|
|
419
|
+
localdb = Relaton::Db.new "relaton/cache", nil
|
|
354
420
|
localdb.save_entry("ISO(ISO 124)", IsoBibItem::XMLParser.from_xml(ISO_124_SHORT_ALT).to_xml)
|
|
355
421
|
# {
|
|
356
422
|
# "fetched" => Date.today,
|
|
@@ -388,8 +454,8 @@ EOS
|
|
|
388
454
|
expect(localdb.load_entry("ISO(ISO 123:2001)")).to be_equivalent_to(ISO_123_DATED)
|
|
389
455
|
expect(localdb.load_entry("ISO(ISO 124)")).to be_equivalent_to(ISO_124_SHORT_ALT)
|
|
390
456
|
|
|
391
|
-
FileUtils.rm_rf File.expand_path("~/.relaton
|
|
392
|
-
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton
|
|
457
|
+
FileUtils.rm_rf File.expand_path("~/.relaton/cache")
|
|
458
|
+
FileUtils.mv File.expand_path("~/.relaton-bib.pstore1"), File.expand_path("~/.relaton/cache"), force: true
|
|
393
459
|
end
|
|
394
460
|
|
|
395
461
|
private
|
|
@@ -406,4 +472,8 @@ private
|
|
|
406
472
|
expect(Isobib::IsoBibliography).to receive(:get).with("ISO 124", "2014", {}).and_return(IsoBibItem::XMLParser.from_xml(ISO_124_DATED))
|
|
407
473
|
end
|
|
408
474
|
|
|
475
|
+
def mock_ietfbib_get_123
|
|
476
|
+
expect(IETFBib::RfcBibliography).to receive(:get).with("RFC 123", nil, {}).and_return(IsoBibItem::XMLParser.from_xml(IETF_123_SHORT))
|
|
477
|
+
end
|
|
478
|
+
|
|
409
479
|
end
|
|
@@ -2,12 +2,17 @@ require "spec_helper"
|
|
|
2
2
|
|
|
3
3
|
RSpec.describe Asciidoctor::Standoc do
|
|
4
4
|
it "processes sections" do
|
|
5
|
-
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
|
5
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).sub(/^.*<preface/m, "<preface")).to be_equivalent_to <<~"OUTPUT"
|
|
6
6
|
#{ASCIIDOC_BLANK_HDR}
|
|
7
7
|
.Foreword
|
|
8
8
|
|
|
9
9
|
Text
|
|
10
10
|
|
|
11
|
+
[abstract]
|
|
12
|
+
== Abstract
|
|
13
|
+
|
|
14
|
+
Text
|
|
15
|
+
|
|
11
16
|
== Introduction
|
|
12
17
|
|
|
13
18
|
=== Introduction Subsection
|
|
@@ -52,8 +57,9 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
52
57
|
|
|
53
58
|
=== Bibliography Subsection
|
|
54
59
|
INPUT
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
<preface><abstract id="_">
|
|
61
|
+
<p id="_">Text</p>
|
|
62
|
+
</abstract><foreword obligation="informative">
|
|
57
63
|
<title>Foreword</title>
|
|
58
64
|
<p id="_">Text</p>
|
|
59
65
|
</foreword><introduction id="_" obligation="informative">
|
|
@@ -113,12 +119,17 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
113
119
|
end
|
|
114
120
|
|
|
115
121
|
it "processes sections with title attributes" do
|
|
116
|
-
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
|
|
122
|
+
expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).sub(/^.*<preface/m, "<preface")).to be_equivalent_to <<~"OUTPUT"
|
|
117
123
|
#{ASCIIDOC_BLANK_HDR}
|
|
118
124
|
.Foreword
|
|
119
125
|
|
|
120
126
|
Text
|
|
121
127
|
|
|
128
|
+
[abstract]
|
|
129
|
+
== Περίληψη
|
|
130
|
+
|
|
131
|
+
Text
|
|
132
|
+
|
|
122
133
|
[heading=introduction]
|
|
123
134
|
== Εισαγωγή
|
|
124
135
|
|
|
@@ -161,8 +172,9 @@ RSpec.describe Asciidoctor::Standoc do
|
|
|
161
172
|
|
|
162
173
|
=== Bibliography Subsection
|
|
163
174
|
INPUT
|
|
164
|
-
|
|
165
|
-
|
|
175
|
+
<preface><abstract id="_">
|
|
176
|
+
<p id="_">Text</p>
|
|
177
|
+
</abstract>
|
|
166
178
|
<foreword obligation="informative">
|
|
167
179
|
<title>Foreword</title>
|
|
168
180
|
<p id="_">Text</p>
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: metanorma-standoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.10
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2018-11-
|
|
11
|
+
date: 2018-11-19 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: asciidoctor
|