metanorma-standoc 1.5.0 → 1.5.1

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: 76c3b117ea592275339f9ee8103f17645d9675f45635abfbc8e5333fc512af1c
4
- data.tar.gz: a345b19a2657f356225f2087e17a7dba7bd4720389cf44487892d3f1e1bc5345
3
+ metadata.gz: 2b4ec9dd5050345506b6b416eaad6b57865cb3c0b9e57e00e3b52f625fe87a48
4
+ data.tar.gz: 4e53f6a44684a9694104f74c7560040893a47c70c5c8292810e9349a32c1e151
5
5
  SHA512:
6
- metadata.gz: 630d1159cc78920d3bab3e73a2577b54d00bb966b0faa15166ff1af832656ab985e55f8fa830d40a2fbec96a8cf8555880f89f0e73d749dc73540e6cd8303469
7
- data.tar.gz: f3c46604bb69f1e34eb8b2af182e198e99a6f2cae3bce808a9547e096b1852b4868c00a8522370a52c92ad5f263ab2f7e5ee348196fffbe1084ef1c666900080
6
+ metadata.gz: 8d437d0619e0da4931009f2f92db0778bdd0eccb9bd15f81a7e38edc66a89474cecaa4099bd55bf8178a13a9551d533378068730231e2ed13d2ead794da7cb3a
7
+ data.tar.gz: c5a606e3c94a341a6ce19bf5e77df8bf49eeae5d68cf6143d7050190a29f7213a34d74ab7743b87f54d7766fd17606cfb05f05b51a63f7a85ae113b9a23e98fd
@@ -43,7 +43,7 @@ jobs:
43
43
  polling_interval_seconds: 5
44
44
  timeout_minutes: 5
45
45
  max_attempts: 3
46
- command: sudo bash -c "curl -L https://github.com/metanorma/plantuml-install/raw/master/ubuntu.sh | bash"
46
+ command: sudo apt-get update -y && sudo bash -c "curl -L https://github.com/metanorma/plantuml-install/raw/master/ubuntu.sh | bash"
47
47
  - name: Run specs
48
48
  run: |
49
49
  bundle exec rake
@@ -133,14 +133,16 @@ module Asciidoctor
133
133
  end
134
134
 
135
135
  def validate_ref_dl(bib, c)
136
- unless bib["id"]
136
+ id = bib["id"]
137
+ id ||= c["id"] unless /^_/.match(c["id"]) # do not accept implicit id
138
+ unless id
137
139
  @log.add("Anchors", c, "The following reference is missing "\
138
140
  "an anchor:\n" + c.to_xml)
139
141
  return
140
142
  end
141
- bib["title"] or @log.add("Bibliography", c, "Reference #{bib['id']} "\
143
+ bib["title"] or @log.add("Bibliography", c, "Reference #{id} "\
142
144
  "is missing a title")
143
- bib["docid"] or @log.add("Bibliography", c, "Reference #{bib['id']} "\
145
+ bib["docid"] or @log.add("Bibliography", c, "Reference #{id} "\
144
146
  "is missing a document identifier (docid)")
145
147
  end
146
148
 
@@ -25,18 +25,6 @@ module Asciidoctor
25
25
  end
26
26
  end
27
27
 
28
- def metadata_copyright(node, xml)
29
- publishers = node.attr("publisher") || " "
30
- publishers.split(/,[ ]?/).each do |p|
31
- xml.copyright do |c|
32
- c.from (node.attr("copyright-year") || Date.today.year)
33
- p.match(/[A-Za-z]/).nil? or c.owner do |owner|
34
- owner.organization { |o| organization(o, p) }
35
- end
36
- end
37
- end
38
- end
39
-
40
28
  def metadata_status(node, xml)
41
29
  xml.status do |s|
42
30
  s.stage ( node.attr("status") || node.attr("docstage") || "published" )
@@ -3,6 +3,7 @@ require "nokogiri"
3
3
  require "htmlentities"
4
4
  require "pathname"
5
5
  require "open-uri"
6
+ require "csv"
6
7
 
7
8
  module Asciidoctor
8
9
  module Standoc
@@ -24,8 +25,15 @@ module Asciidoctor
24
25
  org.name orgname
25
26
  end
26
27
 
28
+ # , " => ," : CSV definition does not deal with space followed by quote
29
+ # at start of field
30
+ def csv_split(s, delim = ",")
31
+ CSV.parse_line(s&.gsub(/, "(?!")/, ',"'), liberal_parsing: true,
32
+ col_sep: delim)&.map { |x| x.strip }
33
+ end
34
+
27
35
  def metadata_author(node, xml)
28
- (node.attr("publisher") || "").split(/,[ ]?/).each do |p|
36
+ csv_split(node.attr("publisher") || default_publisher || "")&.each do |p|
29
37
  xml.contributor do |c|
30
38
  c.role **{ type: "author" }
31
39
  c.organization { |a| organization(a, p) }
@@ -85,15 +93,32 @@ module Asciidoctor
85
93
  end
86
94
  end
87
95
 
96
+ def default_publisher
97
+ nil
98
+ end
99
+
88
100
  def metadata_publisher(node, xml)
89
- publishers = node.attr("publisher") || return
90
- publishers.split(/,[ ]?/).each do |p|
101
+ publishers = node.attr("publisher") || default_publisher || return
102
+ csv_split(publishers)&.each do |p|
91
103
  xml.contributor do |c|
92
104
  c.role **{ type: "publisher" }
93
105
  c.organization { |a| organization(a, p) }
94
106
  end
95
107
  end
96
108
  end
109
+
110
+ def metadata_copyright(node, xml)
111
+ publishers = node.attr("copyright-holder") || node.attr("publisher") ||
112
+ default_publisher || "-"
113
+ csv_split(publishers)&.each do |p|
114
+ xml.copyright do |c|
115
+ c.from (node.attr("copyright-year") || Date.today.year)
116
+ p.match(/[A-Za-z]/).nil? or c.owner do |owner|
117
+ owner.organization { |o| organization(o, p) }
118
+ end
119
+ end
120
+ end
121
+ end
97
122
  end
98
123
  end
99
124
  end
@@ -150,9 +150,10 @@ module Asciidoctor
150
150
  end
151
151
 
152
152
  def nonterm_symbols_parse(attrs, xml, node)
153
+ defs = @definitions
153
154
  @definitions = false
154
155
  clause_parse(attrs, xml, node)
155
- @definitions = true
156
+ @definitions = defs
156
157
  end
157
158
 
158
159
  def symbols_attrs(node, a)
@@ -179,9 +180,10 @@ module Asciidoctor
179
180
  end
180
181
 
181
182
  def nonterm_term_def_subclause_parse(attrs, xml, node)
183
+ defs = @term_def
182
184
  @term_def = false
183
185
  clause_parse(attrs, xml, node)
184
- @term_def = true
186
+ @term_def = defs
185
187
  end
186
188
 
187
189
  # subclause contains subclauses
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Standoc
3
- VERSION = "1.5.0".freeze
3
+ VERSION = "1.5.1".freeze
4
4
  end
5
5
  end
@@ -102,7 +102,8 @@ RSpec.describe Asciidoctor::Standoc do
102
102
  :email_2: barney@rockhead.example.com
103
103
  :phone_2: 789
104
104
  :fax_2: 012
105
- :publisher: Hanna Barbera, Cartoon Network
105
+ :publisher: "Hanna Barbera", "Cartoon Network", "Ribose, Inc."
106
+ :copyright-holder: "Ribose, Inc.", Hanna Barbera
106
107
  :part-of: ABC
107
108
  :translated-from: DEF,GHI;JKL MNO,PQR
108
109
  :keywords: a, b, c
@@ -155,6 +156,12 @@ RSpec.describe Asciidoctor::Standoc do
155
156
  <date type="Jack">
156
157
  <on>1010-01-01</on>
157
158
  </date>
159
+ <contributor>
160
+ <role type="author"/>
161
+ <organization>
162
+ <name>Ribose, Inc.</name>
163
+ </organization>
164
+ </contributor>
158
165
  <contributor>
159
166
  <role type="author"/>
160
167
  <organization>
@@ -221,6 +228,12 @@ RSpec.describe Asciidoctor::Standoc do
221
228
  <name>Cartoon Network</name>
222
229
  </organization>
223
230
  </contributor>
231
+ <contributor>
232
+ <role type="publisher"/>
233
+ <organization>
234
+ <name>Ribose, Inc.</name>
235
+ </organization>
236
+ </contributor>
224
237
  <edition>2</edition>
225
238
  <version>
226
239
  <revision-date>2000-01-01</revision-date>
@@ -237,7 +250,7 @@ RSpec.describe Asciidoctor::Standoc do
237
250
  <from>2001</from>
238
251
  <owner>
239
252
  <organization>
240
- <name>Hanna Barbera</name>
253
+ <name>Ribose, Inc.</name>
241
254
  </organization>
242
255
  </owner>
243
256
  </copyright>
@@ -245,7 +258,7 @@ RSpec.describe Asciidoctor::Standoc do
245
258
  <from>2001</from>
246
259
  <owner>
247
260
  <organization>
248
- <name>Cartoon Network</name>
261
+ <name>Hanna Barbera</name>
249
262
  </organization>
250
263
  </owner>
251
264
  </copyright>
@@ -77,7 +77,7 @@ it "processes complex dl reference" do
77
77
  [bibliography]
78
78
  == Normative References
79
79
 
80
- [[ISO/TC211]]
80
+ [[ISOTC211]]
81
81
  [%bibitem]
82
82
  === {blank}
83
83
  fetched:: 2019-06-30
@@ -446,7 +446,7 @@ OUTPUT
446
446
  [bibliography]
447
447
  == Normative References
448
448
 
449
- [[ISO/TC211]]
449
+ [[ISOTC211]]
450
450
  [%bibitem]
451
451
  === {blank}
452
452
  fetched:: 2019-06-30
@@ -64,7 +64,25 @@ RSpec.describe Asciidoctor::Standoc do
64
64
  INPUT
65
65
  errf = File.read("test.err")
66
66
  expect(errf).to include "The following reference is missing an anchor"
67
+ Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
68
+ #{VALIDATING_BLANK_HDR}
69
+
70
+ [bibliography]
71
+ == Normative References
72
+
73
+ [[x]]
74
+ [%bibitem]
75
+ === Standard
76
+ type:: standard
77
+ contributor::
78
+ role::: publisher
79
+ organization:::
80
+ name:::: ISO
81
+ INPUT
82
+ errf = File.read("test.err")
83
+ expect(errf).not_to include "The following reference is missing an anchor"
67
84
  end
85
+
68
86
  it "warns about malformed LaTeX" do
69
87
  FileUtils.rm_f "test.err"
70
88
  Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
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.5.0
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-29 00:00:00.000000000 Z
11
+ date: 2020-08-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor