metanorma-nist 1.2.5 → 1.2.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +62 -0
- data/.github/workflows/release.yml +36 -0
- data/README.adoc +23 -7
- data/lib/asciidoctor/nist/basicdoc.rng +50 -3
- data/lib/asciidoctor/nist/boilerplate.rb +3 -1
- data/lib/asciidoctor/nist/cleanup.rb +2 -1
- data/lib/asciidoctor/nist/converter.rb +3 -0
- data/lib/asciidoctor/nist/front.rb +36 -45
- data/lib/asciidoctor/nist/front_id.rb +18 -7
- data/lib/asciidoctor/nist/isodoc.rng +36 -43
- data/lib/asciidoctor/nist/nist.rng +1 -0
- data/lib/asciidoctor/nist/validate.rb +17 -6
- data/lib/isodoc/nist/base_convert.rb +2 -3
- data/lib/isodoc/nist/fonts_manifest.yaml +4 -0
- data/lib/isodoc/nist/html/header_cswp.html +2 -3
- data/lib/isodoc/nist/html/htmlstyle.css +225 -221
- data/lib/isodoc/nist/html/htmlstyle.scss +5 -6
- data/lib/isodoc/nist/html/nist.css +49 -50
- data/lib/isodoc/nist/html/nist.scss +49 -50
- data/lib/isodoc/nist/html/nist_cswp.css +48 -49
- data/lib/isodoc/nist/html/nist_cswp.scss +48 -49
- data/lib/isodoc/nist/html/wordstyle.css +42 -42
- data/lib/isodoc/nist/html/wordstyle.scss +42 -42
- data/lib/isodoc/nist/html/wordstyle_cswp.css +52 -52
- data/lib/isodoc/nist/html/wordstyle_cswp.scss +52 -52
- data/lib/isodoc/nist/html_convert.rb +12 -1
- data/lib/isodoc/nist/metadata.rb +28 -40
- data/lib/isodoc/nist/metadata_id.rb +3 -7
- data/lib/isodoc/nist/nist.cswp.xsl +329 -156
- data/lib/isodoc/nist/nist.sp.xsl +326 -192
- data/lib/isodoc/nist/presentation_xml_convert.rb +30 -10
- data/lib/isodoc/nist/refs.rb +6 -20
- data/lib/isodoc/nist/render.rb +42 -40
- data/lib/isodoc/nist/render_dates.rb +8 -9
- data/lib/isodoc/nist/word_convert.rb +9 -3
- data/lib/metanorma/nist/processor.rb +14 -8
- data/lib/metanorma/nist/version.rb +1 -1
- data/metanorma-nist.gemspec +2 -2
- metadata +9 -9
- data/.github/workflows/macos.yml +0 -38
- data/.github/workflows/ubuntu.yml +0 -56
- data/.github/workflows/windows.yml +0 -40
@@ -24,6 +24,9 @@ module Asciidoctor
|
|
24
24
|
{
|
25
25
|
id: dn0,
|
26
26
|
series: node.attr("series"),
|
27
|
+
subseries: node.attr("series-title") || node.attr("series-abbrev"),
|
28
|
+
subseries_abbr: node.attr("series-abbrev"),
|
29
|
+
subseries_mr: node.attr("series-mrprefix") || node.attr("series-abbrev"),
|
27
30
|
edition: node.attr("edition"),
|
28
31
|
version: node.attr("version"),
|
29
32
|
revision: node.attr("revision"),
|
@@ -52,8 +55,7 @@ module Asciidoctor
|
|
52
55
|
else
|
53
56
|
args = id_args(node, dn0) || return
|
54
57
|
xml.docidentifier add_id_parts(args, false), **attr_code(type: "NIST")
|
55
|
-
xml.docidentifier add_id_parts(args, true),
|
56
|
-
**attr_code(type: "nist-long")
|
58
|
+
xml.docidentifier add_id_parts(args, true), **attr_code(type: "nist-long")
|
57
59
|
xml.docidentifier add_id_parts_mr(args), **attr_code(type: "nist-mr")
|
58
60
|
end
|
59
61
|
end
|
@@ -67,10 +69,20 @@ module Asciidoctor
|
|
67
69
|
IsoDoc::NIST::Metadata.new(nil, nil, @i18n).status_abbr(stage, iter)
|
68
70
|
end
|
69
71
|
|
72
|
+
def id_series_name(args, type)
|
73
|
+
if args[:series] == "nist-csts"
|
74
|
+
return ret = case type
|
75
|
+
when :long then args[:subseries]
|
76
|
+
when :short then args[:subseries_abbr]
|
77
|
+
when :mr then args[:subseries_mr]
|
78
|
+
end
|
79
|
+
end
|
80
|
+
type == :long ?
|
81
|
+
SERIES.dig(args[:series].to_sym) : SERIES_ABBR.dig(args[:series].to_sym)
|
82
|
+
end
|
83
|
+
|
70
84
|
def add_id_parts(args, long)
|
71
|
-
args[:series] and series_name = long ?
|
72
|
-
SERIES.dig(args[:series].to_sym) :
|
73
|
-
SERIES_ABBR.dig(args[:series].to_sym)
|
85
|
+
args[:series] and series_name = id_series_name(args, (long ? :long : :short))
|
74
86
|
dn = (series_name || "NIST #{args[:series]}") + " " + args[:id]
|
75
87
|
dn += " Volume #{args[:vol]}" if args[:vol]
|
76
88
|
dn += "," if args[:vol] && args[:revision]
|
@@ -107,8 +119,7 @@ module Asciidoctor
|
|
107
119
|
|
108
120
|
def add_id_parts_mr(args)
|
109
121
|
ret = ["NIST"]
|
110
|
-
args[:series] and
|
111
|
-
ret << SERIES_ABBR&.dig(args[:series].to_sym)&.sub(/^NIST /, "")
|
122
|
+
args[:series] and ret << id_series_name(args, :mr)&.sub(/^NIST /, "")
|
112
123
|
stage = status_abbr(args[:stage], nil) || ""
|
113
124
|
stage += "[-#{args[:iter]}]" if args[:iter]
|
114
125
|
ret << stage unless stage.empty?
|
@@ -24,6 +24,14 @@
|
|
24
24
|
<start>
|
25
25
|
<ref name="standard-document"/>
|
26
26
|
</start>
|
27
|
+
<define name="doctype">
|
28
|
+
<element name="doctype">
|
29
|
+
<optional>
|
30
|
+
<attribute name="abbreviation"/>
|
31
|
+
</optional>
|
32
|
+
<ref name="DocumentType"/>
|
33
|
+
</element>
|
34
|
+
</define>
|
27
35
|
<define name="hyperlink">
|
28
36
|
<element name="link">
|
29
37
|
<attribute name="target">
|
@@ -47,6 +55,13 @@
|
|
47
55
|
<param name="pattern">\i\c*|\c+#\c+</param>
|
48
56
|
</data>
|
49
57
|
</attribute>
|
58
|
+
<optional>
|
59
|
+
<attribute name="to">
|
60
|
+
<data type="string">
|
61
|
+
<param name="pattern">\i\c*|\c+#\c+</param>
|
62
|
+
</data>
|
63
|
+
</attribute>
|
64
|
+
</optional>
|
50
65
|
<optional>
|
51
66
|
<attribute name="type">
|
52
67
|
<ref name="ReferenceFormat"/>
|
@@ -141,6 +156,11 @@
|
|
141
156
|
<data type="boolean"/>
|
142
157
|
</attribute>
|
143
158
|
</optional>
|
159
|
+
<optional>
|
160
|
+
<attribute name="key">
|
161
|
+
<data type="boolean"/>
|
162
|
+
</attribute>
|
163
|
+
</optional>
|
144
164
|
<oneOrMore>
|
145
165
|
<ref name="dt"/>
|
146
166
|
<ref name="dd"/>
|
@@ -233,6 +253,9 @@
|
|
233
253
|
<data type="boolean"/>
|
234
254
|
</attribute>
|
235
255
|
</optional>
|
256
|
+
<optional>
|
257
|
+
<ref name="colgroup"/>
|
258
|
+
</optional>
|
236
259
|
<optional>
|
237
260
|
<ref name="tname"/>
|
238
261
|
</optional>
|
@@ -751,6 +774,18 @@
|
|
751
774
|
</define>
|
752
775
|
</include>
|
753
776
|
<!-- end overrides -->
|
777
|
+
<define name="colgroup">
|
778
|
+
<element name="colgroup">
|
779
|
+
<oneOrMore>
|
780
|
+
<ref name="col"/>
|
781
|
+
</oneOrMore>
|
782
|
+
</element>
|
783
|
+
</define>
|
784
|
+
<define name="col">
|
785
|
+
<element name="col">
|
786
|
+
<attribute name="width"/>
|
787
|
+
</element>
|
788
|
+
</define>
|
754
789
|
<define name="TextElement" combine="choice">
|
755
790
|
<ref name="concept"/>
|
756
791
|
</define>
|
@@ -1164,49 +1199,7 @@
|
|
1164
1199
|
</define>
|
1165
1200
|
<define name="annex">
|
1166
1201
|
<element name="annex">
|
1167
|
-
<
|
1168
|
-
<attribute name="id">
|
1169
|
-
<data type="ID"/>
|
1170
|
-
</attribute>
|
1171
|
-
</optional>
|
1172
|
-
<optional>
|
1173
|
-
<attribute name="language"/>
|
1174
|
-
</optional>
|
1175
|
-
<optional>
|
1176
|
-
<attribute name="script"/>
|
1177
|
-
</optional>
|
1178
|
-
<optional>
|
1179
|
-
<attribute name="inline-header">
|
1180
|
-
<data type="boolean"/>
|
1181
|
-
</attribute>
|
1182
|
-
</optional>
|
1183
|
-
<attribute name="obligation">
|
1184
|
-
<choice>
|
1185
|
-
<value>normative</value>
|
1186
|
-
<value>informative</value>
|
1187
|
-
</choice>
|
1188
|
-
</attribute>
|
1189
|
-
<optional>
|
1190
|
-
<ref name="section-title"/>
|
1191
|
-
</optional>
|
1192
|
-
<group>
|
1193
|
-
<group>
|
1194
|
-
<zeroOrMore>
|
1195
|
-
<ref name="BasicBlock"/>
|
1196
|
-
</zeroOrMore>
|
1197
|
-
<zeroOrMore>
|
1198
|
-
<ref name="note"/>
|
1199
|
-
</zeroOrMore>
|
1200
|
-
</group>
|
1201
|
-
<zeroOrMore>
|
1202
|
-
<choice>
|
1203
|
-
<ref name="annex-subsection"/>
|
1204
|
-
<ref name="terms"/>
|
1205
|
-
<ref name="definitions"/>
|
1206
|
-
<ref name="references"/>
|
1207
|
-
</choice>
|
1208
|
-
</zeroOrMore>
|
1209
|
-
</group>
|
1202
|
+
<ref name="Annex-Section"/>
|
1210
1203
|
</element>
|
1211
1204
|
</define>
|
1212
1205
|
<define name="terms">
|
@@ -48,18 +48,29 @@ module Asciidoctor
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def series_validate(xmldoc)
|
51
|
-
series = xmldoc&.at("//bibdata/series/title")&.text or return
|
51
|
+
series = xmldoc&.at("//bibdata/series[@type = 'main']/title")&.text or return
|
52
|
+
recognised_series_validate(series)
|
53
|
+
subseries_validate(series, xmldoc)
|
54
|
+
end
|
55
|
+
|
56
|
+
def recognised_series_validate(series)
|
52
57
|
found = false
|
53
58
|
SERIES.each { |_, v| found = true if v == series }
|
54
|
-
found or
|
55
|
-
|
56
|
-
|
59
|
+
found or @log.add("Document Attributes", nil, "#{series} is not a recognised series")
|
60
|
+
end
|
61
|
+
|
62
|
+
def subseries_validate(series, xmldoc)
|
63
|
+
subseries = xmldoc&.at("//bibdata/series[@type = 'secondary']")
|
64
|
+
csts = series == "NIST Cybersecurity Technical Specification"
|
65
|
+
subseries && !csts and
|
66
|
+
@log.add("Document Attributes", nil, "Subseries are not permitted on the series #{series}")
|
67
|
+
!subseries && csts and
|
68
|
+
@log.add("Document Attributes", nil, "Subseries are required on the series #{series}")
|
57
69
|
end
|
58
70
|
|
59
71
|
def validate(doc)
|
60
72
|
content_validate(doc)
|
61
|
-
schema_validate(formattedstr_strip(doc.dup),
|
62
|
-
File.join(File.dirname(__FILE__), "nist.rng"))
|
73
|
+
schema_validate(formattedstr_strip(doc.dup), File.join(File.dirname(__FILE__), "nist.rng"))
|
63
74
|
end
|
64
75
|
|
65
76
|
def introduction_validate(doc)
|
@@ -113,7 +113,7 @@ module IsoDoc
|
|
113
113
|
end
|
114
114
|
end
|
115
115
|
|
116
|
-
def middle_clause
|
116
|
+
def middle_clause(_docxml)
|
117
117
|
"//clause[parent::sections] | //terms[parent::sections]"
|
118
118
|
end
|
119
119
|
|
@@ -175,8 +175,7 @@ module IsoDoc
|
|
175
175
|
|
176
176
|
def modification_parse(node, out)
|
177
177
|
out << @i18n.modified
|
178
|
-
node.at(ns("./p[text()[normalize-space() != '']]")) and
|
179
|
-
out << " — "
|
178
|
+
node.at(ns("./p[text()[normalize-space() != '']]")) and out << " — "
|
180
179
|
node.at(ns("./p")).children.each { |n| parse(n, out) }
|
181
180
|
end
|
182
181
|
|
@@ -65,8 +65,7 @@ href="../{{ filename }}.html">
|
|
65
65
|
|
66
66
|
<p class=MsoHeaderCxSpFirst style='tab-stops:center 234.0pt right 468.0pt'><span
|
67
67
|
lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;font-variant:
|
68
|
-
small-caps;color:#244061;mso-themecolor:accent1;mso-themeshade:128'>
|
69
|
-
Cybersecurity White Paper<span style='mso-tab-count:2'> </span></span><!--[if supportFields]><span
|
68
|
+
small-caps;color:#244061;mso-themecolor:accent1;mso-themeshade:128'>{{ series }}<span style='mso-tab-count:2'> </span></span><!--[if supportFields]><span
|
70
69
|
lang=EN-US style='font-size:10.0pt;font-family:"Arial",sans-serif;font-variant:
|
71
70
|
small-caps;color:#244061;mso-themecolor:accent1;mso-themeshade:128'><span
|
72
71
|
style='mso-element:field-begin'></span> DOCPROPERTY<span
|
@@ -199,7 +198,7 @@ _Hlk10701209'></span></a><w:Sdt SdtDocPart="t" DocPartType="Watermarks"
|
|
199
198
|
style='mso-bookmark:_Hlk10701209'><span lang=EN-US style='font-size:10.0pt;
|
200
199
|
font-family:"Arial",sans-serif;font-variant:small-caps;color:white;mso-themecolor:
|
201
200
|
background1;background:#244061;mso-shading-themecolor:accent1;mso-shading-themeshade:
|
202
|
-
128'>
|
201
|
+
128'>{{ series }} {% if draft_prefix %}(DRAFT){% endif %}</span></span></span><span
|
203
202
|
style='mso-bookmark:_Hlk10701208'><span style='mso-bookmark:_Hlk10701209'><span
|
204
203
|
class=MsoCommentReference><span lang=EN-US style='font-size:10.0pt;font-family:
|
205
204
|
"Arial",sans-serif;font-variant:small-caps;color:white;mso-color-alt:windowtext'><span
|
@@ -104,6 +104,10 @@ b, strong {
|
|
104
104
|
div.document-stage-band, div.document-type-band {
|
105
105
|
background-color: #333333; }
|
106
106
|
|
107
|
+
a.FootnoteRef + a.FootnoteRef:before {
|
108
|
+
content: ", ";
|
109
|
+
vertical-align: super; }
|
110
|
+
|
107
111
|
#nist-sp-band {
|
108
112
|
background-color: #d8eca8; }
|
109
113
|
|
@@ -176,223 +180,6 @@ div.document-stage-band, div.document-type-band {
|
|
176
180
|
#withdrawn {
|
177
181
|
border-bottom: solid 3px #7e0d13; }
|
178
182
|
|
179
|
-
dl {
|
180
|
-
grid-template-columns: 25% 75%; }
|
181
|
-
dl.glossary dt {
|
182
|
-
font-weight: bold; }
|
183
|
-
|
184
|
-
body {
|
185
|
-
margin-left: auto;
|
186
|
-
margin-right: auto;
|
187
|
-
max-width: 100%;
|
188
|
-
font-size: 14px;
|
189
|
-
font-weight: 400;
|
190
|
-
line-height: 1.6em;
|
191
|
-
color: #141115;
|
192
|
-
background-color: #fff; }
|
193
|
-
body main {
|
194
|
-
margin: 0 3em 0 6em; }
|
195
|
-
|
196
|
-
.rule {
|
197
|
-
width: 100%;
|
198
|
-
height: 1px;
|
199
|
-
background-color: #2677ea;
|
200
|
-
margin: 2em 0; }
|
201
|
-
|
202
|
-
.rule-2 {
|
203
|
-
width: 100%;
|
204
|
-
height: 1px;
|
205
|
-
background-color: #2677ea; }
|
206
|
-
|
207
|
-
.rule-thick {
|
208
|
-
width: 100%;
|
209
|
-
height: 3px;
|
210
|
-
background-color: #2677ea;
|
211
|
-
margin: 3em 0 0 0; }
|
212
|
-
|
213
|
-
#toc {
|
214
|
-
font-family: 'Source Sans Pro', sans-serif; }
|
215
|
-
#toc ul {
|
216
|
-
margin: 0;
|
217
|
-
padding: 0;
|
218
|
-
list-style: none; }
|
219
|
-
#toc ul li a {
|
220
|
-
padding: 5px 10px; }
|
221
|
-
#toc ul a {
|
222
|
-
color: #141115;
|
223
|
-
text-decoration: none;
|
224
|
-
display: block; }
|
225
|
-
#toc ul a:hover {
|
226
|
-
box-shadow: none;
|
227
|
-
color: white; }
|
228
|
-
#toc .h2 {
|
229
|
-
padding-left: 30px; }
|
230
|
-
#toc .h3 {
|
231
|
-
padding-left: 50px; }
|
232
|
-
#toc .toc-active, #toc li:hover {
|
233
|
-
background: #006494;
|
234
|
-
box-shadow: inset -5px 0px 10px -5px #006494 !important; }
|
235
|
-
#toc .toc-active a, #toc li:hover a {
|
236
|
-
color: white; }
|
237
|
-
@media print {
|
238
|
-
#toc .toc-active, #toc li:hover {
|
239
|
-
background: white;
|
240
|
-
box-shadow: none !important; }
|
241
|
-
#toc .toc-active a {
|
242
|
-
color: #141115; }
|
243
|
-
#toc li:hover a {
|
244
|
-
color: black; } }
|
245
|
-
#toc li a {
|
246
|
-
font-size: 14px; }
|
247
|
-
#toc li:before {
|
248
|
-
content: " ";
|
249
|
-
display: none; }
|
250
|
-
|
251
|
-
@media screen and (min-width: 768px) {
|
252
|
-
nav {
|
253
|
-
position: fixed;
|
254
|
-
top: 0;
|
255
|
-
bottom: 0;
|
256
|
-
left: 0;
|
257
|
-
width: 323px;
|
258
|
-
font-size: 0.9em;
|
259
|
-
overflow: auto;
|
260
|
-
padding: 0 0 0 45px;
|
261
|
-
background-color: white; } }
|
262
|
-
|
263
|
-
@media print {
|
264
|
-
nav {
|
265
|
-
position: relative;
|
266
|
-
width: auto;
|
267
|
-
font-size: 0.9em;
|
268
|
-
overflow: auto;
|
269
|
-
padding: 0;
|
270
|
-
margin-right: 0;
|
271
|
-
background-color: white; } }
|
272
|
-
|
273
|
-
nav #toc {
|
274
|
-
font-family: {{bodyfont}};
|
275
|
-
font-weight: 400; }
|
276
|
-
@media screen and (max-width: 768px) {
|
277
|
-
nav #toc {
|
278
|
-
padding: 0 1.5em;
|
279
|
-
overflow: visible; } }
|
280
|
-
@media screen and (min-width: 768px) {
|
281
|
-
#toggle {
|
282
|
-
position: fixed;
|
283
|
-
height: 100%;
|
284
|
-
width: 30px;
|
285
|
-
background-color: #006494;
|
286
|
-
color: white !important;
|
287
|
-
cursor: pointer;
|
288
|
-
z-index: 100; }
|
289
|
-
#toggle span {
|
290
|
-
text-align: center;
|
291
|
-
width: 100%;
|
292
|
-
position: absolute;
|
293
|
-
top: 50%;
|
294
|
-
transform: translate(0, -50%); } }
|
295
|
-
|
296
|
-
@media screen and (max-width: 768px) {
|
297
|
-
#toggle {
|
298
|
-
display: none; } }
|
299
|
-
|
300
|
-
@media print {
|
301
|
-
#toggle {
|
302
|
-
display: none; } }
|
303
|
-
|
304
|
-
@media screen and (min-width: 768px) {
|
305
|
-
.container {
|
306
|
-
padding-left: 360px; } }
|
307
|
-
|
308
|
-
@media print {
|
309
|
-
.container {
|
310
|
-
padding-left: 0; } }
|
311
|
-
|
312
|
-
@media screen and (min-width: 768px) {
|
313
|
-
.rule.toc {
|
314
|
-
display: none; } }
|
315
|
-
|
316
|
-
span.nistvariable {
|
317
|
-
font-family: {{bodyfont}};
|
318
|
-
font-style: italic; }
|
319
|
-
|
320
|
-
/* Document bands */
|
321
|
-
.document-stage-band {
|
322
|
-
left: 0;
|
323
|
-
top: 0;
|
324
|
-
height: 100%;
|
325
|
-
position: fixed;
|
326
|
-
display: block;
|
327
|
-
z-index: 101;
|
328
|
-
box-shadow: -5px 0px 10px #1d1d1d; }
|
329
|
-
.document-stage-band > :first-child {
|
330
|
-
position: relative;
|
331
|
-
width: 25px;
|
332
|
-
font-family: 'Source Sans Pro', sans-serif;
|
333
|
-
font-weight: 300;
|
334
|
-
height: 160px;
|
335
|
-
color: #7ba812;
|
336
|
-
text-transform: uppercase;
|
337
|
-
font-size: 0.9em;
|
338
|
-
font-weight: 400;
|
339
|
-
letter-spacing: 0.05em;
|
340
|
-
margin: 0;
|
341
|
-
margin-left: 6px;
|
342
|
-
writing-mode: tb-rl;
|
343
|
-
-webkit-transform: rotate(180deg);
|
344
|
-
-moz-transform: rotate(180deg);
|
345
|
-
-o-transform: rotate(180deg);
|
346
|
-
white-space: nowrap;
|
347
|
-
display: block;
|
348
|
-
bottom: 0; }
|
349
|
-
@media print {
|
350
|
-
.document-stage-band {
|
351
|
-
display: none; } }
|
352
|
-
.document-type-band {
|
353
|
-
left: 0;
|
354
|
-
top: 180px;
|
355
|
-
height: 100%;
|
356
|
-
position: fixed;
|
357
|
-
display: block;
|
358
|
-
z-index: 102; }
|
359
|
-
.document-type-band > :first-child {
|
360
|
-
position: relative;
|
361
|
-
width: 25px;
|
362
|
-
font-family: 'Source Sans Pro', sans-serif;
|
363
|
-
font-weight: 400;
|
364
|
-
color: #7ba812;
|
365
|
-
text-transform: uppercase;
|
366
|
-
font-size: 0.9em;
|
367
|
-
font-weight: 400;
|
368
|
-
letter-spacing: 0.05em;
|
369
|
-
margin: 0;
|
370
|
-
margin-left: 6px;
|
371
|
-
writing-mode: tb-rl;
|
372
|
-
-webkit-transform: rotate(180deg);
|
373
|
-
-moz-transform: rotate(180deg);
|
374
|
-
-o-transform: rotate(180deg);
|
375
|
-
white-space: nowrap;
|
376
|
-
display: block;
|
377
|
-
bottom: 0; }
|
378
|
-
@media print {
|
379
|
-
.document-type-band {
|
380
|
-
display: none; } }
|
381
|
-
.document-type-band .document-type {
|
382
|
-
top: 20px; }
|
383
|
-
|
384
|
-
#governance-band p.document-type {
|
385
|
-
height: 230px !important; }
|
386
|
-
|
387
|
-
#standard-band p {
|
388
|
-
height: 270px !important; }
|
389
|
-
|
390
|
-
#proposal-band p {
|
391
|
-
height: 150px !important; }
|
392
|
-
|
393
|
-
#standard, #final {
|
394
|
-
color: #9ABD48; }
|
395
|
-
|
396
183
|
.coverpage-maturity, .coverpage-stage {
|
397
184
|
font-family: 'Source Sans Pro', sans-serif;
|
398
185
|
font-weight: 400;
|
@@ -637,6 +424,223 @@ table.coverpage-table {
|
|
637
424
|
.coverpage {
|
638
425
|
height: 23cm; } }
|
639
426
|
|
427
|
+
dl {
|
428
|
+
grid-template-columns: 25% 75%; }
|
429
|
+
dl.glossary dt {
|
430
|
+
font-weight: bold; }
|
431
|
+
|
432
|
+
body {
|
433
|
+
margin-left: auto;
|
434
|
+
margin-right: auto;
|
435
|
+
max-width: 100%;
|
436
|
+
font-size: {{normalfontsize}};
|
437
|
+
font-weight: 400;
|
438
|
+
line-height: 1.6em;
|
439
|
+
color: #141115;
|
440
|
+
background-color: #fff; }
|
441
|
+
body main {
|
442
|
+
margin: 0 3em 0 6em; }
|
443
|
+
|
444
|
+
.rule {
|
445
|
+
width: 100%;
|
446
|
+
height: 1px;
|
447
|
+
background-color: #2677ea;
|
448
|
+
margin: 2em 0; }
|
449
|
+
|
450
|
+
.rule-2 {
|
451
|
+
width: 100%;
|
452
|
+
height: 1px;
|
453
|
+
background-color: #2677ea; }
|
454
|
+
|
455
|
+
.rule-thick {
|
456
|
+
width: 100%;
|
457
|
+
height: 3px;
|
458
|
+
background-color: #2677ea;
|
459
|
+
margin: 3em 0 0 0; }
|
460
|
+
|
461
|
+
#toc {
|
462
|
+
font-family: 'Source Sans Pro', sans-serif; }
|
463
|
+
#toc ul {
|
464
|
+
margin: 0;
|
465
|
+
padding: 0;
|
466
|
+
list-style: none; }
|
467
|
+
#toc ul li a {
|
468
|
+
padding: 5px 10px; }
|
469
|
+
#toc ul a {
|
470
|
+
color: #141115;
|
471
|
+
text-decoration: none;
|
472
|
+
display: block; }
|
473
|
+
#toc ul a:hover {
|
474
|
+
box-shadow: none;
|
475
|
+
color: white; }
|
476
|
+
#toc .h2 {
|
477
|
+
padding-left: 30px; }
|
478
|
+
#toc .h3 {
|
479
|
+
padding-left: 50px; }
|
480
|
+
#toc .toc-active, #toc li:hover {
|
481
|
+
background: #006494;
|
482
|
+
box-shadow: inset -5px 0px 10px -5px #006494 !important; }
|
483
|
+
#toc .toc-active a, #toc li:hover a {
|
484
|
+
color: white; }
|
485
|
+
@media print {
|
486
|
+
#toc .toc-active, #toc li:hover {
|
487
|
+
background: white;
|
488
|
+
box-shadow: none !important; }
|
489
|
+
#toc .toc-active a {
|
490
|
+
color: #141115; }
|
491
|
+
#toc li:hover a {
|
492
|
+
color: black; } }
|
493
|
+
#toc li a {
|
494
|
+
font-size: {{normalfontsize}}; }
|
495
|
+
#toc li:before {
|
496
|
+
content: " ";
|
497
|
+
display: none; }
|
498
|
+
|
499
|
+
@media screen and (min-width: 768px) {
|
500
|
+
nav {
|
501
|
+
position: fixed;
|
502
|
+
top: 0;
|
503
|
+
bottom: 0;
|
504
|
+
left: 0;
|
505
|
+
width: 323px;
|
506
|
+
font-size: 0.9em;
|
507
|
+
overflow: auto;
|
508
|
+
padding: 0 0 0 45px;
|
509
|
+
background-color: white; } }
|
510
|
+
|
511
|
+
@media print {
|
512
|
+
nav {
|
513
|
+
position: relative;
|
514
|
+
width: auto;
|
515
|
+
font-size: 0.9em;
|
516
|
+
overflow: auto;
|
517
|
+
padding: 0;
|
518
|
+
margin-right: 0;
|
519
|
+
background-color: white; } }
|
520
|
+
|
521
|
+
nav #toc {
|
522
|
+
font-family: {{bodyfont}};
|
523
|
+
font-weight: 400; }
|
524
|
+
@media screen and (max-width: 768px) {
|
525
|
+
nav #toc {
|
526
|
+
padding: 0 1.5em;
|
527
|
+
overflow: visible; } }
|
528
|
+
@media screen and (min-width: 768px) {
|
529
|
+
#toggle {
|
530
|
+
position: fixed;
|
531
|
+
height: 100%;
|
532
|
+
width: 30px;
|
533
|
+
background-color: #006494;
|
534
|
+
color: white !important;
|
535
|
+
cursor: pointer;
|
536
|
+
z-index: 100; }
|
537
|
+
#toggle span {
|
538
|
+
text-align: center;
|
539
|
+
width: 100%;
|
540
|
+
position: absolute;
|
541
|
+
top: 50%;
|
542
|
+
transform: translate(0, -50%); } }
|
543
|
+
|
544
|
+
@media screen and (max-width: 768px) {
|
545
|
+
#toggle {
|
546
|
+
display: none; } }
|
547
|
+
|
548
|
+
@media print {
|
549
|
+
#toggle {
|
550
|
+
display: none; } }
|
551
|
+
|
552
|
+
@media screen and (min-width: 768px) {
|
553
|
+
.container {
|
554
|
+
padding-left: 360px; } }
|
555
|
+
|
556
|
+
@media print {
|
557
|
+
.container {
|
558
|
+
padding-left: 0; } }
|
559
|
+
|
560
|
+
@media screen and (min-width: 768px) {
|
561
|
+
.rule.toc {
|
562
|
+
display: none; } }
|
563
|
+
|
564
|
+
span.nistvariable {
|
565
|
+
font-family: {{bodyfont}};
|
566
|
+
font-style: italic; }
|
567
|
+
|
568
|
+
/* Document bands */
|
569
|
+
.document-stage-band {
|
570
|
+
left: 0;
|
571
|
+
top: 0;
|
572
|
+
height: 100%;
|
573
|
+
position: fixed;
|
574
|
+
display: block;
|
575
|
+
z-index: 101;
|
576
|
+
box-shadow: -5px 0px 10px #1d1d1d; }
|
577
|
+
.document-stage-band > :first-child {
|
578
|
+
position: relative;
|
579
|
+
width: 25px;
|
580
|
+
font-family: 'Source Sans Pro', sans-serif;
|
581
|
+
font-weight: 300;
|
582
|
+
height: 160px;
|
583
|
+
color: #7ba812;
|
584
|
+
text-transform: uppercase;
|
585
|
+
font-size: 0.9em;
|
586
|
+
font-weight: 400;
|
587
|
+
letter-spacing: 0.05em;
|
588
|
+
margin: 0;
|
589
|
+
margin-left: 6px;
|
590
|
+
writing-mode: tb-rl;
|
591
|
+
-webkit-transform: rotate(180deg);
|
592
|
+
-moz-transform: rotate(180deg);
|
593
|
+
-o-transform: rotate(180deg);
|
594
|
+
white-space: nowrap;
|
595
|
+
display: block;
|
596
|
+
bottom: 0; }
|
597
|
+
@media print {
|
598
|
+
.document-stage-band {
|
599
|
+
display: none; } }
|
600
|
+
.document-type-band {
|
601
|
+
left: 0;
|
602
|
+
top: 180px;
|
603
|
+
height: 100%;
|
604
|
+
position: fixed;
|
605
|
+
display: block;
|
606
|
+
z-index: 102; }
|
607
|
+
.document-type-band > :first-child {
|
608
|
+
position: relative;
|
609
|
+
width: 25px;
|
610
|
+
font-family: 'Source Sans Pro', sans-serif;
|
611
|
+
font-weight: 400;
|
612
|
+
color: #7ba812;
|
613
|
+
text-transform: uppercase;
|
614
|
+
font-size: 0.9em;
|
615
|
+
font-weight: 400;
|
616
|
+
letter-spacing: 0.05em;
|
617
|
+
margin: 0;
|
618
|
+
margin-left: 6px;
|
619
|
+
writing-mode: tb-rl;
|
620
|
+
-webkit-transform: rotate(180deg);
|
621
|
+
-moz-transform: rotate(180deg);
|
622
|
+
-o-transform: rotate(180deg);
|
623
|
+
white-space: nowrap;
|
624
|
+
display: block;
|
625
|
+
bottom: 0; }
|
626
|
+
@media print {
|
627
|
+
.document-type-band {
|
628
|
+
display: none; } }
|
629
|
+
.document-type-band .document-type {
|
630
|
+
top: 20px; }
|
631
|
+
|
632
|
+
#governance-band p.document-type {
|
633
|
+
height: 230px !important; }
|
634
|
+
|
635
|
+
#standard-band p {
|
636
|
+
height: 270px !important; }
|
637
|
+
|
638
|
+
#proposal-band p {
|
639
|
+
height: 150px !important; }
|
640
|
+
|
641
|
+
#standard, #final {
|
642
|
+
color: #9ABD48; }
|
643
|
+
|
640
644
|
.recommend {
|
641
645
|
background-color: #ccffcc;
|
642
646
|
padding: 1.2em;
|
@@ -735,7 +739,7 @@ p.Biblio, p.NormRef {
|
|
735
739
|
overflow: auto;
|
736
740
|
font-family: {{monospacefont}};
|
737
741
|
font-variant-ligatures: none;
|
738
|
-
font-size:
|
742
|
+
font-size: {{monospacefontsize}};
|
739
743
|
background-color: #f6f6f6; }
|
740
744
|
.figure .FigureTitle, .figure .figure-title {
|
741
745
|
font-weight: 700;
|
@@ -757,7 +761,7 @@ pre {
|
|
757
761
|
font-family: {{monospacefont}};
|
758
762
|
font-variant-ligatures: none;
|
759
763
|
background-color: #f6f6f6;
|
760
|
-
font-size:
|
764
|
+
font-size: {{monospacefontsize}};
|
761
765
|
line-height: 1.6em;
|
762
766
|
padding: 1.5em;
|
763
767
|
margin: 2em 0 1em 0;
|
@@ -766,7 +770,7 @@ pre {
|
|
766
770
|
|
767
771
|
.pseudocode {
|
768
772
|
background-color: #f6f6f6;
|
769
|
-
font-size:
|
773
|
+
font-size: {{monospacefontsize}};
|
770
774
|
line-height: 1.6em;
|
771
775
|
padding: 1.5em;
|
772
776
|
margin: 2em 0 1em 0;
|
@@ -875,7 +879,7 @@ a.footnote-number {
|
|
875
879
|
font-size: 0.8em; }
|
876
880
|
|
877
881
|
.footnote {
|
878
|
-
font-size:
|
882
|
+
font-size: {{footnotefontsize}}; }
|
879
883
|
|
880
884
|
/* Keywords */
|
881
885
|
span.keyword {
|