metanorma-standoc 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2d24163148b41a8a3c621702cdb69448ccf743108e18ce07e65998a22636104
4
- data.tar.gz: def7d200d381364df0276e4c00870e9871ff95b6e85c508886b71053a3ef015b
3
+ metadata.gz: df3bc5fdf41e7916256d3f763868f63c5bd8fe02365db0fe5d37d1efcaedda7e
4
+ data.tar.gz: 051d1a4cb3849e2b843feb62290f557d3ef07182a23699c4bbc1312345f1d143
5
5
  SHA512:
6
- metadata.gz: 13ea1f25bdf8b753740c247f9bfb5613d00690243db0a903d3988bd1d80f20978b9c702cb4212ac83903b00a09e4fbba447d65931cb6255f3b729a7984e51ade
7
- data.tar.gz: 2d18df9ae5a96c50bcd5fdea904d1a79aece6c8440d3e7a69e944b68431f69c7b33723a84d7920366806164063cdc7f627592e6ea07e1dda680dc951842b1a3e
6
+ metadata.gz: 2f7c94c8c0a8e81a9b064e4e679fcb2b48801a991d2d75aa852870a596879b0d9c4b9090c63fb03c789a712a2a2cf5de85ea92699318f91773236533dfc48a6d
7
+ data.tar.gz: ffac3ee6a7820406d9a138839e65e3e57cc073298335930999040ac7ba71c2e5126b94f99e94fcde403669a2edc95818de440d5eaebf63412c09acce39c923b8
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metanorma-standoc (1.0.11)
4
+ metanorma-standoc (1.0.12)
5
5
  asciidoctor (~> 1.5.7)
6
6
  concurrent-ruby
7
7
  iev (~> 0.2.0)
@@ -15,7 +15,7 @@ GEM
15
15
  specs:
16
16
  addressable (2.5.2)
17
17
  public_suffix (>= 2.0.2, < 4.0)
18
- algoliasearch (1.23.2)
18
+ algoliasearch (1.24.0)
19
19
  httpclient (~> 2.8, >= 2.8.3)
20
20
  json (>= 1.5.1)
21
21
  asciidoctor (1.5.8)
@@ -34,7 +34,7 @@ GEM
34
34
  ffi (1.9.25)
35
35
  formatador (0.2.5)
36
36
  gb-agencies (0.0.5)
37
- gbbib (0.4.2)
37
+ gbbib (0.4.3)
38
38
  cnccs (~> 0.1.1)
39
39
  gb-agencies (~> 0.0.1)
40
40
  iso-bib-item (~> 0.4.2)
@@ -64,10 +64,10 @@ GEM
64
64
  uuidtools
65
65
  htmlentities (4.3.4)
66
66
  httpclient (2.8.3)
67
- iecbib (0.2.1)
67
+ iecbib (0.2.2)
68
68
  addressable
69
69
  iso-bib-item (~> 0.4.2)
70
- ietfbib (0.4.3)
70
+ ietfbib (0.4.5)
71
71
  iso-bib-item (~> 0.4.2)
72
72
  iev (0.2.0)
73
73
  nokogiri
@@ -76,11 +76,11 @@ GEM
76
76
  isoics (~> 0.1.6)
77
77
  nokogiri (~> 1.8.4)
78
78
  ruby_deep_clone (~> 0.8.0)
79
- isobib (0.4.1)
79
+ isobib (0.4.2)
80
80
  algoliasearch
81
81
  iecbib (~> 0.2.1)
82
82
  iso-bib-item (~> 0.4.2)
83
- isodoc (0.9.11)
83
+ isodoc (0.9.12)
84
84
  asciimath
85
85
  html2doc (~> 0.8.6)
86
86
  htmlentities (~> 4.3.4)
@@ -94,7 +94,6 @@ GEM
94
94
  thread_safe
95
95
  uuidtools
96
96
  isoics (0.1.7)
97
- jaro_winkler (1.5.1)
98
97
  json (2.1.0)
99
98
  liquid (4.0.1)
100
99
  listen (3.1.5)
@@ -102,7 +101,8 @@ GEM
102
101
  rb-inotify (~> 0.9, >= 0.9.7)
103
102
  ruby_dep (~> 1.2)
104
103
  lumberjack (1.0.13)
105
- metanorma (0.3.2)
104
+ metanorma (0.3.5)
105
+ asciidoctor
106
106
  method_source (0.9.2)
107
107
  mime-types (3.2.2)
108
108
  mime-types-data (~> 3.2015)
@@ -124,7 +124,7 @@ GEM
124
124
  method_source (~> 0.9.0)
125
125
  public_suffix (3.0.3)
126
126
  rainbow (3.0.0)
127
- rake (12.3.1)
127
+ rake (12.3.2)
128
128
  rb-fsevent (0.10.3)
129
129
  rb-inotify (0.9.10)
130
130
  ffi (>= 0.5.0, < 2)
@@ -149,14 +149,13 @@ GEM
149
149
  diff-lcs (>= 1.2.0, < 2.0)
150
150
  rspec-support (~> 3.8.0)
151
151
  rspec-support (3.8.0)
152
- rubocop (0.60.0)
153
- jaro_winkler (~> 1.5.1)
152
+ rubocop (0.54.0)
154
153
  parallel (~> 1.10)
155
- parser (>= 2.5, != 2.5.1.1)
154
+ parser (>= 2.5)
156
155
  powerpack (~> 0.1)
157
156
  rainbow (>= 2.2.2, < 4.0)
158
157
  ruby-progressbar (~> 1.7)
159
- unicode-display_width (~> 1.4.0)
158
+ unicode-display_width (~> 1.0, >= 1.0.1)
160
159
  ruby-jing (0.0.1)
161
160
  optout (>= 0.0.2)
162
161
  ruby-progressbar (1.10.0)
@@ -204,7 +203,7 @@ DEPENDENCIES
204
203
  metanorma-standoc!
205
204
  rake (~> 12.0)
206
205
  rspec (~> 3.6)
207
- rubocop (~> 0.50)
206
+ rubocop (= 0.54.0)
208
207
  simplecov (~> 0.15)
209
208
  timecop (~> 0.9)
210
209
  vcr
data/README.adoc CHANGED
@@ -577,7 +577,8 @@ the document was issued
577
577
 
578
578
  `:library-ics:` :: The ICS (International Categorization for Standards) number for the standard. There may be more than one ICS for a document; if so, they should be comma-delimited. (The ics identifier is added to the document metadata, but is not output to the current document templates.)
579
579
 
580
- `:title:` :: The title of the document
580
+ `:title:` :: The title of the document. If not supplied, the built-in Asciidoctor title (first line of document header) is used instead.
581
+ `:title-XX:` :: The title of the document in the language `XX` (presumed to be a ISO 639-1 code).
581
582
 
582
583
  `:doctype:`:: The document type; e.g. "standard", "guide", "report".
583
584
 
@@ -667,7 +668,14 @@ which adheres with ISO formatting requirements. Recommend against overriding thi
667
668
 
668
669
  `:olstyle`:: Word CSS selector for ordered lists in supplied stylesheets. Defaults to value for built in stylesheet. Recommend against overriding this.
669
670
 
670
- `:data-uri-image`:: Encode all images in HTML output as inline data-URIs.
671
+ `:data-uri-image`:: Encode all images in HTML output as inline data-URIs. Defaults to true.
672
+
673
+ `:smartquotes`:: Apply smartquotes and other autoformatting to the XML output (and hence the downstream outputs)
674
+ (default true). The rules for
675
+ smart formatting follow the https://github.com/pbhogan/sterile[sterile] gem, and are given in
676
+ https://github.com/pbhogan/sterile/blob/master/lib/sterile/data/smart_format_rules.rb. If `:smartquotes:`
677
+ is set to `false`, then the Asciidoctor default is used to generate smart quotes: `"&#x060; &#x060;"`, `'&#x060; &#x060;'`.
678
+
671
679
 
672
680
  The attribute `:draft:`, if present, includes review notes in the XML output;
673
681
  these are otherwise suppressed.
@@ -81,6 +81,7 @@ module Asciidoctor
81
81
  @anchors = {}
82
82
  @draft = node.attributes.has_key?("draft")
83
83
  @novalid = node.attr("novalid")
84
+ @smartquotes = node.attr("smartquotes") != "false"
84
85
  @fontheader = default_fonts(node)
85
86
  @files_to_delete = []
86
87
  @filename = node.attr("docfile") ?
@@ -169,7 +170,6 @@ module Asciidoctor
169
170
  xml.bibdata **attr_code(type: doctype(node)) do |b|
170
171
  metadata node, b
171
172
  end
172
- metadata_version(node, xml)
173
173
  end
174
174
 
175
175
  def middle(node, xml)
@@ -20,7 +20,12 @@ module Asciidoctor
20
20
  end
21
21
 
22
22
  def literal(node)
23
- paragraph(node)
23
+ noko do |xml|
24
+ xml.figure **id_attr(node) do |f|
25
+ figure_title(node, f)
26
+ f.pre node.lines.join("\n"), **{ id: Utils::anchor_or_uuid }
27
+ end
28
+ end
24
29
  end
25
30
 
26
31
  # NOTE: html escaping is performed by Nokogiri
@@ -40,6 +40,17 @@ module Asciidoctor
40
40
  script_cleanup(xmldoc)
41
41
  docidentifier_cleanup(xmldoc)
42
42
  bookmark_cleanup(xmldoc)
43
+ smartquotes_cleanup(xmldoc)
44
+ xmldoc
45
+ end
46
+
47
+ def smartquotes_cleanup(xmldoc)
48
+ return unless @smartquotes
49
+ xmldoc.traverse do |n|
50
+ next unless n.text?
51
+ next unless n.ancestors("pre, tt, sourcecode, bibdata").empty?
52
+ n.replace(Utils::smartformat(n.text))
53
+ end
43
54
  xmldoc
44
55
  end
45
56
 
@@ -19,8 +19,8 @@ module Asciidoctor
19
19
  end
20
20
 
21
21
  def metadata_version(node, xml)
22
+ xml.edition node.attr("edition") if node.attr("edition")
22
23
  xml.version do |v|
23
- v.edition node.attr("edition") if node.attr("edition")
24
24
  v.revision_date node.attr("revdate") if node.attr("revdate")
25
25
  v.draft node.attr("draft") if node.attr("draft")
26
26
  end
@@ -113,7 +113,7 @@ module Asciidoctor
113
113
  end
114
114
 
115
115
  DATETYPES = %w{ published accessed created implemented obsoleted
116
- confirmed updated issued circulated unchanged
116
+ confirmed updated issued circulated unchanged received
117
117
  }.freeze
118
118
 
119
119
  def metadata_date(node, xml)
@@ -128,15 +128,24 @@ module Asciidoctor
128
128
  end
129
129
  end
130
130
 
131
+ def metadata_language(node, xml)
132
+ xml.language (node.attr("language") || "en")
133
+ end
134
+
135
+ def metadata_script(node, xml)
136
+ xml.script (node.attr("script") || "Latn")
137
+ end
138
+
131
139
  def metadata(node, xml)
132
140
  title node, xml
133
141
  metadata_source(node, xml)
134
142
  metadata_id(node, xml)
135
143
  metadata_date(node, xml)
144
+ metadata_version(node, xml)
136
145
  metadata_author(node, xml)
137
146
  metadata_publisher(node, xml)
138
- xml.language (node.attr("language") || "en")
139
- xml.script (node.attr("script") || "Latn")
147
+ metadata_language(node, xml)
148
+ metadata_script(node, xml)
140
149
  metadata_status(node, xml)
141
150
  metadata_copyright(node, xml)
142
151
  metadata_committee(node, xml)
@@ -152,13 +161,26 @@ module Asciidoctor
152
161
  end
153
162
 
154
163
  def title(node, xml)
164
+ title_english(node, xml)
165
+ title_otherlangs(node, xml)
166
+ end
167
+
168
+ def title_english(node, xml)
155
169
  ["en"].each do |lang|
156
170
  at = { language: lang, format: "text/plain" }
157
171
  xml.title **attr_code(at) do |t|
158
- t << asciidoc_sub(node.attr("title"))
172
+ t << asciidoc_sub(node.attr("title") || node.attr("title-en") || node.title)
159
173
  end
160
174
  end
161
175
  end
176
+
177
+ def title_otherlangs(node, xml)
178
+ node.attributes.each do |k, v|
179
+ next unless /^title-(?<titlelang>.+)$/ =~ k
180
+ next if titlelang == "en"
181
+ xml.title v, { language: titlelang, format: "text/plain" }
182
+ end
183
+ end
162
184
  end
163
185
  end
164
186
  end
@@ -384,6 +384,7 @@
384
384
  <ref name="sourcecode"/>
385
385
  <ref name="example"/>
386
386
  <ref name="review"/>
387
+ <ref name="pre"/>
387
388
  </choice>
388
389
  </define>
389
390
  <define name="paragraph">
@@ -540,6 +541,20 @@
540
541
  </zeroOrMore>
541
542
  </element>
542
543
  </define>
544
+ <define name="pre">
545
+ <element name="pre">
546
+ <attribute name="id">
547
+ <data type="ID"/>
548
+ </attribute>
549
+ <optional>
550
+ <ref name="tname"/>
551
+ </optional>
552
+ <text/>
553
+ <zeroOrMore>
554
+ <ref name="note"/>
555
+ </zeroOrMore>
556
+ </element>
557
+ </define>
543
558
  <define name="table">
544
559
  <element name="table">
545
560
  <attribute name="id">
@@ -710,6 +725,7 @@
710
725
  </optional>
711
726
  <choice>
712
727
  <ref name="image"/>
728
+ <ref name="pre"/>
713
729
  <zeroOrMore>
714
730
  <ref name="figure"/>
715
731
  </zeroOrMore>
@@ -735,6 +751,7 @@
735
751
  <ref name="sub"/>
736
752
  <ref name="sup"/>
737
753
  <ref name="tt"/>
754
+ <ref name="keyword"/>
738
755
  <ref name="strike"/>
739
756
  <ref name="smallcap"/>
740
757
  <ref name="xref"/>
@@ -765,6 +782,11 @@
765
782
  <text/>
766
783
  </element>
767
784
  </define>
785
+ <define name="keyword">
786
+ <element name="keyword">
787
+ <text/>
788
+ </element>
789
+ </define>
768
790
  <define name="sub">
769
791
  <element name="sub">
770
792
  <text/>
@@ -32,14 +32,17 @@ module Asciidoctor
32
32
  "??"
33
33
  end
34
34
 
35
+ def smartformat(n)
36
+ n.gsub(/ -- /, "&#8201;&#8212;&#8201;").
37
+ gsub(/--/, "&#8212;").smart_format
38
+ end
39
+
35
40
  def smart_render_xml(x)
36
41
  xstr = x.to_xml if x.respond_to? :to_xml
37
42
  xml = Nokogiri::XML(xstr)
38
43
  xml.traverse do |n|
39
44
  next unless n.text?
40
- n.replace(n.text.gsub(/ -- /, "&#8201;&#8212;&#8201;").
41
- gsub(/--/, "&#8212;").gsub(/\.\.\./, "&#8230;").
42
- smart_format)
45
+ n.replace(smartformat(n.text))
43
46
  end
44
47
  xml.to_xml.sub(/<\?[^>]+>/, "")
45
48
  end
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Standoc
3
- VERSION = "1.0.11".freeze
3
+ VERSION = "1.0.12".freeze
4
4
  end
5
5
  end
@@ -41,7 +41,7 @@ Gem::Specification.new do |spec|
41
41
  spec.add_development_dependency "guard-rspec", "~> 4.7"
42
42
  spec.add_development_dependency "rake", "~> 12.0"
43
43
  spec.add_development_dependency "rspec", "~> 3.6"
44
- spec.add_development_dependency "rubocop", "~> 0.50"
44
+ spec.add_development_dependency "rubocop", "= 0.54.0"
45
45
  spec.add_development_dependency "simplecov", "~> 0.15"
46
46
  spec.add_development_dependency "timecop", "~> 0.9"
47
47
  spec.add_development_dependency "metanorma", "~> 0.3.0"
@@ -125,6 +125,11 @@ RSpec.describe Asciidoctor::Standoc do
125
125
  <date type="Jack">
126
126
  <on>1010-01-01</on>
127
127
  </date>
128
+ <edition>2</edition>
129
+ <version>
130
+ <revision-date>2000-01-01</revision-date>
131
+ <draft>3.4</draft>
132
+ </version>
128
133
  <language>en</language>
129
134
  <script>Latn</script>
130
135
  <status format="plain">published</status>
@@ -144,11 +149,7 @@ RSpec.describe Asciidoctor::Standoc do
144
149
  <ics>
145
150
  <code>3</code>
146
151
  </ics>
147
- </bibdata><version>
148
- <edition>2</edition>
149
- <revision-date>2000-01-01</revision-date>
150
- <draft>3.4</draft>
151
- </version>
152
+ </bibdata>
152
153
  <sections/>
153
154
  </standard-document>
154
155
  OUTPUT
@@ -173,6 +174,7 @@ RSpec.describe Asciidoctor::Standoc do
173
174
  :pdf-uri: D
174
175
  :doc-uri: E
175
176
  :relaton-uri: F
177
+ :title-eo: Dokumenttitolo
176
178
 
177
179
  [abstract]
178
180
  == Abstract
@@ -183,6 +185,8 @@ RSpec.describe Asciidoctor::Standoc do
183
185
  <?xml version="1.0" encoding="UTF-8"?>
184
186
  <standard-document xmlns="http://riboseinc.com/isoxml">
185
187
  <bibdata type="article">
188
+ <title language="en" format="text/plain">Document title</title>
189
+ <title language="eo" format="text/plain">Dokumenttitolo</title>
186
190
  <source>A</source>
187
191
  <source type="xml">B</source>
188
192
  <source type="html">C</source>
@@ -91,10 +91,24 @@ RSpec.describe Asciidoctor::Standoc do
91
91
  For further information on the Foreword, see *ISO/IEC Directives, Part 2, 2016, Clause 12.*
92
92
  ****
93
93
  INPUT
94
- #{BLANK_HDR}
95
- <version>
96
- <draft>1.2</draft>
97
- </version>
94
+ <standard-document xmlns="http://riboseinc.com/isoxml">
95
+ <bibdata type="article">
96
+ <title language="en" format="text/plain">Document title</title>
97
+
98
+
99
+ <version>
100
+ <draft>1.2</draft>
101
+ </version>
102
+ <language>en</language>
103
+ <script>Latn</script>
104
+ <status format="plain">published</status>
105
+ <copyright>
106
+ <from>2018</from>
107
+ </copyright>
108
+ <editorialgroup>
109
+ <technical-committee/>
110
+ </editorialgroup>
111
+ </bibdata>
98
112
  <sections><p id="foreword">Foreword</p>
99
113
  <review reviewer="ISO" id="_" date="20170101T00:00:00Z" from="foreword" to="foreword"><p id="_">A Foreword shall appear in each document. The generic text is shown here. It does not contain requirements, recommendations or permissions.</p>
100
114
  <p id="_">For further information on the Foreword, see <strong>ISO/IEC Directives, Part 2, 2016, Clause 12.</strong></p></review></sections>
@@ -157,16 +171,18 @@ RSpec.describe Asciidoctor::Standoc do
157
171
  OUTPUT
158
172
  end
159
173
 
160
- it "does nothing in particular with literals" do
174
+ it "processes literals" do
161
175
  expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
162
176
  #{ASCIIDOC_BLANK_HDR}
163
177
  ....
164
- LITERAL
178
+ <LITERAL>
165
179
  ....
166
180
  INPUT
167
181
  #{BLANK_HDR}
168
182
  <sections>
169
- <p id="_">LITERAL</p>
183
+ <figure id="_">
184
+ <pre id="_">&lt;LITERAL&gt;</pre>
185
+ </figure>
170
186
  </sections>
171
187
  </standard-document>
172
188
 
@@ -3,6 +3,100 @@ require "iecbib"
3
3
  require "fileutils"
4
4
 
5
5
  RSpec.describe Asciidoctor::Standoc do
6
+ it "applies smartquotes by default" do
7
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
8
+ #{ASCIIDOC_BLANK_HDR}
9
+ == "Quotation"
10
+ INPUT
11
+ #{BLANK_HDR}
12
+ <sections>
13
+ <clause id="_" inline-header="false" obligation="normative">
14
+ <title>“Quotation”</title>
15
+ </clause>
16
+ </sections>
17
+ </standard-document>
18
+ OUTPUT
19
+ end
20
+
21
+ it "applies smartquotes when requested" do
22
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
23
+ = Document title
24
+ Author
25
+ :docfile: test.adoc
26
+ :nodoc:
27
+ :novalid:
28
+ :no-isobib:
29
+ :smartquotes: true
30
+
31
+ == "Quotation"
32
+ INPUT
33
+ #{BLANK_HDR}
34
+ <sections>
35
+ <clause id="_" inline-header="false" obligation="normative">
36
+ <title>“Quotation”</title>
37
+ </clause>
38
+ </sections>
39
+ </standard-document>
40
+ OUTPUT
41
+ end
42
+
43
+ it "does not apply smartquotes when requested not to" do
44
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
45
+ = Document title
46
+ Author
47
+ :docfile: test.adoc
48
+ :nodoc:
49
+ :novalid:
50
+ :no-isobib:
51
+ :smartquotes: false
52
+
53
+ == "Quotation"
54
+ INPUT
55
+ #{BLANK_HDR}
56
+ <sections>
57
+ <clause id="_" inline-header="false" obligation="normative">
58
+ <title>"Quotation"</title>
59
+ </clause>
60
+ </sections>
61
+ </standard-document>
62
+ OUTPUT
63
+ end
64
+
65
+ it "does not apply smartquotes to sourcecode, tt, pre" do
66
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
67
+ = Document title
68
+ Author
69
+ :docfile: test.adoc
70
+ :nodoc:
71
+ :novalid:
72
+ :no-isobib:
73
+ :smartquotes: true
74
+
75
+ == "Quotation"
76
+
77
+ "Quotation"
78
+
79
+ `"quote"`
80
+
81
+ [source]
82
+ ----
83
+ "quote"
84
+ ----
85
+
86
+ INPUT
87
+ #{BLANK_HDR}
88
+ <sections>
89
+ <clause id="_" inline-header="false" obligation="normative"><title>“Quotation”</title><p id="_">“Quotation”</p>
90
+ <p id="_">
91
+ <tt>"quote"</tt>
92
+ </p>
93
+ <sourcecode id="_">"quote"</sourcecode></clause>
94
+ </sections>
95
+ </standard-document>
96
+ OUTPUT
97
+ end
98
+
99
+
6
100
  it "removes empty text elements" do
7
101
  expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
8
102
  #{ASCIIDOC_BLANK_HDR}
@@ -654,9 +748,9 @@ r = 1 %</stem>
654
748
  <title>Normative References</title>
655
749
  <bibitem id="iso123" type="standard">
656
750
  <title format="text/plain">Standard</title>
657
- <docidentifier>ISO 123:--</docidentifier>
751
+ <docidentifier>ISO 123:—</docidentifier>
658
752
  <date type="published">
659
- <on>--</on>
753
+ <on>—</on>
660
754
  </date>
661
755
  <contributor>
662
756
  <role type="publisher"/>
@@ -864,7 +958,7 @@ r = 1 %</stem>
864
958
  <title>Normative References</title>
865
959
  <bibitem type="international-standard" id="IEC60050-102">
866
960
  <fetched>#{Date.today}</fetched>
867
- <title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary -- Part 102: Mathematics -- General concepts and linear algebra</title>
961
+ <title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary — Part 102: Mathematics — General concepts and linear algebra</title>
868
962
  <uri type="src">https://webstore.iec.ch/publication/160</uri>
869
963
  <uri type="obp">/preview/info_iec60050-102%7Bed1.0%7Db.pdf</uri>
870
964
  <docidentifier type="IEC">IEC 60050-102:2007</docidentifier>
@@ -910,7 +1004,7 @@ r = 1 %</stem>
910
1004
  </ics>
911
1005
  </bibitem><bibitem type="international-standard" id="IEC60050-103">
912
1006
  <fetched>#{Date.today}</fetched>
913
- <title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary -- Part 103: Mathematics -- Functions </title>
1007
+ <title format="text/plain" language="en" script="Latn">International Electrotechnical Vocabulary — Part 103: Mathematics — Functions </title>
914
1008
  <uri type="src">https://webstore.iec.ch/publication/161</uri>
915
1009
  <uri type="obp">/preview/info_iec60050-103%7Bed1.0%7Db.pdf</uri>
916
1010
  <docidentifier type="IEC">IEC 60050-103:2009</docidentifier>
@@ -3,7 +3,7 @@ require "spec_helper"
3
3
  RSpec.describe Asciidoctor::Standoc do
4
4
  it "processes inline_quoted formatting" do
5
5
  expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
6
- #{ASCIIDOC_BLANK_HDR}
6
+ #{DUMBQUOTE_BLANK_HDR}
7
7
  _emphasis_
8
8
  *strong*
9
9
  `monospace`
@@ -318,9 +318,9 @@ RSpec.describe Asciidoctor::Standoc do
318
318
  <title>Normative References</title>
319
319
  <bibitem id="iso123" type="standard">
320
320
  <title format="text/plain">Standard</title>
321
- <docidentifier>ISO 123:--</docidentifier>
321
+ <docidentifier>ISO 123:—</docidentifier>
322
322
  <date type="published">
323
- <on>--</on>
323
+ <on>—</on>
324
324
  </date>
325
325
  <contributor>
326
326
  <role type="publisher"/>
@@ -512,6 +512,7 @@ RSpec.describe Asciidoctor::Standoc do
512
512
  <?xml version="1.0" encoding="UTF-8"?>
513
513
  <standard-document xmlns="http://riboseinc.com/isoxml">
514
514
  <bibdata type="article">
515
+ <title language="en" format="text/plain">Document title</title>
515
516
  <language>en</language>
516
517
  <script>Latn</script>
517
518
  <status format="plain">published</status>
data/spec/spec_helper.rb CHANGED
@@ -44,6 +44,17 @@ ASCIIDOC_BLANK_HDR = <<~"HDR"
44
44
 
45
45
  HDR
46
46
 
47
+ DUMBQUOTE_BLANK_HDR = <<~"HDR"
48
+ = Document title
49
+ Author
50
+ :docfile: test.adoc
51
+ :nodoc:
52
+ :novalid:
53
+ :no-isobib:
54
+ :smartquotes: false
55
+
56
+ HDR
57
+
47
58
  ISOBIB_BLANK_HDR = <<~"HDR"
48
59
  = Document title
49
60
  Author
@@ -106,6 +117,7 @@ BLANK_HDR = <<~"HDR"
106
117
  <?xml version="1.0" encoding="UTF-8"?>
107
118
  <standard-document xmlns="http://riboseinc.com/isoxml">
108
119
  <bibdata type="article">
120
+ <title language="en" format="text/plain">Document title</title>
109
121
  <language>en</language>
110
122
  <script>Latn</script>
111
123
  <status format="plain">published</status>
@@ -2,7 +2,7 @@
2
2
  http_interactions:
3
3
  - request:
4
4
  method: get
5
- uri: https://www.rfc-editor.org/refs/bibxml/reference.RFC.8341.xml
5
+ uri: https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml
6
6
  body:
7
7
  encoding: US-ASCII
8
8
  string: ''
@@ -14,38 +14,28 @@ http_interactions:
14
14
  User-Agent:
15
15
  - Ruby
16
16
  Host:
17
- - www.rfc-editor.org
17
+ - xml2rfc.tools.ietf.org
18
18
  response:
19
19
  status:
20
20
  code: 200
21
21
  message: OK
22
22
  headers:
23
23
  Date:
24
- - Thu, 25 Oct 2018 08:25:40 GMT
24
+ - Tue, 11 Dec 2018 10:44:17 GMT
25
25
  Server:
26
- - Apache
26
+ - Apache/2.2.22 (Debian)
27
27
  Last-Modified:
28
- - Fri, 19 Oct 2018 18:40:08 GMT
28
+ - Wed, 28 Nov 2018 15:34:16 GMT
29
29
  Etag:
30
- - '"46c-578993b90f678-gzip"'
30
+ - '"39e4a91-46c-57bbb4c7e4e00"'
31
31
  Accept-Ranges:
32
32
  - bytes
33
- Vary:
34
- - Accept-Encoding
35
- Strict-Transport-Security:
36
- - max-age=31536000; includeSubDomains
37
- X-Frame-Options:
38
- - SAMEORIGIN
39
- X-Xss-Protection:
40
- - 1; mode=block
41
- X-Content-Type-Options:
42
- - nosniff
43
33
  Content-Length:
44
- - '606'
34
+ - '1132'
45
35
  Content-Type:
46
- - text/xml
36
+ - application/xml
47
37
  body:
48
- encoding: ASCII-8BIT
38
+ encoding: UTF-8
49
39
  string: |
50
40
  <?xml version='1.0' encoding='UTF-8'?>
51
41
 
@@ -62,10 +52,10 @@ http_interactions:
62
52
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
63
53
  </reference>
64
54
  http_version:
65
- recorded_at: Thu, 25 Oct 2018 08:25:43 GMT
55
+ recorded_at: Tue, 11 Dec 2018 10:44:17 GMT
66
56
  - request:
67
57
  method: get
68
- uri: https://www.rfc-editor.org/refs/bibxml/reference.RFC.8341.xml
58
+ uri: https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8341.xml
69
59
  body:
70
60
  encoding: US-ASCII
71
61
  string: ''
@@ -77,38 +67,28 @@ http_interactions:
77
67
  User-Agent:
78
68
  - Ruby
79
69
  Host:
80
- - www.rfc-editor.org
70
+ - xml2rfc.tools.ietf.org
81
71
  response:
82
72
  status:
83
73
  code: 200
84
74
  message: OK
85
75
  headers:
86
76
  Date:
87
- - Thu, 25 Oct 2018 08:25:41 GMT
77
+ - Tue, 11 Dec 2018 10:44:18 GMT
88
78
  Server:
89
- - Apache
79
+ - Apache/2.2.22 (Debian)
90
80
  Last-Modified:
91
- - Fri, 19 Oct 2018 18:40:08 GMT
81
+ - Wed, 28 Nov 2018 15:34:16 GMT
92
82
  Etag:
93
- - '"46c-578993b90f678-gzip"'
83
+ - '"39e4a91-46c-57bbb4c7e4e00"'
94
84
  Accept-Ranges:
95
85
  - bytes
96
- Vary:
97
- - Accept-Encoding
98
- Strict-Transport-Security:
99
- - max-age=31536000; includeSubDomains
100
- X-Frame-Options:
101
- - SAMEORIGIN
102
- X-Xss-Protection:
103
- - 1; mode=block
104
- X-Content-Type-Options:
105
- - nosniff
106
86
  Content-Length:
107
- - '606'
87
+ - '1132'
108
88
  Content-Type:
109
- - text/xml
89
+ - application/xml
110
90
  body:
111
- encoding: ASCII-8BIT
91
+ encoding: UTF-8
112
92
  string: |
113
93
  <?xml version='1.0' encoding='UTF-8'?>
114
94
 
@@ -125,5 +105,5 @@ http_interactions:
125
105
  <seriesInfo name='DOI' value='10.17487/RFC8341'/>
126
106
  </reference>
127
107
  http_version:
128
- recorded_at: Thu, 25 Oct 2018 08:25:43 GMT
108
+ recorded_at: Tue, 11 Dec 2018 10:44:18 GMT
129
109
  recorded_with: VCR 4.0.0
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.11
4
+ version: 1.0.12
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-27 00:00:00.000000000 Z
11
+ date: 2018-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -210,16 +210,16 @@ dependencies:
210
210
  name: rubocop
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
- - - "~>"
213
+ - - '='
214
214
  - !ruby/object:Gem::Version
215
- version: '0.50'
215
+ version: 0.54.0
216
216
  type: :development
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
- - - "~>"
220
+ - - '='
221
221
  - !ruby/object:Gem::Version
222
- version: '0.50'
222
+ version: 0.54.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: simplecov
225
225
  requirement: !ruby/object:Gem::Requirement