metanorma-ogc 0.0.9 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -2
- data/appveyor.yml +7 -2
- data/lib/asciidoctor/ogc/biblio.rng +27 -3
- data/lib/asciidoctor/ogc/converter.rb +1 -70
- data/lib/asciidoctor/ogc/front.rb +4 -7
- data/lib/asciidoctor/ogc/isodoc.rng +128 -71
- data/lib/asciidoctor/ogc/isostandard.rng +29 -304
- data/lib/asciidoctor/ogc/ogc.rng +6 -80
- data/lib/asciidoctor/ogc/reqt.rng +5 -0
- data/lib/asciidoctor/ogc/validate.rb +91 -0
- data/lib/isodoc/ogc/base_convert.rb +23 -14
- data/lib/isodoc/ogc/html/html_ogc_titlepage.html +4 -4
- data/lib/isodoc/ogc/html/word_ogc_titlepage.html +3 -3
- data/lib/isodoc/ogc/html_convert.rb +1 -0
- data/lib/isodoc/ogc/metadata.rb +11 -8
- data/lib/isodoc/ogc/pdf_convert.rb +1 -0
- data/lib/isodoc/ogc/word_convert.rb +1 -0
- data/lib/metanorma/ogc/version.rb +1 -1
- data/metanorma-ogc.gemspec +3 -3
- metadata +9 -22
@@ -7,7 +7,7 @@ module IsoDoc
|
|
7
7
|
module BaseConvert
|
8
8
|
def annex_name(annex, name, div)
|
9
9
|
div.h1 **{ class: "Annex" } do |t|
|
10
|
-
t << "#{
|
10
|
+
t << "#{anchor(annex['id'], :label)} "
|
11
11
|
t.br
|
12
12
|
t.b do |b|
|
13
13
|
name&.children&.each { |c2| parse(c2, b) }
|
@@ -89,7 +89,7 @@ module IsoDoc
|
|
89
89
|
def submitters(docxml, out)
|
90
90
|
f = docxml.at(ns("//submitters")) || return
|
91
91
|
out.div **{ class: "Section3" } do |div|
|
92
|
-
clause_name(
|
92
|
+
clause_name(anchor(f['id'], :label), "Submitters", div, class: "IntroTitle")
|
93
93
|
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
94
94
|
end
|
95
95
|
end
|
@@ -110,7 +110,7 @@ module IsoDoc
|
|
110
110
|
@prefacenum += 1
|
111
111
|
page_break(out)
|
112
112
|
out.div **attr_code(id: f["id"]) do |s|
|
113
|
-
clause_name(
|
113
|
+
clause_name(anchor(f["id"], :label), @abstract_lbl, s, class: "AbstractTitle")
|
114
114
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
115
115
|
end
|
116
116
|
end
|
@@ -120,7 +120,7 @@ module IsoDoc
|
|
120
120
|
@prefacenum += 1
|
121
121
|
page_break(out)
|
122
122
|
out.div **attr_code(id: f["id"]) do |s|
|
123
|
-
clause_name(
|
123
|
+
clause_name(anchor(f["id"], :label), @foreword_lbl, s, class: "ForewordTitle")
|
124
124
|
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
125
125
|
end
|
126
126
|
end
|
@@ -149,20 +149,29 @@ module IsoDoc
|
|
149
149
|
end
|
150
150
|
|
151
151
|
def recommendation_anchor_names(docxml)
|
152
|
-
|
153
|
-
|
152
|
+
i = 0
|
153
|
+
docxml.xpath(ns("//recommendation")).each do |x|
|
154
|
+
next if x["id"].nil? || x["id"].empty?
|
155
|
+
@anchors[x["id"]] = anchor_struct(i+1, nil, "Recommendation", "recommendation", x["unnumbered"])
|
156
|
+
i += 1 unless x["unnumbered"]
|
154
157
|
end
|
155
158
|
end
|
156
159
|
|
157
160
|
def requirement_anchor_names(docxml)
|
158
|
-
|
159
|
-
|
161
|
+
i = 0
|
162
|
+
docxml.xpath(ns("//requirement")).each_with_index do |x|
|
163
|
+
next if x["id"].nil? || x["id"].empty?
|
164
|
+
@anchors[x["id"]] = anchor_struct(i+1, nil, "Requirement", "requirement", x["unnumbered"])
|
165
|
+
i += 1 unless x["unnumbered"]
|
160
166
|
end
|
161
167
|
end
|
162
168
|
|
163
169
|
def permission_anchor_names(docxml)
|
164
|
-
|
165
|
-
|
170
|
+
i = 0
|
171
|
+
docxml.xpath(ns("//permission")).each do |x|
|
172
|
+
next if x["id"].nil? || x["id"].empty?
|
173
|
+
@anchors[x["id"]] = anchor_struct(i+1, nil, "Permission", "permission", x["unnumbered"])
|
174
|
+
i += 1 unless x["unnumbered"]
|
166
175
|
end
|
167
176
|
end
|
168
177
|
|
@@ -199,7 +208,7 @@ module IsoDoc
|
|
199
208
|
|
200
209
|
def recommendation_label(node, out)
|
201
210
|
n = get_anchors[node["id"]]
|
202
|
-
label = (n.nil? || n[:label].empty?) ?
|
211
|
+
label = (n.nil? || n[:label].nil? || n[:label].empty?) ?
|
203
212
|
"Recommendation" : l10n("#{"Recommendation"} #{n[:label]}")
|
204
213
|
out.p **{class: "RecommendationTitle" } do |p|
|
205
214
|
p << label
|
@@ -222,7 +231,7 @@ module IsoDoc
|
|
222
231
|
|
223
232
|
def requirement_label(node, out)
|
224
233
|
n = get_anchors[node["id"]]
|
225
|
-
label = (n.nil? || n[:label].empty?) ?
|
234
|
+
label = (n.nil? || n[:label].nil? || n[:label].empty?) ?
|
226
235
|
"Requirement" : l10n("#{"Requirement"} #{n[:label]}")
|
227
236
|
out.p **{class: "RecommendationTitle" } do |p|
|
228
237
|
p << label
|
@@ -245,7 +254,7 @@ module IsoDoc
|
|
245
254
|
|
246
255
|
def permission_label(node, out)
|
247
256
|
n = get_anchors[node["id"]]
|
248
|
-
label = (n.nil? || n[:label].empty?) ?
|
257
|
+
label = (n.nil? || n[:label].nil? || n[:label].empty?) ?
|
249
258
|
"Permission" : l10n("#{"Permission"} #{n[:label]}")
|
250
259
|
out.p **{class: "RecommendationTitle" } do |p|
|
251
260
|
p << label
|
@@ -257,7 +266,7 @@ module IsoDoc
|
|
257
266
|
preface_names(d.at(ns("//preface/abstract")))
|
258
267
|
@prefacenum += 1 if d.at(ns("//keyword"))
|
259
268
|
preface_names(d.at(ns("//foreword")))
|
260
|
-
|
269
|
+
preface_names(d.at(ns("//introduction")))
|
261
270
|
@prefacenum += 1 if d.at(ns(SUBMITTINGORGS))
|
262
271
|
preface_names(d.at(ns("//submitters")))
|
263
272
|
sequential_asset_names(d.xpath(ns("//preface/abstract | //foreword | //introduction | //submitters")))
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<div class="document-stage-band" id='{{
|
2
|
-
<p class="document-stage">{{
|
1
|
+
<div class="document-stage-band" id='{{ stage | downcase | replace: " ", "-" }}-band'>
|
2
|
+
<p class="document-stage">{{ stage }}</p>
|
3
3
|
</div>
|
4
4
|
|
5
5
|
<div class="document-type-band" id='{{ doctype | downcase | replace: " ", "-" }}-band'>
|
@@ -80,11 +80,11 @@
|
|
80
80
|
</div>
|
81
81
|
|
82
82
|
<div class="coverpage-stage-block" >
|
83
|
-
<p><span class="coverpage-maturity" id="{{
|
83
|
+
<p><span class="coverpage-maturity" id="{{ stage | replace: ' ', '-' | downcase }}">{{ stage }}</span></p>
|
84
84
|
</div>
|
85
85
|
</div>
|
86
86
|
|
87
|
-
{% if
|
87
|
+
{% if stage == "Published" or stage == "Withdrawn" %}
|
88
88
|
{% if doctype == "Standard" or doctype == "Standard With Suite" %}
|
89
89
|
<div class="coverpage-warning">
|
90
90
|
<span class="title">Warning</span>
|
@@ -49,7 +49,7 @@ style='mso-color-alt:windowtext'><a href="http://www.opengeospatial.org/legal/">
|
|
49
49
|
style='mso-color-alt:windowtext'>http://www.opengeospatial.org/legal/</span></a></span></span>.<b
|
50
50
|
style='mso-bidi-font-weight:normal'><o:p></o:p></b></span></p>
|
51
51
|
|
52
|
-
{% if
|
52
|
+
{% if stage == "Published" or stage == "Withdrawn" %}
|
53
53
|
|
54
54
|
{% if doctype == "Standard" or doctype == "Standard With Suite" %}
|
55
55
|
<p class="MsoNormal" align="center" style='margin-bottom:6.0pt;text-align:center;
|
@@ -99,7 +99,7 @@ style='font-size:10.0pt;mso-bidi-font-size:11.0pt;mso-bidi-font-weight:bold'>Thi
|
|
99
99
|
<o:p></o:p></span></p>
|
100
100
|
{% endif %}
|
101
101
|
|
102
|
-
{% if
|
102
|
+
{% if stage == "Policy" %}
|
103
103
|
<p class="MsoNormal" align="center" style='margin-bottom:6.0pt;text-align:center;
|
104
104
|
border:none;mso-border-alt:solid windowtext .5pt;padding:0cm;mso-padding-alt:
|
105
105
|
1.0pt 4.0pt 1.0pt 4.0pt'><b style='mso-bidi-font-weight:normal'><span
|
@@ -186,7 +186,7 @@ page;mso-element-left:39.9pt;mso-element-top:693.25pt;mso-height-rule:exactly'>
|
|
186
186
|
auto;mso-element-anchor-vertical:page;mso-element-anchor-horizontal:page;
|
187
187
|
mso-element-left:39.9pt;mso-element-top:693.25pt;mso-height-rule:exactly'><span
|
188
188
|
lang=EN-GB style='font-size:10.0pt;mso-color-alt:windowtext;font-weight:normal'>Document
|
189
|
-
stage: <span style='mso-tab-count:1'> </span>{{
|
189
|
+
stage: <span style='mso-tab-count:1'> </span>{{ stage }}<o:p></o:p></span></p>
|
190
190
|
<p class=zzCover align=left style='margin-bottom:0cm;margin-bottom:.0001pt;
|
191
191
|
text-align:left;mso-hyphenate:none;tab-stops:99.0pt;mso-element:frame;
|
192
192
|
mso-element-frame-hspace:7.1pt;mso-element-frame-vspace:7.1pt;mso-element-wrap:
|
data/lib/isodoc/ogc/metadata.rb
CHANGED
@@ -7,7 +7,6 @@ module IsoDoc
|
|
7
7
|
class Metadata < IsoDoc::Metadata
|
8
8
|
def initialize(lang, script, labels)
|
9
9
|
super
|
10
|
-
set(:status, "XXX")
|
11
10
|
end
|
12
11
|
|
13
12
|
def title(isoxml, _out)
|
@@ -20,7 +19,7 @@ module IsoDoc
|
|
20
19
|
end
|
21
20
|
|
22
21
|
def author(isoxml, _out)
|
23
|
-
tc = isoxml.at(ns("//bibdata/editorialgroup/committee"))
|
22
|
+
tc = isoxml.at(ns("//bibdata/ext/editorialgroup/committee"))
|
24
23
|
set(:tc, tc.text) if tc
|
25
24
|
authors = isoxml.xpath(ns("//bibdata/contributor[role/@type = 'author']/person"))
|
26
25
|
set(:authors, extract_person_names(authors))
|
@@ -33,16 +32,12 @@ module IsoDoc
|
|
33
32
|
set(:externalid, isoxml&.at(ns("//bibdata/docidentifier[@type = 'ogc-external']"))&.text)
|
34
33
|
end
|
35
34
|
|
36
|
-
def status_print(status)
|
37
|
-
status.split(/-/).map{ |w| w.capitalize }.join(" ")
|
38
|
-
end
|
39
|
-
|
40
35
|
def status_abbr(status)
|
41
36
|
end
|
42
37
|
|
43
38
|
def keywords(isoxml, _out)
|
44
39
|
keywords = []
|
45
|
-
isoxml.xpath(ns("//bibdata/keyword")).each do |kw|
|
40
|
+
isoxml.xpath(ns("//bibdata/ext/keyword")).each do |kw|
|
46
41
|
keywords << kw.text
|
47
42
|
end
|
48
43
|
set(:keywords, keywords)
|
@@ -52,7 +47,7 @@ module IsoDoc
|
|
52
47
|
super
|
53
48
|
revdate = get[:revdate]
|
54
49
|
set(:revdate_monthyear, monthyr(revdate))
|
55
|
-
set(:edition, isoxml&.at(ns("//
|
50
|
+
set(:edition, isoxml&.at(ns("//bibdata/edition"))&.text)
|
56
51
|
set(:language, ISO_639.find_by_code(isoxml&.at(ns("//bibdata/language"))&.text))
|
57
52
|
end
|
58
53
|
|
@@ -81,6 +76,14 @@ module IsoDoc
|
|
81
76
|
super
|
82
77
|
a = xml.at(ns("//bibdata/uri[@type = 'previous']")) and set(:previousuri, a.text)
|
83
78
|
end
|
79
|
+
|
80
|
+
def doctype(isoxml, _out)
|
81
|
+
b = isoxml&.at(ns("//bibdata/ext/doctype"))&.text || return
|
82
|
+
t = b.split(/[- ]/).map do |w|
|
83
|
+
w.capitalize unless %w(SWG).include? w
|
84
|
+
end.join(" ")
|
85
|
+
set(:doctype, t)
|
86
|
+
end
|
84
87
|
end
|
85
88
|
end
|
86
89
|
end
|
data/metanorma-ogc.gemspec
CHANGED
@@ -22,12 +22,13 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.bindir = "exe"
|
23
23
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
24
24
|
spec.require_paths = ["lib"]
|
25
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.4.0")
|
25
26
|
|
26
27
|
spec.add_dependency "asciidoctor", "~> 1.5.7"
|
27
28
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
28
29
|
spec.add_dependency "ruby-jing"
|
29
|
-
spec.add_dependency "metanorma-standoc", "~> 1.
|
30
|
-
spec.add_dependency "isodoc", "~> 0.
|
30
|
+
spec.add_dependency "metanorma-standoc", "~> 1.2.0"
|
31
|
+
spec.add_dependency "isodoc", "~> 0.10.0"
|
31
32
|
spec.add_dependency "iso-639"
|
32
33
|
|
33
34
|
spec.add_development_dependency "bundler", "~> 2.0.1"
|
@@ -41,5 +42,4 @@ Gem::Specification.new do |spec|
|
|
41
42
|
spec.add_development_dependency "simplecov", "~> 0.15"
|
42
43
|
spec.add_development_dependency "timecop", "~> 0.9"
|
43
44
|
spec.add_development_dependency "metanorma", "~> 0.3.0"
|
44
|
-
spec.add_development_dependency "metanorma-cli", "~> 1.1.2"
|
45
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-ogc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: asciidoctor
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 1.
|
61
|
+
version: 1.2.0
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 1.
|
68
|
+
version: 1.2.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: isodoc
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.10.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.10.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: iso-639
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -248,20 +248,6 @@ dependencies:
|
|
248
248
|
- - "~>"
|
249
249
|
- !ruby/object:Gem::Version
|
250
250
|
version: 0.3.0
|
251
|
-
- !ruby/object:Gem::Dependency
|
252
|
-
name: metanorma-cli
|
253
|
-
requirement: !ruby/object:Gem::Requirement
|
254
|
-
requirements:
|
255
|
-
- - "~>"
|
256
|
-
- !ruby/object:Gem::Version
|
257
|
-
version: 1.1.2
|
258
|
-
type: :development
|
259
|
-
prerelease: false
|
260
|
-
version_requirements: !ruby/object:Gem::Requirement
|
261
|
-
requirements:
|
262
|
-
- - "~>"
|
263
|
-
- !ruby/object:Gem::Version
|
264
|
-
version: 1.1.2
|
265
251
|
description: 'Metanorma for the Open Geospatial Consortium.
|
266
252
|
|
267
253
|
'
|
@@ -293,6 +279,7 @@ files:
|
|
293
279
|
- lib/asciidoctor/ogc/isostandard.rng
|
294
280
|
- lib/asciidoctor/ogc/ogc.rng
|
295
281
|
- lib/asciidoctor/ogc/reqt.rng
|
282
|
+
- lib/asciidoctor/ogc/validate.rb
|
296
283
|
- lib/isodoc/ogc.rb
|
297
284
|
- lib/isodoc/ogc/base_convert.rb
|
298
285
|
- lib/isodoc/ogc/html/header.html
|
@@ -327,7 +314,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
327
314
|
requirements:
|
328
315
|
- - ">="
|
329
316
|
- !ruby/object:Gem::Version
|
330
|
-
version:
|
317
|
+
version: 2.4.0
|
331
318
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
332
319
|
requirements:
|
333
320
|
- - ">="
|
@@ -335,7 +322,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
335
322
|
version: '0'
|
336
323
|
requirements: []
|
337
324
|
rubyforge_project:
|
338
|
-
rubygems_version: 2.7.
|
325
|
+
rubygems_version: 2.7.7
|
339
326
|
signing_key:
|
340
327
|
specification_version: 4
|
341
328
|
summary: Metanorma for the Open Geospatial Consortium.
|