metanorma-rsd 1.3.11 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/asciidoctor/rsd.rb +0 -3
- data/lib/asciidoctor/rsd/converter.rb +4 -133
- data/lib/asciidoctor/rsd/rsd.rng +1 -1
- data/lib/isodoc/rsd/html/header.html +64 -6
- data/lib/isodoc/rsd/html/rsd.scss +8 -8
- data/lib/isodoc/rsd/html/wordstyle.scss +22 -0
- data/lib/isodoc/rsd/html_convert.rb +10 -37
- data/lib/isodoc/rsd/metadata.rb +6 -42
- data/lib/isodoc/rsd/pdf_convert.rb +10 -40
- data/lib/isodoc/rsd/word_convert.rb +10 -34
- data/lib/metanorma/rsd.rb +26 -1
- data/lib/metanorma/rsd/version.rb +1 -1
- data/metanorma-rsd.gemspec +1 -0
- data/metanorma.yml +23 -0
- metadata +17 -3
- data/lib/isodoc/rsd/base_convert.rb +0 -56
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a09eca0d2e987fc30077408e32647ec19a660285c6e00eeb0d8c5e218cd56a5
|
4
|
+
data.tar.gz: 84102bb82fa88c5e721e15fe5cb78f6184161483bfcb6313325e20839d4c1c45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c63154090df0b256658929536b65153241d26fa01b2649d9eb0483ebdbe23f4d10d2269fabdb1e0a8fd17faf71a836f300d6104a14bb0d0c754c4a345f31a361
|
7
|
+
data.tar.gz: ab6f1c38cf3d4168ef8461de0bc3739419eba3e213ae3fe846584411d91c24b29b5dfb8b2194d58c1dc23462236acf375c88e1722e1a2314c09cab6198b9ed12
|
data/lib/asciidoctor/rsd.rb
CHANGED
@@ -1,83 +1,14 @@
|
|
1
|
-
require "asciidoctor"
|
2
|
-
require "asciidoctor/rsd"
|
3
1
|
require "asciidoctor/standoc/converter"
|
4
|
-
require
|
5
|
-
require "isodoc/rsd/word_convert"
|
6
|
-
require "fileutils"
|
7
|
-
require_relative "validate"
|
2
|
+
require 'asciidoctor/acme/converter'
|
8
3
|
|
9
4
|
module Asciidoctor
|
10
5
|
module Rsd
|
11
|
-
|
12
6
|
# A {Converter} implementation that generates RSD output, and a document
|
13
7
|
# schema encapsulation of the document for validation
|
14
8
|
#
|
15
|
-
class Converter <
|
16
|
-
|
9
|
+
class Converter < Asciidoctor::Acme::Converter
|
17
10
|
register_for "rsd"
|
18
11
|
|
19
|
-
def initialize(backend, opts)
|
20
|
-
super
|
21
|
-
@libdir = File.dirname(__FILE__)
|
22
|
-
end
|
23
|
-
|
24
|
-
def metadata_author(node, xml)
|
25
|
-
xml.contributor do |c|
|
26
|
-
c.role **{ type: "author" }
|
27
|
-
c.organization do |a|
|
28
|
-
a.name "Ribose"
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def metadata_publisher(node, xml)
|
34
|
-
xml.contributor do |c|
|
35
|
-
c.role **{ type: "publisher" }
|
36
|
-
c.organization do |a|
|
37
|
-
a.name "Ribose"
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def metadata_committee(node, xml)
|
43
|
-
return unless node.attr("committee")
|
44
|
-
xml.editorialgroup do |a|
|
45
|
-
a.committee node.attr("committee"),
|
46
|
-
**attr_code(type: node.attr("committee-type"))
|
47
|
-
i = 2
|
48
|
-
while node.attr("committee_#{i}") do
|
49
|
-
a.committee node.attr("committee_#{i}"),
|
50
|
-
**attr_code(type: node.attr("committee-type_#{i}"))
|
51
|
-
i += 1
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
def metadata_id(node, xml)
|
57
|
-
docstatus = node.attr("status")
|
58
|
-
dn = node.attr("docnumber")
|
59
|
-
if docstatus
|
60
|
-
abbr = IsoDoc::Rsd::Metadata.new("en", "Latn", {}).
|
61
|
-
status_abbr(docstatus)
|
62
|
-
dn = "#{dn}(#{abbr})" unless abbr.empty?
|
63
|
-
end
|
64
|
-
node.attr("copyright-year") and dn += ":#{node.attr("copyright-year")}"
|
65
|
-
xml.docidentifier dn, **{type: "rsd"}
|
66
|
-
xml.docnumber { |i| i << node.attr("docnumber") }
|
67
|
-
end
|
68
|
-
|
69
|
-
def metadata_copyright(node, xml)
|
70
|
-
from = node.attr("copyright-year") || Date.today.year
|
71
|
-
xml.copyright do |c|
|
72
|
-
c.from from
|
73
|
-
c.owner do |owner|
|
74
|
-
owner.organization do |o|
|
75
|
-
o.name "Ribose"
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
12
|
def metadata_security(node, xml)
|
82
13
|
security = node.attr("security") || return
|
83
14
|
xml.security security
|
@@ -88,68 +19,8 @@ module Asciidoctor
|
|
88
19
|
metadata_security(node, xml)
|
89
20
|
end
|
90
21
|
|
91
|
-
def
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
|
-
def makexml(node)
|
96
|
-
result = ["<?xml version='1.0' encoding='UTF-8'?>\n<rsd-standard>"]
|
97
|
-
@draft = node.attributes.has_key?("draft")
|
98
|
-
result << noko { |ixml| front node, ixml }
|
99
|
-
result << noko { |ixml| middle node, ixml }
|
100
|
-
result << "</rsd-standard>"
|
101
|
-
result = textcleanup(result)
|
102
|
-
ret1 = cleanup(Nokogiri::XML(result))
|
103
|
-
validate(ret1) unless @novalid
|
104
|
-
ret1.root.add_namespace(nil, RSD_NAMESPACE)
|
105
|
-
ret1
|
106
|
-
end
|
107
|
-
|
108
|
-
def doctype(node)
|
109
|
-
d = node.attr("doctype")
|
110
|
-
unless %w{policy-and-procedures best-practices supporting-document
|
111
|
-
report legal directives proposal standard}.include? d
|
112
|
-
warn "#{d} is not a legal document type: reverting to 'standard'"
|
113
|
-
d = "standard"
|
114
|
-
end
|
115
|
-
d
|
116
|
-
end
|
117
|
-
|
118
|
-
def document(node)
|
119
|
-
init(node)
|
120
|
-
ret1 = makexml(node)
|
121
|
-
ret = ret1.to_xml(indent: 2)
|
122
|
-
unless node.attr("nodoc") || !node.attr("docfile")
|
123
|
-
filename = node.attr("docfile").gsub(/\.adoc/, ".xml").
|
124
|
-
gsub(%r{^.*/}, "")
|
125
|
-
File.open(filename, "w") { |f| f.write(ret) }
|
126
|
-
html_converter(node).convert filename unless node.attr("nodoc")
|
127
|
-
pdf_converter(node).convert filename unless node.attr("nodoc")
|
128
|
-
word_converter(node).convert filename unless node.attr("nodoc")
|
129
|
-
end
|
130
|
-
@files_to_delete.each { |f| FileUtils.rm f }
|
131
|
-
ret
|
132
|
-
end
|
133
|
-
|
134
|
-
def validate(doc)
|
135
|
-
content_validate(doc)
|
136
|
-
schema_validate(formattedstr_strip(doc.dup),
|
137
|
-
File.join(File.dirname(__FILE__), "rsd.rng"))
|
138
|
-
end
|
139
|
-
|
140
|
-
def rsd_html_path(file)
|
141
|
-
File.join(File.dirname(__FILE__), File.join("html", file))
|
142
|
-
end
|
143
|
-
|
144
|
-
def sections_cleanup(x)
|
145
|
-
super
|
146
|
-
x.xpath("//*[@inline-header]").each do |h|
|
147
|
-
h.delete("inline-header")
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
def style(n, t)
|
152
|
-
return
|
22
|
+
def configuration
|
23
|
+
Metanorma::Rsd.configuration
|
153
24
|
end
|
154
25
|
|
155
26
|
def html_converter(node)
|
data/lib/asciidoctor/rsd/rsd.rng
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
|
2
|
+
<grammar ns="https://www.metanorma.org/ns/rsd" xmlns="http://relaxng.org/ns/structure/1.0">
|
3
3
|
<!--
|
4
4
|
Currently we inherit from a namespaced grammar, isostandard. Until we inherit from isodoc,
|
5
5
|
we cannot have a new default namespace: we will end up with a grammar with two different
|
@@ -98,21 +98,26 @@ Ribose Group Inc. {{ docyear }} – All rights reserved<o:p></o:p></sp
|
|
98
98
|
</div>
|
99
99
|
|
100
100
|
<div style='mso-element:header' id=eh2>
|
101
|
-
|
102
101
|
<p class=MsoHeader align=left style='text-align:left;line-height:12.0pt;
|
103
102
|
mso-line-height-rule:exactly'><span lang=EN-GB>Ribose {{ doctype }} {{ docnumber }}:{{ docyear }}</span></p>
|
103
|
+
</div>
|
104
104
|
|
105
|
+
<div style='mso-element:header' id=eh2l>
|
106
|
+
<p class=MsoHeaderLandscape align=left style='text-align:left;line-height:12.0pt;
|
107
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>Ribose {{ doctype }} {{ docnumber }}:{{ docyear }}</span></p>
|
105
108
|
</div>
|
106
109
|
|
107
110
|
<div style='mso-element:header' id=h2>
|
108
|
-
|
109
111
|
<p class=MsoHeader align=right style='text-align:right;line-height:12.0pt;
|
110
112
|
mso-line-height-rule:exactly'><span lang=EN-GB>Ribose {{ doctype }} {{ docnumber }}:{{ docyear }}</span></p>
|
113
|
+
</div>
|
111
114
|
|
115
|
+
<div style='mso-element:header' id=h2l>
|
116
|
+
<p class=MsoHeaderLandscape align=right style='text-align:right;line-height:12.0pt;
|
117
|
+
mso-line-height-rule:exactly'><span lang=EN-GB>Ribose {{ doctype }} {{ docnumber }}:{{ docyear }}</span></p>
|
112
118
|
</div>
|
113
119
|
|
114
120
|
<div style='mso-element:footer' id=ef2>
|
115
|
-
|
116
121
|
<p class=MsoFooter style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
|
117
122
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
118
123
|
style='mso-element:field-begin'></span><span
|
@@ -125,11 +130,24 @@ style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
|
125
130
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
|
126
131
|
1'> </span>©
|
127
132
|
Ribose Group Inc. {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
133
|
+
</div>
|
128
134
|
|
135
|
+
<div style='mso-element:footer' id=ef2l>
|
136
|
+
<p class=MsoFooterLandscape style='line-height:12.0pt;mso-line-height-rule:exactly'><!--[if supportFields]><span
|
137
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
138
|
+
style='mso-element:field-begin'></span><span
|
139
|
+
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>
|
140
|
+
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
141
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
142
|
+
style='mso-no-proof:yes'>ii</span></span><!--[if supportFields]><span
|
143
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
144
|
+
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
145
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span style='mso-tab-count:
|
146
|
+
1'> </span>©
|
147
|
+
Ribose Group Inc. {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
129
148
|
</div>
|
130
149
|
|
131
150
|
<div style='mso-element:footer' id=f2>
|
132
|
-
|
133
151
|
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
134
152
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc. {{ docyear }} – All
|
135
153
|
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><span
|
@@ -141,11 +159,23 @@ style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
|
|
141
159
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
142
160
|
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
143
161
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
162
|
+
</div>
|
144
163
|
|
164
|
+
<div style='mso-element:footer' id=f2l>
|
165
|
+
<p class=MsoFooterLandscape style='line-height:12.0pt'><span lang=EN-GB
|
166
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc. {{ docyear }} – All
|
167
|
+
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><span
|
168
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
169
|
+
style='mso-element:field-begin'></span> PAGE<span style='mso-spacerun:yes'>
|
170
|
+
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span><![endif]--><span
|
171
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
172
|
+
style='mso-no-proof:yes'>iii</span></span><!--[if supportFields]><span
|
173
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
174
|
+
style='mso-element:field-end'></span></span><![endif]--><span lang=EN-GB
|
175
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
145
176
|
</div>
|
146
177
|
|
147
178
|
<div style='mso-element:footer' id=ef3>
|
148
|
-
|
149
179
|
<p class=MsoFooter style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
150
180
|
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
151
181
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
@@ -159,11 +189,25 @@ mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b
|
|
159
189
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
160
190
|
style='mso-tab-count:1'> </span>©
|
161
191
|
Ribose Group Inc. {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
192
|
+
</div>
|
162
193
|
|
194
|
+
<div style='mso-element:footer' id=ef3l>
|
195
|
+
<p class=MsoFooterLandscape style='margin-top:12.0pt;line-height:12.0pt;mso-line-height-rule:
|
196
|
+
exactly'><!--[if supportFields]><b style='mso-bidi-font-weight:normal'><span
|
197
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
198
|
+
style='mso-element:field-begin'></span><span
|
199
|
+
style='mso-spacerun:yes'> </span>PAGE<span style='mso-spacerun:yes'>
|
200
|
+
</span>\* MERGEFORMAT <span style='mso-element:field-separator'></span></span></b><![endif]--><b
|
201
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
202
|
+
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>2</span></span></b><!--[if supportFields]><b
|
203
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
204
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
205
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><span
|
206
|
+
style='mso-tab-count:1'> </span>©
|
207
|
+
Ribose Group Inc. {{ docyear }} – All rights reserved<o:p></o:p></span></p>
|
163
208
|
</div>
|
164
209
|
|
165
210
|
<div style='mso-element:footer' id=f3>
|
166
|
-
|
167
211
|
<p class=MsoFooter style='line-height:12.0pt'><span lang=EN-GB
|
168
212
|
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc. {{ docyear }} – All
|
169
213
|
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><b
|
@@ -176,7 +220,21 @@ mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!-
|
|
176
220
|
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
177
221
|
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
178
222
|
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
223
|
+
</div>
|
179
224
|
|
225
|
+
<div style='mso-element:footer' id=f3l>
|
226
|
+
<p class=MsoFooterLandscape style='line-height:12.0pt'><span lang=EN-GB
|
227
|
+
style='font-size:10.0pt;mso-bidi-font-size:11.0pt'>© Ribose Group Inc. {{ docyear }} – All
|
228
|
+
rights reserved<span style='mso-tab-count:1'> </span></span><!--[if supportFields]><b
|
229
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
230
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-begin'></span>
|
231
|
+
PAGE<span style='mso-spacerun:yes'> </span>\* MERGEFORMAT <span
|
232
|
+
style='mso-element:field-separator'></span></span></b><![endif]--><b
|
233
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
234
|
+
mso-bidi-font-size:11.0pt'><span style='mso-no-proof:yes'>3</span></span></b><!--[if supportFields]><b
|
235
|
+
style='mso-bidi-font-weight:normal'><span lang=EN-GB style='font-size:10.0pt;
|
236
|
+
mso-bidi-font-size:11.0pt'><span style='mso-element:field-end'></span></span></b><![endif]--><span
|
237
|
+
lang=EN-GB style='font-size:10.0pt;mso-bidi-font-size:11.0pt'><o:p></o:p></span></p>
|
180
238
|
</div>
|
181
239
|
|
182
240
|
</body>
|
@@ -583,10 +583,10 @@ div.WordSection1
|
|
583
583
|
margin:39.7pt 53.85pt 1.0cm 53.85pt;
|
584
584
|
mso-header-margin:50pt;
|
585
585
|
mso-footer-margin:50pt;
|
586
|
-
mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html")
|
587
|
-
mso-header:url("file:///C:/Doc/FILENAME_files/header.html")
|
588
|
-
mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html")
|
589
|
-
mso-footer:url("file:///C:/Doc/FILENAME_files/header.html")
|
586
|
+
mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html") eh2l;
|
587
|
+
mso-header:url("file:///C:/Doc/FILENAME_files/header.html") h2l;
|
588
|
+
mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html") ef2l;
|
589
|
+
mso-footer:url("file:///C:/Doc/FILENAME_files/header.html") f2l;
|
590
590
|
mso-paper-source:0;}
|
591
591
|
@page WordSection2P
|
592
592
|
{size:595.3pt 841.9pt;
|
@@ -616,10 +616,10 @@ div.WordSection2
|
|
616
616
|
margin:39.7pt 53.85pt 1.0cm 53.85pt;
|
617
617
|
mso-header-margin:50pt;
|
618
618
|
mso-footer-margin:50pt;
|
619
|
-
mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html")
|
620
|
-
mso-header:url("file:///C:/Doc/FILENAME_files/header.html")
|
621
|
-
mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html")
|
622
|
-
mso-footer:url("file:///C:/Doc/FILENAME_files/header.html")
|
619
|
+
mso-even-header:url("file:///C:/Doc/FILENAME_files/header.html") eh2l;
|
620
|
+
mso-header:url("file:///C:/Doc/FILENAME_files/header.html") h2l;
|
621
|
+
mso-even-footer:url("file:///C:/Doc/FILENAME_files/header.html") ef3l;
|
622
|
+
mso-footer:url("file:///C:/Doc/FILENAME_files/header.html") f3l;
|
623
623
|
mso-paper-source:0;}
|
624
624
|
@page WordSection3P
|
625
625
|
{size:595.3pt 841.9pt;
|
@@ -158,6 +158,17 @@ p.MsoHeader, li.MsoHeader, div.MsoHeader
|
|
158
158
|
mso-fareast-font-family:"Times New Roman";
|
159
159
|
mso-ansi-language:EN-US;
|
160
160
|
mso-fareast-language:EN-US;}
|
161
|
+
p.MsoHeaderLandscape, li.MsoHeaderLandscape, div.MsoHeaderLandscape
|
162
|
+
{mso-style-unhide:no;
|
163
|
+
margin:0cm;
|
164
|
+
margin-bottom:.0001pt;
|
165
|
+
mso-pagination:widow-orphan;
|
166
|
+
tab-stops:center 367.0pt right 734.0pt;
|
167
|
+
font-size:10.5pt;
|
168
|
+
font-family:$bodyfont;
|
169
|
+
mso-fareast-font-family:"Times New Roman";
|
170
|
+
mso-ansi-language:EN-US;
|
171
|
+
mso-fareast-language:EN-US;}
|
161
172
|
p.MsoFooter, li.MsoFooter, div.MsoFooter
|
162
173
|
{mso-style-unhide:no;
|
163
174
|
margin:0cm;
|
@@ -169,6 +180,17 @@ p.MsoFooter, li.MsoFooter, div.MsoFooter
|
|
169
180
|
mso-fareast-font-family:"Times New Roman";
|
170
181
|
mso-ansi-language:EN-US;
|
171
182
|
mso-fareast-language:EN-US;}
|
183
|
+
p.MsoFooterLandscape, li.MsoFooterLandscape, div.MsoFooterLandscape
|
184
|
+
{mso-style-unhide:no;
|
185
|
+
margin:0cm;
|
186
|
+
margin-bottom:.0001pt;
|
187
|
+
mso-pagination:widow-orphan;
|
188
|
+
tab-stops:right 734.0pt;
|
189
|
+
font-size:10.5pt;
|
190
|
+
font-family:$bodyfont;
|
191
|
+
mso-fareast-font-family:"Times New Roman";
|
192
|
+
mso-ansi-language:EN-US;
|
193
|
+
mso-fareast-language:EN-US;}
|
172
194
|
span.MsoCommentReference
|
173
195
|
{mso-style-noshow:yes;
|
174
196
|
mso-style-unhide:no;
|
@@ -1,52 +1,25 @@
|
|
1
|
-
require_relative "base_convert"
|
2
1
|
require "isodoc"
|
2
|
+
require "isodoc/acme/html_convert"
|
3
|
+
require "isodoc/rsd/metadata"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Rsd
|
6
|
-
|
7
7
|
# A {Converter} implementation that generates HTML output, and a document
|
8
8
|
# schema encapsulation of the document for validation
|
9
9
|
#
|
10
|
-
class HtmlConvert < IsoDoc::HtmlConvert
|
11
|
-
def
|
12
|
-
|
13
|
-
super
|
14
|
-
end
|
15
|
-
|
16
|
-
def default_fonts(options)
|
17
|
-
{
|
18
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
|
19
|
-
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Overpass",sans-serif'),
|
20
|
-
monospacefont: '"Space Mono",monospace'
|
21
|
-
}
|
10
|
+
class HtmlConvert < IsoDoc::Acme::HtmlConvert
|
11
|
+
def configuration
|
12
|
+
Metanorma::Rsd.configuration
|
22
13
|
end
|
23
14
|
|
24
|
-
def
|
25
|
-
|
26
|
-
htmlstylesheet: html_doc_path("htmlstyle.scss"),
|
27
|
-
htmlcoverpage: html_doc_path("html_rsd_titlepage.html"),
|
28
|
-
htmlintropage: html_doc_path("html_rsd_intro.html"),
|
29
|
-
scripts: html_doc_path("scripts.html"),
|
30
|
-
}
|
15
|
+
def metadata_init(lang, script, labels)
|
16
|
+
@meta = Metadata.new(lang, script, labels)
|
31
17
|
end
|
32
18
|
|
33
|
-
def
|
34
|
-
|
35
|
-
|
36
|
-
<link href="https://fonts.googleapis.com/css?family=Overpass:300,300i,600,900" rel="stylesheet">
|
37
|
-
HEAD
|
38
|
-
end
|
39
|
-
|
40
|
-
def make_body(xml, docxml)
|
41
|
-
body_attr = { lang: "EN-US", link: "blue", vlink: "#954F72", "xml:lang": "EN-US", class: "container" }
|
42
|
-
xml.body **body_attr do |body|
|
43
|
-
make_body1(body, docxml)
|
44
|
-
make_body2(body, docxml)
|
45
|
-
make_body3(body, docxml)
|
46
|
-
end
|
19
|
+
def info(isoxml, out)
|
20
|
+
@meta.security isoxml, out
|
21
|
+
super
|
47
22
|
end
|
48
|
-
|
49
|
-
include BaseConvert
|
50
23
|
end
|
51
24
|
end
|
52
25
|
end
|
data/lib/isodoc/rsd/metadata.rb
CHANGED
@@ -3,45 +3,14 @@ require "isodoc"
|
|
3
3
|
module IsoDoc
|
4
4
|
module Rsd
|
5
5
|
|
6
|
-
class Metadata < IsoDoc::Metadata
|
7
|
-
def
|
8
|
-
|
9
|
-
here = File.dirname(__FILE__)
|
10
|
-
set(:logo_svg,
|
11
|
-
File.expand_path(File.join(here, "html", "logo.svg")))
|
12
|
-
end
|
13
|
-
|
14
|
-
def title(isoxml, _out)
|
15
|
-
main = isoxml&.at(ns("//bibdata/title[@language='en']"))&.text
|
16
|
-
set(:doctitle, main)
|
17
|
-
end
|
18
|
-
|
19
|
-
def subtitle(_isoxml, _out)
|
20
|
-
nil
|
6
|
+
class Metadata < IsoDoc::Acme::Metadata
|
7
|
+
def configuration
|
8
|
+
Metanorma::Rsd.configuration
|
21
9
|
end
|
22
10
|
|
23
|
-
def
|
24
|
-
|
25
|
-
set(:
|
26
|
-
end
|
27
|
-
|
28
|
-
def docid(isoxml, _out)
|
29
|
-
docnumber = isoxml.at(ns("//bibdata/docidentifier"))
|
30
|
-
set(:docnumber, docnumber&.text)
|
31
|
-
end
|
32
|
-
|
33
|
-
def status_abbr(status)
|
34
|
-
case status
|
35
|
-
when "working-draft" then "wd"
|
36
|
-
when "committee-draft" then "cd"
|
37
|
-
when "draft-standard" then "d"
|
38
|
-
else
|
39
|
-
""
|
40
|
-
end
|
41
|
-
end
|
42
|
-
|
43
|
-
def unpublished(status)
|
44
|
-
!%w(published withdrawn).include? status.downcase
|
11
|
+
def security(isoxml, _out)
|
12
|
+
security = isoxml.at(ns("//bibdata/ext/security")) || return
|
13
|
+
set(:security, security.text)
|
45
14
|
end
|
46
15
|
|
47
16
|
def version(isoxml, _out)
|
@@ -70,11 +39,6 @@ module IsoDoc
|
|
70
39
|
return isodate unless m && m[:yr] && m[:mo]
|
71
40
|
return "#{MONTHS[m[:mo].to_sym]} #{m[:yr]}"
|
72
41
|
end
|
73
|
-
|
74
|
-
def security(isoxml, _out)
|
75
|
-
security = isoxml.at(ns("//bibdata/ext/security")) || return
|
76
|
-
set(:security, security.text)
|
77
|
-
end
|
78
42
|
end
|
79
43
|
end
|
80
44
|
end
|
@@ -1,54 +1,24 @@
|
|
1
|
-
require_relative "base_convert"
|
2
1
|
require "isodoc"
|
2
|
+
require "isodoc/acme/pdf_convert"
|
3
|
+
require "isodoc/rsd/metadata"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Rsd
|
6
7
|
# A {Converter} implementation that generates PDF HTML output, and a
|
7
8
|
# document schema encapsulation of the document for validation
|
8
|
-
class PdfConvert < IsoDoc::PdfConvert
|
9
|
-
def
|
10
|
-
|
11
|
-
super
|
12
|
-
end
|
13
|
-
|
14
|
-
def default_fonts(options)
|
15
|
-
{
|
16
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Overpass",sans-serif'),
|
17
|
-
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Overpass",sans-serif'),
|
18
|
-
monospacefont: '"Space Mono",monospace'
|
19
|
-
}
|
20
|
-
end
|
21
|
-
|
22
|
-
def default_file_locations(options)
|
23
|
-
{
|
24
|
-
htmlstylesheet: html_doc_path("htmlstyle.scss"),
|
25
|
-
htmlcoverpage: html_doc_path("html_rsd_titlepage.html"),
|
26
|
-
htmlintropage: html_doc_path("html_rsd_intro.html"),
|
27
|
-
scripts_pdf: html_doc_path("scripts.pdf.html"),
|
28
|
-
}
|
9
|
+
class PdfConvert < IsoDoc::Acme::PdfConvert
|
10
|
+
def configuration
|
11
|
+
Metanorma::Rsd.configuration
|
29
12
|
end
|
30
13
|
|
31
|
-
def
|
32
|
-
|
33
|
-
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i|Space+Mono:400,700" rel="stylesheet">
|
34
|
-
<link href="https://fonts.googleapis.com/css?family=Overpass:300,300i,600,900" rel="stylesheet">
|
35
|
-
HEAD
|
14
|
+
def metadata_init(lang, script, labels)
|
15
|
+
@meta = Metadata.new(lang, script, labels)
|
36
16
|
end
|
37
17
|
|
38
|
-
def
|
39
|
-
|
40
|
-
|
41
|
-
make_body1(body, docxml)
|
42
|
-
make_body2(body, docxml)
|
43
|
-
make_body3(body, docxml)
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
def html_toc(docxml)
|
48
|
-
docxml
|
18
|
+
def info(isoxml, out)
|
19
|
+
@meta.security isoxml, out
|
20
|
+
super
|
49
21
|
end
|
50
|
-
|
51
|
-
include BaseConvert
|
52
22
|
end
|
53
23
|
end
|
54
24
|
end
|
@@ -1,48 +1,24 @@
|
|
1
|
-
require_relative "base_convert"
|
2
1
|
require "isodoc"
|
2
|
+
require "isodoc/acme/word_convert"
|
3
|
+
require "isodoc/rsd/metadata"
|
3
4
|
|
4
5
|
module IsoDoc
|
5
6
|
module Rsd
|
6
7
|
# A {Converter} implementation that generates Word output, and a document
|
7
8
|
# schema encapsulation of the document for validation
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
@libdir = File.dirname(__FILE__)
|
12
|
-
super
|
13
|
-
end
|
14
|
-
|
15
|
-
def default_fonts(options)
|
16
|
-
{
|
17
|
-
bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
|
18
|
-
headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Arial",sans-serif'),
|
19
|
-
monospacefont: '"Courier New",monospace'
|
20
|
-
}
|
9
|
+
class WordConvert < IsoDoc::Acme::WordConvert
|
10
|
+
def configuration
|
11
|
+
Metanorma::Rsd.configuration
|
21
12
|
end
|
22
13
|
|
23
|
-
def
|
24
|
-
|
25
|
-
wordstylesheet: html_doc_path("wordstyle.scss"),
|
26
|
-
standardstylesheet: html_doc_path("rsd.scss"),
|
27
|
-
header: html_doc_path("header.html"),
|
28
|
-
wordcoverpage: html_doc_path("word_rsd_titlepage.html"),
|
29
|
-
wordintropage: html_doc_path("word_rsd_intro.html"),
|
30
|
-
ulstyle: "l3",
|
31
|
-
olstyle: "l2",
|
32
|
-
}
|
14
|
+
def metadata_init(lang, script, labels)
|
15
|
+
@meta = Metadata.new(lang, script, labels)
|
33
16
|
end
|
34
17
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
xml.body **body_attr do |body|
|
39
|
-
make_body1(body, docxml)
|
40
|
-
make_body2(body, docxml)
|
41
|
-
make_body3(body, docxml)
|
42
|
-
end
|
18
|
+
def info(isoxml, out)
|
19
|
+
@meta.security isoxml, out
|
20
|
+
super
|
43
21
|
end
|
44
|
-
|
45
|
-
include BaseConvert
|
46
22
|
end
|
47
23
|
end
|
48
24
|
end
|
data/lib/metanorma/rsd.rb
CHANGED
@@ -1,7 +1,32 @@
|
|
1
|
-
|
1
|
+
require "metanorma"
|
2
|
+
require "metanorma-acme"
|
3
|
+
require "metanorma/rsd/processor"
|
2
4
|
|
3
5
|
module Metanorma
|
4
6
|
module Rsd
|
5
7
|
|
8
|
+
class Configuration < Metanorma::Acme::Configuration
|
9
|
+
def initialize(*args)
|
10
|
+
super
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class << self
|
15
|
+
extend Forwardable
|
16
|
+
|
17
|
+
attr_accessor :configuration
|
18
|
+
|
19
|
+
Configuration::CONFIG_ATTRS.each do |attr_name|
|
20
|
+
def_delegator :@configuration, attr_name
|
21
|
+
end
|
22
|
+
|
23
|
+
def configure
|
24
|
+
self.configuration ||= Configuration.new
|
25
|
+
yield(configuration)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
configure {}
|
6
30
|
end
|
7
31
|
end
|
32
|
+
Metanorma::Registry.instance.register(Metanorma::Rsd::Processor)
|
data/metanorma-rsd.gemspec
CHANGED
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
#spec.add_dependency "nokogiri"
|
33
33
|
spec.add_dependency "metanorma-standoc", "~> 1.3.0"
|
34
34
|
spec.add_dependency "isodoc", "~> 1.0.0"
|
35
|
+
spec.add_dependency 'metanorma-acme', '~> 1.4.0'
|
35
36
|
|
36
37
|
spec.add_development_dependency "byebug", "~> 9.1"
|
37
38
|
spec.add_development_dependency "equivalent-xml", "~> 0.6"
|
data/metanorma.yml
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
organization_name_short: Ribose
|
2
|
+
organization_name_long: Ribose
|
3
|
+
document_namespace: https://www.metanorma.org/ns/rsd
|
4
|
+
xml_root_tag: 'rsd-standard'
|
5
|
+
logo_path: lib/isodoc/rsd/html/logo.svg
|
6
|
+
validate_rng_file: lib/asciidoctor/rsd/rsd.rng
|
7
|
+
htmlcoverpage: lib/isodoc/rsd/html/html_rsd_titlepage.html
|
8
|
+
htmlintropage: lib/isodoc/rsd/html/html_rsd_intro.html
|
9
|
+
htmlstylesheet: lib/isodoc/rsd/html/htmlstyle.scss
|
10
|
+
scripts: lib/isodoc/rsd/html/scripts.html
|
11
|
+
scripts_pdf: lib/isodoc/rsd/html/scripts.pdf.html
|
12
|
+
standardstylesheet: lib/isodoc/rsd/html/rsd.scss
|
13
|
+
header: lib/isodoc/rsd/html/header.html
|
14
|
+
wordcoverpage: lib/isodoc/rsd/html/word_rsd_titlepage.html
|
15
|
+
wordintropage: lib/isodoc/rsd/html/word_rsd_intro.html
|
16
|
+
wordstylesheet: lib/isodoc/rsd/html/wordstyle.scss
|
17
|
+
docid_template: "{{ docnumeric }}{% if stageabbr %}({{ stageabbr }}){%endif%}"
|
18
|
+
published_stages:
|
19
|
+
- published
|
20
|
+
stage_abbreviations:
|
21
|
+
working-draft: wd
|
22
|
+
committee-draft: cd
|
23
|
+
draft-standard: d
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-rsd
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.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: 2020-
|
11
|
+
date: 2020-02-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|
@@ -52,6 +52,20 @@ dependencies:
|
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: 1.0.0
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: metanorma-acme
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.4.0
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.4.0
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: byebug
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -227,7 +241,6 @@ files:
|
|
227
241
|
- lib/asciidoctor/rsd/reqt.rng
|
228
242
|
- lib/asciidoctor/rsd/rsd.rng
|
229
243
|
- lib/asciidoctor/rsd/validate.rb
|
230
|
-
- lib/isodoc/rsd/base_convert.rb
|
231
244
|
- lib/isodoc/rsd/html/header.html
|
232
245
|
- lib/isodoc/rsd/html/html_rsd_intro.html
|
233
246
|
- lib/isodoc/rsd/html/html_rsd_titlepage.html
|
@@ -248,6 +261,7 @@ files:
|
|
248
261
|
- lib/metanorma/rsd/processor.rb
|
249
262
|
- lib/metanorma/rsd/version.rb
|
250
263
|
- metanorma-rsd.gemspec
|
264
|
+
- metanorma.yml
|
251
265
|
homepage: https://github.com/metanorma/metanorma-rsd
|
252
266
|
licenses:
|
253
267
|
- BSD-2-Clause
|
@@ -1,56 +0,0 @@
|
|
1
|
-
require_relative "metadata"
|
2
|
-
require "fileutils"
|
3
|
-
|
4
|
-
module IsoDoc
|
5
|
-
module Rsd
|
6
|
-
module BaseConvert
|
7
|
-
#def convert1(docxml, filename, dir)
|
8
|
-
#FileUtils.cp html_doc_path('logo.svg'), File.join(@localdir, "logo.svg")
|
9
|
-
#@files_to_delete << File.join(@localdir, "logo.svg")
|
10
|
-
#super
|
11
|
-
#end
|
12
|
-
|
13
|
-
def metadata_init(lang, script, labels)
|
14
|
-
@meta = Metadata.new(lang, script, labels)
|
15
|
-
end
|
16
|
-
|
17
|
-
def annex_name(annex, name, div)
|
18
|
-
div.h1 **{ class: "Annex" } do |t|
|
19
|
-
t << "#{anchor(annex['id'], :label)} "
|
20
|
-
t.br
|
21
|
-
t.b do |b|
|
22
|
-
name&.children&.each { |c2| parse(c2, b) }
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def i18n_init(lang, script)
|
28
|
-
super
|
29
|
-
@annex_lbl = "Appendix"
|
30
|
-
end
|
31
|
-
|
32
|
-
def fileloc(loc)
|
33
|
-
File.join(File.dirname(__FILE__), loc)
|
34
|
-
end
|
35
|
-
|
36
|
-
def cleanup(docxml)
|
37
|
-
super
|
38
|
-
term_cleanup(docxml)
|
39
|
-
end
|
40
|
-
|
41
|
-
def term_cleanup(docxml)
|
42
|
-
docxml.xpath("//p[@class = 'Terms']").each do |d|
|
43
|
-
h2 = d.at("./preceding-sibling::*[@class = 'TermNum'][1]")
|
44
|
-
h2.add_child(" ")
|
45
|
-
h2.add_child(d.remove)
|
46
|
-
end
|
47
|
-
docxml
|
48
|
-
end
|
49
|
-
|
50
|
-
def info(isoxml, out)
|
51
|
-
@meta.security isoxml, out
|
52
|
-
super
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|