metanorma-csd 1.0.7 → 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/README.adoc +7 -4
- data/lib/asciidoctor/csd/converter.rb +29 -30
- data/lib/asciidoctor/csd/csd.rng +1 -0
- data/lib/isodoc/csd/html/html_csd_titlepage.html +5 -5
- data/lib/isodoc/csd/html/htmlstyle.scss +98 -137
- data/lib/isodoc/csd/metadata.rb +35 -16
- data/lib/metanorma/csd.rb +22 -0
- data/lib/metanorma/csd/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f636a1b9e0dd059719304718108e989bc5b2674bf424489ab1d8c708c5a42fab
|
4
|
+
data.tar.gz: 144e027a106e43e82aaccbb32b6823dff56ed9b1d3cb309044c60bc9113f87b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 282fa313ca0659704839dcd19ea60e7f376e5d5094816e320db9c7f85b5778de7c08256cabf1c4645a4a1f959d9f3eaa59d1e543707791b8966ec573b9bc9dfa
|
7
|
+
data.tar.gz: 05f8626d4f0c79caad7fa6de6dc122226c8b9f26c08aad38f0edd711b87b9602a2e1da215aedbfd829183f7ec5cfa094bc4f0da52dec66ef3352dc90c8c9d7cf
|
data/README.adoc
CHANGED
@@ -20,14 +20,14 @@ for guidance, including https://github.com/riboseinc/metanorma-iso/wiki/Guidance
|
|
20
20
|
The following outputs are generated.
|
21
21
|
|
22
22
|
* (Optional) An HTML preview generated directly from the Asciidoctor document,
|
23
|
-
using native Asciidoc formatting.
|
23
|
+
using native Asciidoc formatting.
|
24
24
|
** http://asciimath.org[AsciiMathML] is to be used for mathematical formatting.
|
25
25
|
The gem uses the https://github.com/asciidoctor/asciimath[Ruby AsciiMath parser],
|
26
26
|
which is syntactically stricter than the common MathJax processor;
|
27
27
|
if you do not get expected results, try bracketting terms your in AsciiMathML
|
28
28
|
expressions.
|
29
29
|
* an XML representation of the document, intended as a document model for CSD
|
30
|
-
International Standards.
|
30
|
+
International Standards.
|
31
31
|
* The XML representation is processed in turn to generate the following outputs
|
32
32
|
as end deliverable CSD standard drafts.
|
33
33
|
** HTML
|
@@ -55,12 +55,14 @@ document.
|
|
55
55
|
|
56
56
|
The gem then converts the XML into HTML and PDF.
|
57
57
|
|
58
|
+
////
|
58
59
|
The gem can also be invoked directly within asciidoctor, though this is deprecated:
|
59
60
|
|
60
61
|
[source,console]
|
61
62
|
----
|
62
|
-
$ asciidoctor -b csd -r 'metanorma-csd' a.adoc
|
63
|
+
$ asciidoctor -b csd -r 'metanorma-csd' a.adoc
|
63
64
|
----
|
65
|
+
////
|
64
66
|
|
65
67
|
=== Installation
|
66
68
|
|
@@ -77,7 +79,7 @@ $ gem install metanorma-csd
|
|
77
79
|
=== PDF output
|
78
80
|
|
79
81
|
PDF output is generated by printing the HTML output as PDF. This is done
|
80
|
-
within the gem, using
|
82
|
+
within the gem, using
|
81
83
|
https://developers.google.com/web/updates/2017/04/headless-chrome[Headless Chrome],
|
82
84
|
via the https://github.com/GoogleChrome/puppeteer[Puppeteer] Node library.
|
83
85
|
|
@@ -145,6 +147,7 @@ report:: Report (suffix `R`)
|
|
145
147
|
administrative:: Administrative (suffix `A`)
|
146
148
|
amendment:: Amendment (suffix `Amd`)
|
147
149
|
technical corrigendum:: Technical Corrigendum (suffix `Cor`)
|
150
|
+
advisory:: Advisory (suffix `Adv`)
|
148
151
|
--
|
149
152
|
|
150
153
|
`:status:``:: The document status. The permitted types are: `proposal`,
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require "asciidoctor"
|
2
2
|
require "isodoc/csd/html_convert"
|
3
3
|
require "isodoc/csd/word_convert"
|
4
|
+
require "metanorma/csd"
|
4
5
|
require "asciidoctor/standoc/converter"
|
5
6
|
require "fileutils"
|
6
7
|
|
@@ -57,20 +58,10 @@ module Asciidoctor
|
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
60
|
-
DOCSUFFIX = {
|
61
|
-
"standard": "",
|
62
|
-
"directive": "DIR",
|
63
|
-
"guide": "Guide",
|
64
|
-
"specification": "S",
|
65
|
-
"report": "R",
|
66
|
-
"amendment": "Amd",
|
67
|
-
"technical corrigendum": "Cor",
|
68
|
-
"administrative": "A",
|
69
|
-
}
|
70
61
|
|
71
62
|
def metadata_status(node, xml)
|
72
63
|
status = node.attr("status")
|
73
|
-
unless status &&
|
64
|
+
unless status && ::Metanorma::Csd::DOCSTATUS.keys.include?(status)
|
74
65
|
warn "#{status} is not a legal status"
|
75
66
|
end
|
76
67
|
xml.status(**{ format: "plain" }) { |s| s << status }
|
@@ -78,18 +69,36 @@ module Asciidoctor
|
|
78
69
|
|
79
70
|
def metadata_id(node, xml)
|
80
71
|
id = node.attr("docnumber") || "???"
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
72
|
+
# prefix = "CC"
|
73
|
+
doctype(node)
|
74
|
+
# unless typesuffix.empty?
|
75
|
+
# prefix += "/#{typesuffix}"
|
76
|
+
# end
|
77
|
+
#
|
78
|
+
# status = DOCSTATUS[node.attr("status")] || ""
|
79
|
+
# unless status.empty?
|
80
|
+
# prefix += "/#{status}"
|
81
|
+
# end
|
82
|
+
#
|
83
|
+
# id = "#{prefix} #{id}"
|
84
|
+
#
|
85
|
+
# year = node.attr("copyright-year")
|
86
|
+
# if year
|
87
|
+
# id += ":#{year}"
|
88
|
+
# end
|
89
|
+
|
90
90
|
xml.docidentifier { |i| i << id }
|
91
91
|
end
|
92
92
|
|
93
|
+
def doctype(node)
|
94
|
+
d = node.attr("doctype")
|
95
|
+
unless ::Metanorma::Csd::DOCSUFFIX.keys.include?(d)
|
96
|
+
warn "#{d} is not a legal document type: reverting to 'standard'"
|
97
|
+
d = "standard"
|
98
|
+
end
|
99
|
+
d
|
100
|
+
end
|
101
|
+
|
93
102
|
def metadata_copyright(node, xml)
|
94
103
|
from = node.attr("copyright-year") || Date.today.year
|
95
104
|
xml.copyright do |c|
|
@@ -119,16 +128,6 @@ module Asciidoctor
|
|
119
128
|
ret1
|
120
129
|
end
|
121
130
|
|
122
|
-
def doctype(node)
|
123
|
-
d = node.attr("doctype")
|
124
|
-
unless ["standard", "directive", "guide", "specification", "report",
|
125
|
-
"amendment", "technical corrigendum" ].include?(d)
|
126
|
-
warn "#{d} is not a legal document type: reverting to 'standard'"
|
127
|
-
d = "standard"
|
128
|
-
end
|
129
|
-
d
|
130
|
-
end
|
131
|
-
|
132
131
|
def document(node)
|
133
132
|
init(node)
|
134
133
|
ret1 = makexml(node)
|
data/lib/asciidoctor/csd/csd.rng
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
<div class="document-stage-band" id="{{
|
1
|
+
<div class="document-stage-band" id="{{ status | replace: ' ', '-' | downcase }}-band">
|
2
2
|
<p class="document-stage">{{ status }}</p>
|
3
3
|
</div>
|
4
4
|
|
5
5
|
<div class="document-type-band" id="{{ doctype | replace: ' ', '-' | downcase }}-band">
|
6
|
-
<p class="document-type">
|
6
|
+
<p class="document-type">CalConnect {{ doctype }}</p>
|
7
7
|
</div>
|
8
8
|
|
9
9
|
|
@@ -19,8 +19,8 @@
|
|
19
19
|
<div class="coverpage-doc-identity">
|
20
20
|
<div class="doc-number">
|
21
21
|
<span class="docnumber">{{ docnumber }}</span>
|
22
|
-
<span class="docnumber-separator">:</span>
|
23
|
-
<span class="docyear">{{ docyear }}</span>
|
22
|
+
<!-- <span class="docnumber-separator">:</span>
|
23
|
+
<span class="docyear">{{ docyear }}</span> -->
|
24
24
|
</div>
|
25
25
|
|
26
26
|
<div class="coverpage-title">
|
@@ -40,7 +40,7 @@
|
|
40
40
|
|
41
41
|
<div class="title-section1">
|
42
42
|
<div class="coverpage-stage-block" >
|
43
|
-
<span class="coverpage-stage" id="{{ doctype | replace: ' ', '-' | downcase }}">
|
43
|
+
<span class="coverpage-stage" id="{{ doctype | replace: ' ', '-' | downcase }}">CalConnect {{ doctype }}</span>
|
44
44
|
</div>
|
45
45
|
|
46
46
|
<div class="coverpage-stage-block" >
|
@@ -2,7 +2,7 @@
|
|
2
2
|
0 CSS RESET
|
3
3
|
*/
|
4
4
|
|
5
|
-
/* http://meyerweb.com/eric/tools/css/reset/
|
5
|
+
/* http://meyerweb.com/eric/tools/css/reset/
|
6
6
|
v2.0 | 20110126
|
7
7
|
License: none (public domain)
|
8
8
|
*/
|
@@ -59,9 +59,9 @@ time, mark, audio, video {
|
|
59
59
|
|
60
60
|
|
61
61
|
html, body, div, span, applet, object, iframe,
|
62
|
-
p, blockquote,
|
63
|
-
a, abbr, acronym, address, big, cite,
|
64
|
-
del, dfn, em, img, ins, q, s,
|
62
|
+
p, blockquote,
|
63
|
+
a, abbr, acronym, address, big, cite,
|
64
|
+
del, dfn, em, img, ins, q, s,
|
65
65
|
small, strike, strong, sub, sup, var,
|
66
66
|
b, u, i, center,
|
67
67
|
dl, dt, dd, ol, ul, li,
|
@@ -101,7 +101,7 @@ dd p, dt p {
|
|
101
101
|
|
102
102
|
|
103
103
|
/* HTML5 display-role reset for older browsers */
|
104
|
-
article, aside, details, figcaption, figure,
|
104
|
+
article, aside, details, figcaption, figure,
|
105
105
|
footer, header, hgroup, menu, nav, section {
|
106
106
|
display: block;
|
107
107
|
}
|
@@ -121,12 +121,12 @@ table {
|
|
121
121
|
border-spacing: 0;
|
122
122
|
}
|
123
123
|
|
124
|
-
|
124
|
+
|
125
125
|
/*
|
126
126
|
1. HTML & Body
|
127
127
|
*/
|
128
128
|
|
129
|
-
body {
|
129
|
+
body {
|
130
130
|
margin: 0;
|
131
131
|
margin-left: auto;
|
132
132
|
margin-right: auto;
|
@@ -161,7 +161,7 @@ table {
|
|
161
161
|
overflow: auto;
|
162
162
|
padding: 0 0 0 45px;
|
163
163
|
margin-right: 30px;
|
164
|
-
background-color:#f7f7f7;
|
164
|
+
background-color:#f7f7f7;
|
165
165
|
}
|
166
166
|
|
167
167
|
#toggle {
|
@@ -177,10 +177,10 @@ table {
|
|
177
177
|
#toggle span {
|
178
178
|
text-align: center;
|
179
179
|
width: 100%;
|
180
|
-
position: absolute;
|
180
|
+
position: absolute;
|
181
181
|
top: 50%;
|
182
182
|
transform: translate(0, -50%);
|
183
|
-
|
183
|
+
|
184
184
|
}
|
185
185
|
|
186
186
|
|
@@ -208,14 +208,14 @@ table {
|
|
208
208
|
overflow: visible;
|
209
209
|
}
|
210
210
|
}
|
211
|
-
|
211
|
+
|
212
212
|
@media screen {
|
213
|
-
img {
|
214
|
-
width: 100%;
|
213
|
+
img {
|
214
|
+
width: 100%;
|
215
215
|
height: auto;
|
216
216
|
}
|
217
217
|
}
|
218
|
-
|
218
|
+
|
219
219
|
|
220
220
|
#toc ul {
|
221
221
|
margin: 0;
|
@@ -295,20 +295,18 @@ table {
|
|
295
295
|
}
|
296
296
|
|
297
297
|
p.document-type, p.document-stage {
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
-moz-transform:rotate(180deg);
|
308
|
-
-o-transform: rotate(180deg);
|
298
|
+
color: white;
|
299
|
+
text-transform: uppercase;
|
300
|
+
font-size: 0.9em;
|
301
|
+
font-weight: 400;
|
302
|
+
letter-spacing: 0.05em;
|
303
|
+
margin:0;
|
304
|
+
margin-left: 6px;
|
305
|
+
writing-mode:tb-rl;
|
306
|
+
transform:rotate(180deg);
|
309
307
|
white-space:nowrap;
|
310
308
|
display:block;
|
311
|
-
|
309
|
+
bottom:0;
|
312
310
|
}
|
313
311
|
|
314
312
|
p.document-type {
|
@@ -326,93 +324,56 @@ p.document-stage {
|
|
326
324
|
height:160px;
|
327
325
|
}
|
328
326
|
|
329
|
-
#standard-band {
|
330
|
-
background-color: #0ac442;
|
331
|
-
}
|
332
|
-
|
333
|
-
#standard {
|
334
|
-
border-bottom: solid 3px #0ac442;
|
335
|
-
}
|
336
327
|
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
#
|
342
|
-
|
343
|
-
|
328
|
+
$doctype-colors-list:(
|
329
|
+
standard: #0AC442,
|
330
|
+
governance: #540D6E,
|
331
|
+
guide: #D183C9,
|
332
|
+
specification: #65AFFF,
|
333
|
+
report: #3A405A,
|
334
|
+
amendment: #F26430,
|
335
|
+
corrigendum: #C84630,
|
336
|
+
administrative: #BFAE48,
|
337
|
+
advisory: #BD9391
|
338
|
+
);
|
344
339
|
|
345
|
-
|
346
|
-
|
340
|
+
@each $key,$val in $doctype-colors-list{
|
341
|
+
##{$key}-band {
|
342
|
+
background-color: #{$val};
|
343
|
+
}
|
344
|
+
##{$key} {
|
345
|
+
border-bottom: solid 3px #{$val};
|
346
|
+
}
|
347
347
|
}
|
348
348
|
|
349
|
-
|
350
|
-
|
349
|
+
$docstage-colors-list:(
|
350
|
+
proposal: #39A0ED,
|
351
|
+
working-draft: #2D7393,
|
352
|
+
committee-draft: #2A6B7C,
|
353
|
+
draft-standard: #1C7F7A,
|
354
|
+
final-draft: #53C170,
|
355
|
+
published: #069E2D,
|
356
|
+
withdrawn: #004E64,
|
357
|
+
cancelled: #2E382E,
|
358
|
+
);
|
359
|
+
|
360
|
+
@each $key,$val in $docstage-colors-list{
|
361
|
+
##{$key}-band {
|
362
|
+
background-color: #{$val};
|
363
|
+
}
|
364
|
+
##{$key} {
|
365
|
+
border-bottom: solid 3px #{$val};
|
366
|
+
}
|
351
367
|
}
|
352
368
|
|
353
369
|
.coverpage-maturity {
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
}
|
360
|
-
|
361
|
-
#proposal {
|
362
|
-
border-bottom: solid 3px #00BFFF;
|
363
|
-
}
|
364
|
-
|
365
|
-
#proposal-band {
|
366
|
-
background-color: #00BFFF;
|
367
|
-
}
|
368
|
-
|
369
|
-
#working-draft {
|
370
|
-
border-bottom: solid 3px #fda706;
|
371
|
-
}
|
372
|
-
|
373
|
-
#working-draft-band {
|
374
|
-
background-color: #fda706;
|
375
|
-
}
|
376
|
-
|
377
|
-
#committee-draft {
|
378
|
-
border-bottom: solid 3px #fd06fd;
|
379
|
-
}
|
380
|
-
|
381
|
-
#committee-draft-band {
|
382
|
-
background-color: #fd06fd;
|
383
|
-
}
|
384
|
-
|
385
|
-
#draft-standard {
|
386
|
-
border-bottom: solid 3px #fdf906;
|
387
|
-
}
|
388
|
-
|
389
|
-
#draft-standard-band {
|
390
|
-
background-color: #fdf906;
|
391
|
-
}
|
392
|
-
|
393
|
-
#final-draft {
|
394
|
-
border-bottom: solid 3px #7e0d13;
|
395
|
-
}
|
396
|
-
|
397
|
-
#final-draft-band {
|
398
|
-
background-color: #7e0d13;
|
399
|
-
}
|
400
|
-
|
401
|
-
#published {
|
402
|
-
border-bottom: solid 3px #0ac442;
|
403
|
-
}
|
404
|
-
|
405
|
-
#published-band {
|
406
|
-
background-color: #0ac442;
|
407
|
-
}
|
408
|
-
|
409
|
-
#withdrawn {
|
410
|
-
border-bottom: solid 3px #a0a0a0;
|
370
|
+
font-family: $bodyfont;
|
371
|
+
font-weight: 400;
|
372
|
+
font-size: 1em;
|
373
|
+
margin: 0 0 2em 0;
|
374
|
+
text-transform: uppercase;
|
411
375
|
}
|
412
376
|
|
413
|
-
#withdrawn-band {
|
414
|
-
background-color: #a0a0a0;
|
415
|
-
}
|
416
377
|
|
417
378
|
/*
|
418
379
|
3. TYPOGRAPHY
|
@@ -421,7 +382,7 @@ p.document-stage {
|
|
421
382
|
/*
|
422
383
|
3.1 Titles
|
423
384
|
*/
|
424
|
-
|
385
|
+
|
425
386
|
h1,h2,h3,h4,h5,h6 {
|
426
387
|
font-family: $headerfont;
|
427
388
|
color: #0e1a85;
|
@@ -431,7 +392,7 @@ p.document-stage {
|
|
431
392
|
}
|
432
393
|
|
433
394
|
h1 {
|
434
|
-
font-size: 1.4em;
|
395
|
+
font-size: 1.4em;
|
435
396
|
text-transform: uppercase;
|
436
397
|
margin-top: 2em;
|
437
398
|
}
|
@@ -439,15 +400,15 @@ p.document-stage {
|
|
439
400
|
h1#content {
|
440
401
|
margin-top: 2em;
|
441
402
|
}
|
442
|
-
|
403
|
+
|
443
404
|
h2 {
|
444
|
-
font-size: 1.3em;
|
405
|
+
font-size: 1.3em;
|
445
406
|
font-weight: 400;
|
446
407
|
}
|
447
|
-
|
408
|
+
|
448
409
|
h3 {
|
449
410
|
font-size: 1.1em;
|
450
|
-
font-weight: 400;
|
411
|
+
font-weight: 400;
|
451
412
|
}
|
452
413
|
|
453
414
|
/*
|
@@ -455,8 +416,8 @@ p.document-stage {
|
|
455
416
|
float: left;
|
456
417
|
padding-right: 4px;
|
457
418
|
margin-left: -20px;
|
458
|
-
font-family: "Font Awesome 5 Free";
|
459
|
-
font-weight: 900;
|
419
|
+
font-family: "Font Awesome 5 Free";
|
420
|
+
font-weight: 900;
|
460
421
|
font-size: 0.8em;
|
461
422
|
color: #cfcfcf;
|
462
423
|
content: "\f0c1";
|
@@ -480,7 +441,7 @@ p.document-stage {
|
|
480
441
|
line-height: 1.7em;
|
481
442
|
margin: 0;
|
482
443
|
}
|
483
|
-
|
444
|
+
|
484
445
|
/*
|
485
446
|
p.AltTerms {
|
486
447
|
font-style: italic;
|
@@ -496,12 +457,12 @@ span.obligation {
|
|
496
457
|
/*
|
497
458
|
3.2 Links
|
498
459
|
*/
|
499
|
-
|
460
|
+
|
500
461
|
a, a:visited{
|
501
462
|
text-decoration: none;
|
502
463
|
color: #485094;
|
503
464
|
}
|
504
|
-
|
465
|
+
|
505
466
|
a:hover {
|
506
467
|
color: white;
|
507
468
|
background: #1d1d1d;
|
@@ -526,15 +487,15 @@ span.obligation {
|
|
526
487
|
}
|
527
488
|
|
528
489
|
|
529
|
-
|
490
|
+
|
530
491
|
/*
|
531
492
|
3.3 Lists
|
532
493
|
*/
|
533
|
-
|
494
|
+
|
534
495
|
ul {
|
535
496
|
margin-left: 1.2em;
|
536
497
|
}
|
537
|
-
|
498
|
+
|
538
499
|
ol {
|
539
500
|
margin-left: 1.2em; }
|
540
501
|
|
@@ -810,11 +771,11 @@ p {
|
|
810
771
|
font-family: $headerfont;
|
811
772
|
font-size: 1.2em;
|
812
773
|
line-height: 1.2em;
|
813
|
-
font-weight: 900;
|
774
|
+
font-weight: 900;
|
814
775
|
padding-left: 1em;
|
815
776
|
padding-right: 1em;
|
816
777
|
}
|
817
|
-
|
778
|
+
|
818
779
|
.title-section1 {
|
819
780
|
padding: 0 2em 0 3em;
|
820
781
|
}
|
@@ -822,8 +783,8 @@ p {
|
|
822
783
|
.prefatory-section {
|
823
784
|
padding: 0 3em 0 6em;
|
824
785
|
}
|
825
|
-
|
826
|
-
|
786
|
+
|
787
|
+
|
827
788
|
.zzSTDTitle1, .MsoCommentText {
|
828
789
|
display: none;
|
829
790
|
}
|
@@ -839,13 +800,13 @@ p {
|
|
839
800
|
text-transform: uppercase;
|
840
801
|
font-weight: 600;
|
841
802
|
}
|
842
|
-
|
803
|
+
|
843
804
|
.coverpage-tc-name {
|
844
805
|
font-size: 1.2em;
|
845
806
|
line-height: 1.2em;
|
846
807
|
margin: 0.25em 0;
|
847
808
|
}
|
848
|
-
|
809
|
+
|
849
810
|
/*
|
850
811
|
4.2 Document Identity
|
851
812
|
*/
|
@@ -854,8 +815,8 @@ p {
|
|
854
815
|
font-size: 2em;
|
855
816
|
line-height: 2em;
|
856
817
|
}
|
857
|
-
|
858
|
-
|
818
|
+
|
819
|
+
|
859
820
|
.coverpage-title .title-second {
|
860
821
|
display: none;
|
861
822
|
}
|
@@ -869,13 +830,13 @@ p {
|
|
869
830
|
}
|
870
831
|
|
871
832
|
|
872
|
-
|
873
|
-
|
833
|
+
|
834
|
+
|
874
835
|
/*
|
875
836
|
4.3 Draft Warning
|
876
837
|
*/
|
877
838
|
|
878
|
-
|
839
|
+
|
879
840
|
.coverpage-warning {
|
880
841
|
border-top: solid 1px #f36f36;
|
881
842
|
border-bottom: solid 1px #f36f36;
|
@@ -883,7 +844,7 @@ p {
|
|
883
844
|
color: #485094;
|
884
845
|
padding: 1em;
|
885
846
|
}
|
886
|
-
|
847
|
+
|
887
848
|
.coverpage-warning .title {
|
888
849
|
color: #f36f36;
|
889
850
|
font-family: $headerfont;
|
@@ -892,21 +853,21 @@ p {
|
|
892
853
|
font-size: 1.2em;
|
893
854
|
}
|
894
855
|
|
895
|
-
|
896
|
-
|
856
|
+
|
857
|
+
|
897
858
|
/*
|
898
859
|
4.4 Copyright
|
899
|
-
*/
|
860
|
+
*/
|
900
861
|
|
901
862
|
.copyright {
|
902
863
|
padding: 1em;
|
903
864
|
font-size: 0.8em;
|
904
865
|
text-align: left;
|
905
866
|
}
|
906
|
-
|
907
|
-
|
867
|
+
|
868
|
+
|
908
869
|
.copyright .name, .copyright .address {color: #485094;}
|
909
|
-
|
870
|
+
|
910
871
|
|
911
872
|
|
912
873
|
/*
|
@@ -936,7 +897,7 @@ To top button
|
|
936
897
|
padding: 10px 15px 10px 15px;
|
937
898
|
border-radius: 4px;
|
938
899
|
}
|
939
|
-
|
900
|
+
|
940
901
|
#myBtn:hover {
|
941
902
|
opacity: 1;
|
942
903
|
}
|
data/lib/isodoc/csd/metadata.rb
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
require "isodoc"
|
2
|
+
require "metanorma/csd"
|
2
3
|
|
3
4
|
module IsoDoc
|
4
5
|
module Csd
|
5
6
|
# A {Converter} implementation that generates CSD output, and a document
|
6
7
|
# schema encapsulation of the document for validation
|
7
8
|
class Metadata < IsoDoc::Metadata
|
9
|
+
|
8
10
|
def initialize(lang, script, labels)
|
9
11
|
super
|
10
12
|
set(:status, "XXX")
|
@@ -27,14 +29,39 @@ module IsoDoc
|
|
27
29
|
|
28
30
|
def docid(isoxml, _out)
|
29
31
|
docnumber = isoxml.at(ns("//bibdata/docidentifier"))
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
dn += "/#{abbr}" unless abbr.empty?
|
32
|
+
|
33
|
+
prefix = "CC"
|
34
|
+
|
35
|
+
if docnumber.nil?
|
36
|
+
set(:docnumber, prefix)
|
36
37
|
end
|
37
|
-
|
38
|
+
|
39
|
+
dn = docnumber&.text
|
40
|
+
|
41
|
+
doctype = isoxml&.at(ns("//bibdata"))&.attr("type")
|
42
|
+
typesuffix = ::Metanorma::Csd::DOCSUFFIX[doctype] || ""
|
43
|
+
unless typesuffix.empty?
|
44
|
+
prefix += "/#{typesuffix}"
|
45
|
+
end
|
46
|
+
|
47
|
+
docstatus = isoxml&.at(ns("//bibdata/status"))
|
48
|
+
unless docstatus.nil?
|
49
|
+
status_text = docstatus.text
|
50
|
+
status = ::Metanorma::Csd::DOCSTATUS[status_text] || ""
|
51
|
+
unless status.empty?
|
52
|
+
set(:status, status_print(status_text))
|
53
|
+
prefix += "/#{status}"
|
54
|
+
end
|
55
|
+
end
|
56
|
+
|
57
|
+
docid = "#{prefix} #{dn}"
|
58
|
+
|
59
|
+
year = isoxml&.at(ns("//bibdata/copyright/from"))&.text
|
60
|
+
if year
|
61
|
+
docid += ":#{year}"
|
62
|
+
end
|
63
|
+
|
64
|
+
set(:docnumber, docid)
|
38
65
|
end
|
39
66
|
|
40
67
|
def status_print(status)
|
@@ -42,15 +69,7 @@ module IsoDoc
|
|
42
69
|
end
|
43
70
|
|
44
71
|
def status_abbr(status)
|
45
|
-
|
46
|
-
when "working-draft" then "WD"
|
47
|
-
when "committee-draft" then "CD"
|
48
|
-
when "draft-standard" then "DS"
|
49
|
-
when "final-draft" then "FDS"
|
50
|
-
# when "published" then ""
|
51
|
-
else
|
52
|
-
""
|
53
|
-
end
|
72
|
+
::Metanorma::Csd::DOCSTATUS[status] || ""
|
54
73
|
end
|
55
74
|
end
|
56
75
|
end
|
data/lib/metanorma/csd.rb
CHANGED
@@ -3,5 +3,27 @@ require_relative "./csd/processor"
|
|
3
3
|
module Metanorma
|
4
4
|
module Csd
|
5
5
|
|
6
|
+
DOCSUFFIX = {
|
7
|
+
"standard" => "",
|
8
|
+
"directive" => "DIR",
|
9
|
+
"guide" => "Guide",
|
10
|
+
"specification" => "S",
|
11
|
+
"report" => "R",
|
12
|
+
"amendment" => "Amd",
|
13
|
+
"technical-corrigendum" => "Cor",
|
14
|
+
"administrative" => "A",
|
15
|
+
"advisory" => "Adv",
|
16
|
+
}
|
17
|
+
|
18
|
+
DOCSTATUS = {
|
19
|
+
"working-draft" => "WD",
|
20
|
+
"committee-draft" => "CD",
|
21
|
+
"draft-standard" => "DS",
|
22
|
+
"final-draft" => "FDS",
|
23
|
+
"published" => "",
|
24
|
+
"cancelled" => "",
|
25
|
+
"withdrawn" => "",
|
26
|
+
}
|
27
|
+
|
6
28
|
end
|
7
29
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-csd
|
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: 2018-10-
|
11
|
+
date: 2018-10-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: metanorma-standoc
|