metanorma-csd 1.0.7 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|