metanorma-ogc 1.0.3 → 1.0.8
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/.github/workflows/macos.yml +10 -10
- data/.github/workflows/ubuntu.yml +25 -11
- data/.github/workflows/windows.yml +11 -12
- data/README.adoc +3 -2
- data/lib/asciidoctor/ogc/biblio.rng +144 -49
- data/lib/asciidoctor/ogc/boilerplate.xml +37 -69
- data/lib/asciidoctor/ogc/converter.rb +6 -11
- data/lib/asciidoctor/ogc/isodoc.rng +49 -5
- data/lib/asciidoctor/ogc/ogc.rng +0 -4
- data/lib/isodoc/ogc/base_convert.rb +13 -112
- data/lib/isodoc/ogc/biblio.rb +13 -2
- data/lib/isodoc/ogc/html/html_ogc_titlepage.html +2 -6
- data/lib/isodoc/ogc/html/htmlstyle.scss +11 -1
- data/lib/isodoc/ogc/html/scripts.html +14 -27
- data/lib/isodoc/ogc/html/word_ogc_titlepage.html +13 -4
- data/lib/isodoc/ogc/html_convert.rb +1 -0
- data/lib/isodoc/ogc/i18n-en.yaml +3 -0
- data/lib/isodoc/ogc/metadata.rb +1 -31
- data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.best-practice.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.community-practice.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.community-standard.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.discussion-paper.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.engineering-report.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.other.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.policy.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.reference-model.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.release-notes.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.standard.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.test-suite.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.user-guide.xsl +3387 -0
- data/lib/isodoc/ogc/ogc.white-paper.xsl +3387 -0
- data/lib/isodoc/ogc/pdf_convert.rb +18 -77
- data/lib/isodoc/ogc/reqt.rb +74 -114
- data/lib/isodoc/ogc/reqt_xref.rb +96 -0
- data/lib/isodoc/ogc/sections.rb +111 -0
- data/lib/isodoc/ogc/word_convert.rb +17 -11
- data/lib/metanorma/ogc/processor.rb +8 -0
- data/lib/metanorma/ogc/version.rb +1 -1
- data/metanorma-ogc.gemspec +1 -1
- metadata +21 -5
- data/lib/isodoc/ogc/html/scripts.pdf.html +0 -72
@@ -0,0 +1,111 @@
|
|
1
|
+
module IsoDoc
|
2
|
+
module Ogc
|
3
|
+
module BaseConvert
|
4
|
+
def annex_name(annex, name, div)
|
5
|
+
div.h1 **{ class: "Annex" } do |t|
|
6
|
+
t << "#{anchor(annex['id'], :label)} "
|
7
|
+
t.br
|
8
|
+
t.b do |b|
|
9
|
+
name&.children&.each { |c2| parse(c2, b) }
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def keywords(_docxml, out)
|
15
|
+
kw = @meta.get[:keywords]
|
16
|
+
kw.empty? and return
|
17
|
+
@prefacenum += 1
|
18
|
+
out.div **{ class: "Section3" } do |div|
|
19
|
+
clause_name(RomanNumerals.to_roman(@prefacenum).downcase,
|
20
|
+
"Keywords", div, class: "IntroTitle")
|
21
|
+
div.p "The following are keywords to be used by search engines and "\
|
22
|
+
"document catalogues."
|
23
|
+
div.p kw.join(", ")
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
SUBMITTINGORGS =
|
28
|
+
"//bibdata/contributor[role/@type = 'author']/organization/name".freeze
|
29
|
+
|
30
|
+
def submittingorgs(docxml, out)
|
31
|
+
orgs = []
|
32
|
+
docxml.xpath(ns(SUBMITTINGORGS)).each { |org| orgs << org.text }
|
33
|
+
return if orgs.empty?
|
34
|
+
@prefacenum += 1
|
35
|
+
out.div **{ class: "Section3" } do |div|
|
36
|
+
clause_name(RomanNumerals.to_roman(@prefacenum).downcase,
|
37
|
+
"Submitting Organizations", div, class: "IntroTitle")
|
38
|
+
div.p "The following organizations submitted this Document to the "\
|
39
|
+
"Open Geospatial Consortium (OGC):"
|
40
|
+
div.ul do |ul|
|
41
|
+
orgs.each { |org| ul.li org }
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def submitters(docxml, out)
|
47
|
+
f = docxml.at(ns("//submitters")) || return
|
48
|
+
@prefacenum += 1
|
49
|
+
out.div **{ class: "Section3" } do |div|
|
50
|
+
clause_name(anchor(f['id'], :label), "Submitters", div,
|
51
|
+
class: "IntroTitle")
|
52
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def preface(isoxml, out)
|
57
|
+
title_attr = { class: "IntroTitle" }
|
58
|
+
isoxml.xpath(ns("//preface/clause")).each do |f|
|
59
|
+
@prefacenum += 1
|
60
|
+
out.div **{ class: "Section3", id: f["id"] } do |div|
|
61
|
+
clause_name(RomanNumerals.to_roman(@prefacenum).downcase,
|
62
|
+
f&.at(ns("./title")), div, title_attr)
|
63
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def abstract(isoxml, out)
|
69
|
+
f = isoxml.at(ns("//preface/abstract")) || return
|
70
|
+
@prefacenum += 1
|
71
|
+
page_break(out)
|
72
|
+
out.div **attr_code(id: f["id"]) do |s|
|
73
|
+
clause_name(anchor(f["id"], :label), @abstract_lbl, s,
|
74
|
+
class: "AbstractTitle")
|
75
|
+
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def foreword(isoxml, out)
|
80
|
+
f = isoxml.at(ns("//foreword")) || return
|
81
|
+
@prefacenum += 1
|
82
|
+
page_break(out)
|
83
|
+
out.div **attr_code(id: f["id"]) do |s|
|
84
|
+
clause_name(anchor(f["id"], :label), @foreword_lbl, s,
|
85
|
+
class: "ForewordTitle")
|
86
|
+
f.elements.each { |e| parse(e, s) unless e.name == "title" }
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
def acknowledgements(isoxml, out)
|
91
|
+
f = isoxml.at(ns("//acknowledgements")) || return
|
92
|
+
@prefacenum += 1
|
93
|
+
out.div **{ class: "Section3", id: f["id"] } do |div|
|
94
|
+
clause_name(anchor(f["id"], :label), f&.at(ns("./title")), div,
|
95
|
+
class: "IntroTitle")
|
96
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def conformance(isoxml, out, num)
|
101
|
+
f = isoxml.at(ns("//clause[title = 'Conformance']")) or return num
|
102
|
+
out.div **attr_code(id: f["id"]) do |div|
|
103
|
+
num = num + 1
|
104
|
+
clause_name(num, "Conformance", div, nil)
|
105
|
+
f.elements.each { |e| parse(e, div) unless e.name == "title" }
|
106
|
+
end
|
107
|
+
num
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
@@ -11,15 +11,17 @@ module IsoDoc
|
|
11
11
|
class WordConvert < IsoDoc::WordConvert
|
12
12
|
def initialize(options)
|
13
13
|
@libdir = File.dirname(__FILE__)
|
14
|
+
@reqtlabels = {}
|
14
15
|
super
|
15
|
-
#FileUtils.cp html_doc_path('logo.jpg'), "logo.jpg"
|
16
16
|
end
|
17
17
|
|
18
18
|
def default_fonts(options)
|
19
19
|
{
|
20
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
21
|
-
|
22
|
-
|
20
|
+
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' :
|
21
|
+
'"Times New Roman",serif'),
|
22
|
+
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' :
|
23
|
+
'"Times New Roman",serif'),
|
24
|
+
monospacefont: '"Courier New",monospace'
|
23
25
|
}
|
24
26
|
end
|
25
27
|
|
@@ -35,7 +37,6 @@ module IsoDoc
|
|
35
37
|
}
|
36
38
|
end
|
37
39
|
|
38
|
-
|
39
40
|
def metadata_init(lang, script, labels)
|
40
41
|
@meta = Metadata.new(lang, script, labels)
|
41
42
|
end
|
@@ -144,17 +145,27 @@ module IsoDoc
|
|
144
145
|
def word_cleanup(docxml)
|
145
146
|
super
|
146
147
|
word_recommend_cleanup(docxml)
|
148
|
+
word_copyright_cleanup(docxml)
|
147
149
|
word_license_cleanup(docxml)
|
148
150
|
word_term_cleanup(docxml)
|
149
151
|
docxml
|
150
152
|
end
|
151
153
|
|
152
154
|
def word_license_cleanup(docxml)
|
153
|
-
|
155
|
+
x = "//div[@class = 'boilerplate-license']//p[not(@class)]"
|
156
|
+
docxml.xpath(x).each do |p|
|
154
157
|
p["class"] = "license"
|
155
158
|
end
|
156
159
|
end
|
157
160
|
|
161
|
+
# center only the Copyright notice
|
162
|
+
def word_copyright_cleanup(docxml)
|
163
|
+
x = "//div[@class = 'boilerplate-copyright']/div[1]/p[not(@class)]"
|
164
|
+
docxml.xpath(x).each do |p|
|
165
|
+
p["align"] = "center"
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
158
169
|
def word_term_cleanup(docxml)
|
159
170
|
docxml.xpath("//p[@class = 'TermNum']//p[@class = 'Terms']").each do |p|
|
160
171
|
p.replace(p.children)
|
@@ -175,11 +186,6 @@ module IsoDoc
|
|
175
186
|
end
|
176
187
|
end
|
177
188
|
|
178
|
-
def authority_cleanup(docxml)
|
179
|
-
docxml&.at("//div[@id = 'boilerplate-contact']")&.remove
|
180
|
-
super
|
181
|
-
end
|
182
|
-
|
183
189
|
include BaseConvert
|
184
190
|
end
|
185
191
|
end
|
@@ -2,6 +2,14 @@ require "metanorma/processor"
|
|
2
2
|
|
3
3
|
module Metanorma
|
4
4
|
module Ogc
|
5
|
+
def self.fonts_used
|
6
|
+
{
|
7
|
+
doc: ["Arial", "Courier New", "Times New Roman"],
|
8
|
+
pdf: ["Arial", "Courier New", "Times New Roman"],
|
9
|
+
html: ["Overpass", "Space Mono"]
|
10
|
+
}
|
11
|
+
end
|
12
|
+
|
5
13
|
class Processor < Metanorma::Processor
|
6
14
|
|
7
15
|
def initialize
|
data/metanorma-ogc.gemspec
CHANGED
@@ -26,7 +26,7 @@ Gem::Specification.new do |spec|
|
|
26
26
|
|
27
27
|
spec.add_dependency "htmlentities", "~> 4.3.4"
|
28
28
|
spec.add_dependency "ruby-jing"
|
29
|
-
spec.add_dependency "metanorma-standoc", "~> 1.
|
29
|
+
spec.add_dependency "metanorma-standoc", "~> 1.4.0"
|
30
30
|
spec.add_dependency "isodoc", "~> 1.0.20"
|
31
31
|
spec.add_dependency "iso-639"
|
32
32
|
|
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: 1.0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.
|
47
|
+
version: 1.4.0
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.4.0
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: isodoc
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -250,15 +250,31 @@ files:
|
|
250
250
|
- lib/isodoc/ogc/html/htmlstyle.scss
|
251
251
|
- lib/isodoc/ogc/html/ogc.scss
|
252
252
|
- lib/isodoc/ogc/html/scripts.html
|
253
|
-
- lib/isodoc/ogc/html/scripts.pdf.html
|
254
253
|
- lib/isodoc/ogc/html/word_ogc_intro.html
|
255
254
|
- lib/isodoc/ogc/html/word_ogc_titlepage.html
|
256
255
|
- lib/isodoc/ogc/html/wordstyle.scss
|
257
256
|
- lib/isodoc/ogc/html_convert.rb
|
258
257
|
- lib/isodoc/ogc/i18n-en.yaml
|
259
258
|
- lib/isodoc/ogc/metadata.rb
|
259
|
+
- lib/isodoc/ogc/ogc.abstract-specification-topic.xsl
|
260
|
+
- lib/isodoc/ogc/ogc.best-practice.xsl
|
261
|
+
- lib/isodoc/ogc/ogc.change-request-supporting-document.xsl
|
262
|
+
- lib/isodoc/ogc/ogc.community-practice.xsl
|
263
|
+
- lib/isodoc/ogc/ogc.community-standard.xsl
|
264
|
+
- lib/isodoc/ogc/ogc.discussion-paper.xsl
|
265
|
+
- lib/isodoc/ogc/ogc.engineering-report.xsl
|
266
|
+
- lib/isodoc/ogc/ogc.other.xsl
|
267
|
+
- lib/isodoc/ogc/ogc.policy.xsl
|
268
|
+
- lib/isodoc/ogc/ogc.reference-model.xsl
|
269
|
+
- lib/isodoc/ogc/ogc.release-notes.xsl
|
270
|
+
- lib/isodoc/ogc/ogc.standard.xsl
|
271
|
+
- lib/isodoc/ogc/ogc.test-suite.xsl
|
272
|
+
- lib/isodoc/ogc/ogc.user-guide.xsl
|
273
|
+
- lib/isodoc/ogc/ogc.white-paper.xsl
|
260
274
|
- lib/isodoc/ogc/pdf_convert.rb
|
261
275
|
- lib/isodoc/ogc/reqt.rb
|
276
|
+
- lib/isodoc/ogc/reqt_xref.rb
|
277
|
+
- lib/isodoc/ogc/sections.rb
|
262
278
|
- lib/isodoc/ogc/word_convert.rb
|
263
279
|
- lib/metanorma-ogc.rb
|
264
280
|
- lib/metanorma/ogc.rb
|
@@ -1,72 +0,0 @@
|
|
1
|
-
<script>
|
2
|
-
//TOC generation
|
3
|
-
$('#toc').toc({
|
4
|
-
'selectors': toclevel(), //elements to use as headings
|
5
|
-
'container': 'main', //element to find all selectors in
|
6
|
-
'smoothScrolling': true, //enable or disable smooth scrolling on click
|
7
|
-
'prefix': 'toc', //prefix for anchor tags and class names
|
8
|
-
'onHighlight': function(el) {}, //called when a new section is highlighted
|
9
|
-
'highlightOnScroll': false, //add class to heading that is currently in focus
|
10
|
-
'highlightOffset': 100, //offset to trigger the next headline
|
11
|
-
'anchorName': function(i, heading, prefix) { //custom function for anchor name
|
12
|
-
return prefix+i;
|
13
|
-
},
|
14
|
-
'headerText': function(i, heading, $heading) { //custom function building the header-item text
|
15
|
-
return $heading.text();
|
16
|
-
},
|
17
|
-
'itemClass': function(i, heading, $heading, prefix) { // custom function for item class
|
18
|
-
return $heading[0].tagName.toLowerCase();
|
19
|
-
}
|
20
|
-
});
|
21
|
-
|
22
|
-
</script>
|
23
|
-
|
24
|
-
<script>
|
25
|
-
//TOC toggle animation
|
26
|
-
$('#toggle').on('click', function(){
|
27
|
-
if( $('nav').is(':visible') ) {
|
28
|
-
$('nav').animate({ 'left': '-353px' }, 'slow', function(){
|
29
|
-
$('nav').hide();
|
30
|
-
});
|
31
|
-
$('.container').animate({ 'padding-left': '31px' }, 'slow');
|
32
|
-
}
|
33
|
-
else {
|
34
|
-
$('nav').show();
|
35
|
-
$('nav').animate({ 'left': '0px' }, 'slow');
|
36
|
-
$('.container').animate({ 'padding-left': '360px' }, 'slow');
|
37
|
-
}
|
38
|
-
});
|
39
|
-
</script>
|
40
|
-
|
41
|
-
<script>
|
42
|
-
// Scroll to top button
|
43
|
-
window.onscroll = function() {scrollFunction()};
|
44
|
-
|
45
|
-
function scrollFunction() {
|
46
|
-
if (document.body.scrollTop > 100 || document.documentElement.scrollTop > 100) {
|
47
|
-
document.getElementById("myBtn").style.display = "block";
|
48
|
-
} else {
|
49
|
-
document.getElementById("myBtn").style.display = "none";
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
// When the user clicks on the button, scroll to the top of the document
|
54
|
-
function topFunction() {
|
55
|
-
document.body.scrollTop = 0;
|
56
|
-
document.documentElement.scrollTop = 0;
|
57
|
-
}
|
58
|
-
</script>
|
59
|
-
|
60
|
-
<script>
|
61
|
-
/*
|
62
|
-
$(document).ready(function() {
|
63
|
-
$('[id^=toc]').each(function ()
|
64
|
-
{
|
65
|
-
var currentToc = $(this);
|
66
|
-
var url = window.location.href;
|
67
|
-
currentToc.wrap("<a href='" + url + "#" + currentToc.attr("id") + "' </a>");
|
68
|
-
});
|
69
|
-
});
|
70
|
-
*/
|
71
|
-
</script>
|
72
|
-
|