metanorma-standoc 1.2.1 → 1.2.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7a90c6f9dab7e41ec8a716b6dcb956b3c5066e6af6c24c4c99f6f9e7242cd490
4
- data.tar.gz: 3d91ef4648f885f90e301bdc30989e9f89f4e3a07a856fd91cb90b0adbf81c1c
3
+ metadata.gz: 1f0296f73b69a974d8471004f27194fd72f0005a4b9b76ea99c5fc0ad8828734
4
+ data.tar.gz: dfdba4afa101c91c4d83697876770fd2ea26da7a197702a1a3087157e257bf66
5
5
  SHA512:
6
- metadata.gz: d1bfa8ed19b0ec0aaa93739d240e32f1ec312a2cf13a1ba9f4c715b056541519a75765ae794abe1bc54d0cdc89275c8b5652ba69de4c83090c709b24206f59a6
7
- data.tar.gz: 999e69d048bf5b83a265153d5e08d7bfa9f23a44d08640d309cdca172a5921544d0e1fd5f1cb746a115230134ffe789725eb8ece23026309ad02f797efc1c3fc
6
+ metadata.gz: 5891c907305ea29a718370385a72ae3cc8156f42562fabda70dce276d740cf20160da3d84dda0be783315b5b287bab3732bb03fb33dfdfe59587f03100347d27
7
+ data.tar.gz: 11a9e73079c234d6db80af6d500ce24e8847b4c5fc40cf2e4aadd08ee520462248ccd1e1ff5c77e4dd84fb241ada3821cecc70f4d610179655d55bc49e041caf
@@ -1,14 +1,13 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- metanorma-standoc (1.2.1)
4
+ metanorma-standoc (1.2.2)
5
5
  asciidoctor (~> 1.5.7)
6
6
  concurrent-ruby
7
7
  html2doc (~> 0.8.11)
8
8
  iev (~> 0.2.1)
9
9
  isodoc (~> 0.10.0)
10
10
  relaton (~> 0.4.0)
11
- relaton-cli (~> 0.2.0)
12
11
  ruby-jing
13
12
  sterile (~> 1.0.14)
14
13
  unicode2latex (~> 0.0.1)
@@ -64,8 +63,8 @@ GEM
64
63
  httpclient (2.8.3)
65
64
  iev (0.2.2)
66
65
  nokogiri
67
- image_size (2.0.1)
68
- isodoc (0.10.1)
66
+ image_size (2.0.2)
67
+ isodoc (0.10.2)
69
68
  asciimath
70
69
  html2doc (~> 0.8.11)
71
70
  htmlentities (~> 4.3.4)
@@ -85,7 +84,7 @@ GEM
85
84
  rb-inotify (~> 0.9, >= 0.9.7)
86
85
  ruby_dep (~> 1.2)
87
86
  lumberjack (1.0.13)
88
- metanorma (0.3.11)
87
+ metanorma (0.3.14)
89
88
  asciidoctor
90
89
  htmlentities
91
90
  method_source (0.9.2)
@@ -107,13 +106,13 @@ GEM
107
106
  pry (0.12.2)
108
107
  coderay (~> 1.1.0)
109
108
  method_source (~> 0.9.0)
110
- public_suffix (3.1.0)
109
+ public_suffix (3.1.1)
111
110
  rainbow (3.0.0)
112
111
  rake (12.3.2)
113
112
  rb-fsevent (0.10.3)
114
113
  rb-inotify (0.10.0)
115
114
  ffi (~> 1.0)
116
- relaton (0.4.1)
115
+ relaton (0.4.3)
117
116
  algoliasearch
118
117
  relaton-gb (~> 0.5.0)
119
118
  relaton-iec (~> 0.3.0)
@@ -122,13 +121,9 @@ GEM
122
121
  relaton-iso-bib (~> 0.2.0)
123
122
  relaton-itu (~> 0.2.0)
124
123
  relaton-nist (~> 0.2.0)
125
- relaton-bib (0.2.3)
124
+ relaton-bib (0.2.4)
126
125
  addressable
127
126
  nokogiri (~> 1.8.4)
128
- relaton-cli (0.2.1)
129
- liquid
130
- relaton (~> 0.4)
131
- thor
132
127
  relaton-gb (0.5.1)
133
128
  cnccs (~> 0.1.1)
134
129
  gb-agencies (~> 0.0.1)
@@ -136,9 +131,9 @@ GEM
136
131
  relaton-iec (0.3.1)
137
132
  addressable
138
133
  relaton-iso-bib (~> 0.2.0)
139
- relaton-ietf (0.5.3)
134
+ relaton-ietf (0.5.4)
140
135
  relaton-iso-bib (~> 0.2.0)
141
- relaton-iso (0.5.1)
136
+ relaton-iso (0.5.3)
142
137
  algoliasearch
143
138
  relaton-iec (~> 0.3.0)
144
139
  relaton-iso-bib (~> 0.2.0)
@@ -147,7 +142,7 @@ GEM
147
142
  nokogiri (~> 1.8.4)
148
143
  relaton-bib (~> 0.2.0)
149
144
  ruby_deep_clone (~> 0.8.0)
150
- relaton-itu (0.2.1)
145
+ relaton-itu (0.2.2)
151
146
  relaton-iso-bib (~> 0.2.0)
152
147
  relaton-nist (0.2.2)
153
148
  relaton-bib (~> 0.2.0)
@@ -157,7 +152,7 @@ GEM
157
152
  rspec-core (~> 3.8.0)
158
153
  rspec-expectations (~> 3.8.0)
159
154
  rspec-mocks (~> 3.8.0)
160
- rspec-core (3.8.1)
155
+ rspec-core (3.8.2)
161
156
  rspec-support (~> 3.8.0)
162
157
  rspec-expectations (3.8.4)
163
158
  diff-lcs (>= 1.2.0, < 2.0)
@@ -184,7 +179,7 @@ GEM
184
179
  ffi (~> 1.9)
185
180
  rake
186
181
  shellany (0.0.1)
187
- simplecov (0.16.1)
182
+ simplecov (0.17.0)
188
183
  docile (~> 1.1)
189
184
  json (>= 1.8, < 3)
190
185
  simplecov-html (~> 0.10.0)
@@ -1,5 +1,5 @@
1
1
  require "set"
2
- require "relaton-cli"
2
+ require "relaton_bib"
3
3
 
4
4
  module Asciidoctor
5
5
  module Standoc
@@ -164,39 +164,11 @@ module Asciidoctor
164
164
  def ref_dl_cleanup(xmldoc)
165
165
  xmldoc.xpath("//clause[@bibitem = 'true']").each do |c|
166
166
  bib = dl_bib_extract(c) or next
167
- b = Nokogiri::XML::Node.new('bibitem', xmldoc)
168
- b["id"] = bib["ref"]&.strip
169
- b["type"] = bib["doctype"]&.strip
170
- b << %Q[<title format="text/plain">#{bib['title']}</title>]
171
- #b << extract_from_p("docidentifier", bib, "docidentifier")
172
-
173
- b << %Q[<docidentifier>#{bib['docidentifier']}</docidentifier>]
174
-
175
- Array(bib["publisher"]).each do |name|
176
- b << %Q[<contributor><role type="publisher"/><organization>
177
- <name>#{name}</name>
178
- </organization></contributor>]
179
- #{extract_from_p("publisher", bib, "name")}
180
- end
181
-
182
- Array(bib["author"]).each do |name|
183
- b << %Q[<contributor><role type="author"/><person>
184
- <name><completename>#{name}</completename></name>
185
- </person></contributor>]
186
- end
187
- c.replace(b)
188
- end
189
- end
190
-
191
- def ref_dl_cleanup(xmldoc)
192
- xmldoc.xpath("//clause[@bibitem = 'true']").each do |c|
193
- bib = dl_bib_extract(c) or next
194
- bibitemxml = Relaton::Bibdata.new(bib).to_xml or next
195
- # TODO move this into relaton-cli
167
+ #bibitemxml = Relaton::Bibdata.new(bib).to_xml or next
168
+ bibitemxml = RelatonBib::BibliographicItem.new(
169
+ RelatonBib::hash_to_bib(bib)).to_xml or next
196
170
  bibitem = Nokogiri::XML(bibitemxml)
197
- bibitem.root.name = "bibitem"
198
- bibitem.root["id"] = bib["ref"]&.strip
199
- bibitem.root["type"] = bib["doctype"]&.strip
171
+ bibitem["id"] = c["id"] if c["id"]
200
172
  c.replace(bibitem.root)
201
173
  end
202
174
  end
@@ -207,18 +179,29 @@ module Asciidoctor
207
179
  end
208
180
 
209
181
  # if the content is a single paragraph, replace it with its children
182
+ # single links replaced with uri
210
183
  def p_unwrap(p)
211
184
  elems = p.elements
212
185
  if elems.size == 1 && elems[0].name == "p"
213
- elems[0].children.to_xml
186
+ link_unwrap(elems[0]).children.to_xml.strip
214
187
  else
215
- p.to_xml
188
+ p.to_xml.strip
216
189
  end
217
190
  end
218
191
 
192
+ def link_unwrap(p)
193
+ elems = p.elements
194
+ if elems.size == 1 && elems[0].name == "link"
195
+ p.at("./link").replace(elems[0]["target"].strip)
196
+ end
197
+ p
198
+ end
199
+
219
200
  def dd_bib_extract(dtd)
201
+ return nil if dtd.children.empty?
202
+ dtd.at("./dl") and return dl_bib_extract(dtd)
220
203
  elems = dtd.remove.elements
221
- return p_unwrap(dtd) unless elems.size == 1 && elems[0].name == "ol"
204
+ return p_unwrap(dtd) unless elems.size == 1 && %w(ol ul).include?(elems[0].name)
222
205
  ret = []
223
206
  elems[0].xpath("./li").each do |li|
224
207
  ret << p_unwrap(li)
@@ -226,16 +209,30 @@ module Asciidoctor
226
209
  ret
227
210
  end
228
211
 
212
+ def add_to_hash(bib, key, val)
213
+ bib[key] = bib[key].is_a?(Array) ? (bib[key] << val) :
214
+ bib[key].nil? ? val : [bib[key], val]
215
+ end
216
+
229
217
  # definition list, with at most one level of unordered lists
230
- def dl_bib_extract(c)
218
+ def dl_bib_extract(c, nested = false)
231
219
  dl = c.at("./dl") or return
232
220
  bib = {}
233
221
  key = ""
234
222
  dl.xpath("./dt | ./dd").each do |dtd|
235
- key = dtd.text if dtd.name == "dt"
236
- bib[key] = dd_bib_extract(dtd) if dtd.name == "dd"
223
+ dtd.name == "dt" and key = dtd.text.sub(/:+$/, "") or
224
+ add_to_hash(bib, key, dd_bib_extract(dtd))
225
+ end
226
+ c.xpath("./clause").each do |c1|
227
+ key = c1&.at("./title")&.text&.downcase&.strip
228
+ next unless %w(contributors relations series).include? key
229
+ add_to_hash(bib, key, dl_bib_extract(c1, true))
230
+ end
231
+ if !nested and c.at("./title")
232
+ title = c.at("./title").remove.children.to_xml
233
+ bib["titles"] = bib["titles"] ? Array(bib["titles"]) : []
234
+ bib["titles"] << title if !title.empty?
237
235
  end
238
- bib["title"] = c.at("./title").remove.children
239
236
  bib
240
237
  end
241
238
  end
@@ -1,5 +1,6 @@
1
1
  require "asciidoctor/extensions"
2
2
  require "fileutils"
3
+ require "uuidtools"
3
4
 
4
5
  module Asciidoctor
5
6
  module Standoc
@@ -81,17 +82,29 @@ module Asciidoctor
81
82
  nil
82
83
  end
83
84
 
85
+ # if no :imagesdir: leave image file in plantuml
84
86
  def self.generate_file parent, reader
85
87
  localdir = Utils::localdir(parent.document)
88
+ fn = save_plantuml parent, reader, localdir
89
+ system "plantuml #{localdir}plantuml/#{fn}.pml"
90
+ outfile = parent.image_uri("#{fn}.png")
91
+ if outfile == "#{fn}.png"
92
+ "plantuml/#{fn}.png"
93
+ else
94
+ FileUtils.mv "#{localdir}plantuml/#{fn}.png", "#{localdir}#{outfile}"
95
+ "#{fn}.png"
96
+ end
97
+ end
98
+
99
+ def self.save_plantuml parent, reader, localdir
86
100
  src = reader.source
87
- !reader.lines.first.sub(/\s+$/, "").match /^@startuml($| )/ or
101
+ reader.lines.first.sub(/\s+$/, "").match /^@startuml($| )/ or
88
102
  src = "@startuml\n#{src}\n@enduml\n"
89
- /^@startuml (?<filename>[^\n]+)\n/ =~ src
90
- filename ||= parent.document.reader.lineno
103
+ /^@startuml (?<fn>[^\n]+)\n/ =~ src
104
+ fn ||= UUIDTools::UUID.random_create
91
105
  FileUtils.mkdir_p "#{localdir}/plantuml"
92
- File.open("#{localdir}plantuml/#{filename}.pml", "w") { |f| f.write src }
93
- system "plantuml #{localdir}plantuml/#{filename}.pml"
94
- filename
106
+ File.open("#{localdir}plantuml/#{fn}.pml", "w") { |f| f.write src }
107
+ fn
95
108
  end
96
109
 
97
110
  def self.generate_attrs attrs
@@ -113,7 +126,7 @@ module Asciidoctor
113
126
  if PlantUMLBlockMacroBackend.plantuml_installed?
114
127
  filename = PlantUMLBlockMacroBackend.generate_file parent, reader
115
128
  through_attrs = PlantUMLBlockMacroBackend.generate_attrs attrs
116
- through_attrs["target"] = "plantuml/#{filename}.png"
129
+ through_attrs["target"] = filename
117
130
  create_image_block parent, through_attrs
118
131
  else
119
132
  warn "PlantUML not installed"
@@ -94,7 +94,8 @@ module Asciidoctor
94
94
  docid(t, id_and_year(m[:code], m[:year]) + " (all parts)")
95
95
  conditional_date(t, m, noyr)
96
96
  iso_publisher(t, m[:code])
97
- t.note(**plaintxt) { |p| p << "ISO DATE: #{m[:fn]}" } if m.names.include?("fn") && m[:fn]
97
+ m.names.include?("fn") && m[:fn] and
98
+ t.note(**plaintxt) { |p| p << "ISO DATE: #{m[:fn]}" }
98
99
  #t.allparts "true"
99
100
  t.extent **{ type: 'part' } do |e|
100
101
  e.referenceFrom "all"
@@ -109,7 +110,11 @@ module Asciidoctor
109
110
  xml.parent.add_child(Utils::smart_render_xml(hit))
110
111
  xml
111
112
  rescue Algolia::AlgoliaProtocolError
112
- nil # Render reference without an Internet connection.
113
+ warn "Could not retrieve #{code}: no access to online site"
114
+ nil
115
+ rescue RelatonBib::RequestError
116
+ warn "Could not retrieve #{code}: no access to online site"
117
+ nil
113
118
  end
114
119
 
115
120
  def refitem_render(xml, m)
@@ -18,8 +18,8 @@ module Asciidoctor
18
18
  end
19
19
 
20
20
  def localdir(node)
21
- %r{/}.match(node.attr("docfile")) ?
22
- node.attr("docfile").sub(%r{/[^/]+$}, "/") : "./"
21
+ docfile = node.attr("docfile")
22
+ docfile.nil? ? './' : Pathname.new(docfile).parent.to_s + '/'
23
23
  end
24
24
 
25
25
  def current_location(n)
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Standoc
3
- VERSION = "1.2.1".freeze
3
+ VERSION = "1.2.2".freeze
4
4
  end
5
5
  end
@@ -35,7 +35,6 @@ Gem::Specification.new do |spec|
35
35
  spec.add_dependency "concurrent-ruby"
36
36
  spec.add_dependency "html2doc", "~> 0.8.11"
37
37
  spec.add_dependency "unicode2latex", "~> 0.0.1"
38
- spec.add_dependency "relaton-cli", "~> 0.2.0"
39
38
 
40
39
  spec.add_development_dependency "bundler", "~> 2.0.1"
41
40
  spec.add_development_dependency "byebug"
@@ -46,7 +46,7 @@ RSpec.describe Asciidoctor::Standoc do
46
46
  end
47
47
 
48
48
  it "processes the PlantUML macro" do
49
- expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
49
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).gsub(%r{plantuml/[^.]{36}\.}, "plantuml/_.")).to be_equivalent_to <<~"OUTPUT"
50
50
  #{ASCIIDOC_BLANK_HDR}
51
51
 
52
52
  [plantuml]
@@ -82,10 +82,10 @@ RSpec.describe Asciidoctor::Standoc do
82
82
  INPUT
83
83
  #{BLANK_HDR}
84
84
  <sections><figure id="_">
85
- <image src="plantuml/20.png" id="_" imagetype="PNG" height="auto" width="auto"/>
85
+ <image src="plantuml/_.png" id="_" imagetype="PNG" height="auto" width="auto"/>
86
86
  </figure>
87
87
  <figure id="_">
88
- <image src="plantuml/29.png" id="_" imagetype="PNG" height="auto" width="auto"/>
88
+ <image src="plantuml/_.png" id="_" imagetype="PNG" height="auto" width="auto"/>
89
89
  </figure>
90
90
  <figure id="_">
91
91
  <image src="plantuml/filename.png" id="_" imagetype="PNG" height="auto" width="auto"/>
@@ -96,6 +96,37 @@ RSpec.describe Asciidoctor::Standoc do
96
96
  OUTPUT
97
97
  end
98
98
 
99
+ it "processes the PlantUML macro with imagesdir" do
100
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)).gsub(%r{spec/assets/[^.]+\.}, "spec/assets/_.")).to be_equivalent_to <<~"OUTPUT"
101
+ = Document title
102
+ Author
103
+ :docfile: test.adoc
104
+ :nodoc:
105
+ :novalid:
106
+ :no-isobib:
107
+ :imagesdir: spec/assets
108
+
109
+ [plantuml]
110
+ ....
111
+ @startuml
112
+ Alice -> Bob: Authentication Request
113
+ Bob --> Alice: Authentication Response
114
+
115
+ Alice -> Bob: Another authentication Request
116
+ Alice <-- Bob: another authentication Response
117
+ @enduml
118
+ ....
119
+ INPUT
120
+ #{BLANK_HDR}
121
+ <sections>
122
+ <figure id="_">
123
+ <image src="spec/assets/_.png" id="_" imagetype="PNG" height="auto" width="auto"/>
124
+ </figure>
125
+ </sections>
126
+ </standard-document>
127
+ OUTPUT
128
+ end
129
+
99
130
  it "processes the PlantUML macro with PlantUML disabled" do
100
131
  mock_plantuml_disabled
101
132
  expect { Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true) }.to output(%r{PlantUML not installed}).to_stderr
@@ -10,14 +10,30 @@ RSpec.describe Asciidoctor::Standoc do
10
10
 
11
11
  [%bibitem]
12
12
  === Standard
13
- ref:: iso123
14
- docidentifier:: ISO 123
15
- doctype:: standard
16
- contributor_publisher_role::
17
- contributor_publisher_organization:: ISO
18
- contributor_author_person::
19
- ... Fred
20
- ... Jack
13
+ id:: iso123
14
+ docid::
15
+ type::: ISO
16
+ id::: ISO 123
17
+ type:: standard
18
+ contributors::
19
+ roles::: publisher
20
+ organization:::
21
+ name:::: ISO
22
+ contributors::
23
+ roles::: author
24
+ person:::
25
+ name::::
26
+ +
27
+ --
28
+ completename::
29
+ language::: en
30
+ content::: Fred
31
+ --
32
+ contributors::
33
+ roles::: author
34
+ person:::
35
+ name::::
36
+ completename::::: Jack
21
37
 
22
38
  INPUT
23
39
  #{BLANK_HDR}
@@ -26,8 +42,8 @@ RSpec.describe Asciidoctor::Standoc do
26
42
  <title>Normative References</title>
27
43
  <bibitem id="iso123" type="standard">
28
44
  <fetched>#{Date.today}</fetched>
29
- <title>Standard</title>
30
- <docidentifier>ISO 123</docidentifier>
45
+ <title type="main" format="text/plain" language="en" script="Latn">Standard</title>
46
+ <docidentifier type="ISO">ISO 123</docidentifier>
31
47
  <contributor>
32
48
  <role type="publisher"/>
33
49
  <organization>
@@ -37,7 +53,7 @@ RSpec.describe Asciidoctor::Standoc do
37
53
  <contributor>
38
54
  <role type="author"/>
39
55
  <person>
40
- <name><completename>Fred</completename></name>
56
+ <name><completename language="en">Fred</completename></name>
41
57
  </person>
42
58
  </contributor>
43
59
  <contributor>
@@ -53,4 +69,336 @@ RSpec.describe Asciidoctor::Standoc do
53
69
  OUTPUT
54
70
  end
55
71
 
72
+ it "processes complex dl reference" do
73
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
74
+ #{ASCIIDOC_BLANK_HDR}
75
+ [bibliography]
76
+ == Normative References
77
+
78
+ [[ISO/TC211]]
79
+ [%bibitem]
80
+ === {blank}
81
+ fetched:: 2019-06-30
82
+ titles::
83
+ type::: main
84
+ content::: Geographic information
85
+ titles::
86
+ type::: subtitle
87
+ content::: Geographic information subtitle
88
+ language::: en
89
+ script::: Latn
90
+ format::: text/plain
91
+ type:: standard
92
+ docid::
93
+ type::: ISO
94
+ id::: TC211
95
+ docnumber:: 211
96
+ edition:: 1
97
+ language::
98
+ . en
99
+ . fr
100
+ script:: Latn
101
+ version::
102
+ revision_date::: 2019-04-01
103
+ draft::: draft
104
+ biblionote::
105
+ type::: bibnote
106
+ content:::
107
+ +
108
+ --
109
+ Mark set a major league
110
+ home run record in 1998.
111
+ --
112
+ docstatus::
113
+ stage::: stage
114
+ substage::: substage
115
+ iteration::: iteration
116
+ dates::
117
+ type::: issued
118
+ value::: 2014
119
+ dates::
120
+ type::: published
121
+ from::: 2014-04
122
+ to::: 2014-05
123
+ dates::
124
+ type::: accessed
125
+ value::: 2015-05-20
126
+ abstract::
127
+ content:::
128
+ +
129
+ --
130
+ ISO 19115-1:2014 defines the schema required for ...
131
+ --
132
+ abstract::
133
+ content::: L'ISO 19115-1:2014 définit le schéma requis pour ...
134
+ language::: fr
135
+ script::: Latn
136
+ format::: text/plain
137
+ copyright::
138
+ owner:::
139
+ name:::: International Organization for Standardization
140
+ abbreviation:::: ISO
141
+ url:::: www.iso.org
142
+ from::: 2014
143
+ to::: 2020
144
+ link::
145
+ type::: src
146
+ content::: https://www.iso.org/standard/53798.html
147
+ link::
148
+ type::: obp
149
+ content::: https://www.iso.org/obp/ui/#!iso:std:53798:en
150
+ link::
151
+ type::: rss
152
+ content::: https://www.iso.org/contents/data/standard/05/37/53798.detail.rss
153
+ medium::
154
+ form::: medium form
155
+ size::: medium size
156
+ scale::: medium scale
157
+ place:: bib place
158
+ extent::
159
+ type::: section
160
+ reference_from::: 7
161
+ accesslocation::
162
+ . accesslocation1
163
+ . accesslocation2
164
+ classification::
165
+ type::: type
166
+ value::: value
167
+ validity::
168
+ begins::: 2010-10-10 12:21
169
+ ends::: 2011-02-03 18:30
170
+
171
+
172
+ ==== Contributor
173
+ organization::
174
+ name::: International Organization for Standardization
175
+ url::: www.iso.org
176
+ abbreviation::: ISO
177
+ subdivision::: division
178
+ role::
179
+ * publisher
180
+ *
181
+ ** Publisher role
182
+
183
+ ==== Contributor
184
+ person::
185
+ name:::
186
+ completename::::
187
+ content::::: A. Bierman
188
+ language::::: en
189
+ affiliation:::
190
+ organization::::
191
+ name::::: IETF
192
+ abbreviation::::: IETF
193
+ identifiers:::::
194
+ +
195
+ ---
196
+ type:: uri
197
+ id:: www.ietf.org
198
+ ---
199
+ description:::: Affiliation description
200
+ contacts:::
201
+ street::::
202
+ * 8 Street St
203
+ city:::: City
204
+ postcode:::: 123456
205
+ country:::: Country
206
+ state:::: State
207
+ contacts:::
208
+ type:::: phone
209
+ value:::: 223322
210
+ role:: author
211
+
212
+ ==== Contributors
213
+ organization::
214
+ name::: IETF
215
+ abbreviation::: IETF
216
+ identifiers:::
217
+ type:::: uri
218
+ id:::: www.ietf.org
219
+ role:: publisher
220
+
221
+ ==== Contributors
222
+ person::
223
+ name:::
224
+ language:::: en
225
+ initials:::: A.
226
+ surname:::: Bierman
227
+ affiliation:::
228
+ +
229
+ --
230
+ organization::
231
+ name::: IETF
232
+ abbreviation::: IETF
233
+ description::
234
+ content::: Affiliation description
235
+ language::: en
236
+ script::: Latn
237
+ --
238
+ identifiers:::
239
+ type:::: uri
240
+ id:::: www.person.com
241
+ roles:: author
242
+
243
+ ==== Relations
244
+ type:: updates
245
+ bibitem::
246
+ formattedref::: ISO 19115:2003
247
+ bib_locality:::
248
+ type:::: page
249
+ reference_from:::: 7
250
+ reference_to:::: 10
251
+
252
+ ==== Relations
253
+ type:: updates
254
+ bibitem::
255
+ type::: standard
256
+ formattedref::: ISO 19115:2003/Cor 1:2006
257
+
258
+ ==== Series
259
+ type:: main
260
+ title::
261
+ type::: original
262
+ content::: ISO/IEC FDIS 10118-3
263
+ language::: en
264
+ script::: Latn
265
+ format::: text/plain
266
+ place:: Serie's place
267
+ organization:: Serie's organization
268
+ abbreviation::
269
+ content::: ABVR
270
+ language::: en
271
+ script::: Latn
272
+ from:: 2009-02-01
273
+ to:: 2010-12-20
274
+ number:: serie1234
275
+ partnumber:: part5678
276
+
277
+ ==== Series
278
+ type:: alt
279
+ formattedref::
280
+ content::: serieref
281
+ language::: en
282
+ script::: Latn
283
+
284
+ INPUT
285
+ #{BLANK_HDR}
286
+ <sections>
287
+ </sections><bibliography><references id="_" obligation="informative">
288
+ <title>Normative References</title>
289
+ <bibitem id="TC211" type="standard">
290
+ <fetched>2019-06-30</fetched>
291
+ <title type="main" format="text/plain">Geographic information</title>
292
+ <title type="subtitle" format="text/plain" language="en" script="Latn">Geographic information subtitle</title>
293
+ <uri type="src">https://www.iso.org/standard/53798.html</uri>
294
+ <uri type="obp">https://www.iso.org/obp/ui/#!iso:std:53798:en</uri>
295
+ <uri type="rss">https://www.iso.org/contents/data/standard/05/37/53798.detail.rss</uri>
296
+ <docidentifier type="ISO">TC211</docidentifier>
297
+ <docnumber>211</docnumber>
298
+ <date type="issued">
299
+ <on>2014</on>
300
+ </date>
301
+ <date type="published">
302
+ <from>2014</from>
303
+ <to>2014</to>
304
+ </date>
305
+ <date type="accessed">
306
+ <on>2015</on>
307
+ </date>
308
+ <contributor>
309
+ <organization>
310
+ <name>IETF</name>
311
+ <abbreviation>IETF</abbreviation>
312
+ <identifier type="uri">www.ietf.org</identifier>
313
+ </organization>
314
+ </contributor>
315
+ <contributor>
316
+ <role type="author"/>
317
+ <person>
318
+ <name>
319
+ <initial language="en">A.</initial>
320
+ <surname language="en">Bierman</surname>
321
+ </name>
322
+ <affiliation>
323
+ <description language="en" script="en">Affiliation description</description>
324
+ <organization>
325
+ <name>IETF</name>
326
+ <abbreviation>IETF</abbreviation>
327
+ </organization>
328
+ </affiliation>
329
+ <identifier type="uri">www.person.com</identifier>
330
+ </person>
331
+ </contributor>
332
+ <edition>1</edition>
333
+ <version>
334
+ <revision-date>2019-04-01</revision-date>
335
+ <draft>draft</draft>
336
+ </version>
337
+ <note type="bibnote">Mark set a major league
338
+ home run record in 1998.</note>
339
+ <language>en</language>
340
+ <language>fr</language>
341
+ <script>Latn</script>
342
+ <abstract format="text/plain">ISO 19115-1:2014 defines the schema required for …​</abstract>
343
+ <abstract format="text/plain" language="fr" script="Latn">L’ISO 19115-1:2014 définit le schéma requis pour …​</abstract>
344
+ <status>
345
+ <stage>stage</stage>
346
+ <substage>substage</substage>
347
+ <iteration>iteration</iteration>
348
+ </status>
349
+ <copyright>
350
+ <from>2014</from>
351
+ <to>2020</to>
352
+ <owner>
353
+ <organization>
354
+ <name>International Organization for Standardization</name>
355
+ <abbreviation>ISO</abbreviation>
356
+ <uri>www.iso.org</uri>
357
+ </organization>
358
+ </owner>
359
+ </copyright>
360
+ <relation type="updates">
361
+ <bibitem>
362
+ <formattedref format="text/plain">ISO 19115:2003</formattedref>
363
+ </bibitem>
364
+ </relation>
365
+ <relation type="updates">
366
+ <bibitem type="standard">
367
+ <formattedref format="text/plain">ISO 19115:2003/Cor 1:2006</formattedref>
368
+ </bibitem>
369
+ </relation>
370
+ <series type="main">
371
+ <title type="original" format="text/plain" language="en" script="Latn">ISO/IEC FDIS 10118-3</title>
372
+ <place>Serie’s place</place>
373
+ <organization>Serie’s organization</organization>
374
+ <abbreviation language="en" script="Latn">ABVR</abbreviation>
375
+ <from>2009-02-01</from>
376
+ <to>2010-12-20</to>
377
+ <number>serie1234</number>
378
+ <partnumber>part5678</partnumber>
379
+ </series>
380
+ <series type="alt">
381
+ <formattedref format="text/plain" language="en" script="Latn">serieref</formattedref>
382
+ </series>
383
+ <medium>
384
+ <form>medium form</form>
385
+ <size>medium size</size>
386
+ <scale>medium scale</scale>
387
+ </medium>
388
+ <place>bib place</place>
389
+ <locality type="section">
390
+ <referenceFrom>7</referenceFrom>
391
+ </locality>
392
+ <accesslocation>accesslocation1</accesslocation>
393
+ <accesslocation>accesslocation2</accesslocation>
394
+ <classification type="type">value</classification>
395
+ <validity>
396
+ <validityBegins>2010-10-10 12:21</validityBegins>
397
+ <validityEnds>2011-02-03 18:30</validityEnds>
398
+ </validity>
399
+ </bibitem></references></bibliography>
400
+ </standard-document>
401
+ OUTPUT
402
+ end
403
+
56
404
  end
@@ -422,7 +422,6 @@ RSpec.describe Asciidoctor::Standoc do
422
422
  <title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
423
423
  <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
424
424
  <docidentifier type="IETF">RFC 8341</docidentifier>
425
- <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
426
425
  <date type="published">
427
426
  <on>2018-03</on>
428
427
  </date>
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.2.1
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-06-30 00:00:00.000000000 Z
11
+ date: 2019-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
@@ -136,20 +136,6 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: 0.0.1
139
- - !ruby/object:Gem::Dependency
140
- name: relaton-cli
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: 0.2.0
146
- type: :runtime
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: 0.2.0
153
139
  - !ruby/object:Gem::Dependency
154
140
  name: bundler
155
141
  requirement: !ruby/object:Gem::Requirement