metanorma-nist 1.2.6 → 1.2.11
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 +29 -8
- 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 +61 -3
- 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 +221 -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 +319 -154
- data/lib/isodoc/nist/nist.sp.xsl +316 -190
- 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/isodoc/nist/xref.rb +11 -5
- data/lib/metanorma/nist/processor.rb +14 -8
- data/lib/metanorma/nist/version.rb +1 -1
- data/metanorma-nist.gemspec +2 -2
- metadata +8 -6
@@ -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,12 @@
|
|
233
253
|
<data type="boolean"/>
|
234
254
|
</attribute>
|
235
255
|
</optional>
|
256
|
+
<optional>
|
257
|
+
<attribute name="width"/>
|
258
|
+
</optional>
|
259
|
+
<optional>
|
260
|
+
<ref name="colgroup"/>
|
261
|
+
</optional>
|
236
262
|
<optional>
|
237
263
|
<ref name="tname"/>
|
238
264
|
</optional>
|
@@ -751,6 +777,18 @@
|
|
751
777
|
</define>
|
752
778
|
</include>
|
753
779
|
<!-- end overrides -->
|
780
|
+
<define name="colgroup">
|
781
|
+
<element name="colgroup">
|
782
|
+
<oneOrMore>
|
783
|
+
<ref name="col"/>
|
784
|
+
</oneOrMore>
|
785
|
+
</element>
|
786
|
+
</define>
|
787
|
+
<define name="col">
|
788
|
+
<element name="col">
|
789
|
+
<attribute name="width"/>
|
790
|
+
</element>
|
791
|
+
</define>
|
754
792
|
<define name="TextElement" combine="choice">
|
755
793
|
<ref name="concept"/>
|
756
794
|
</define>
|
@@ -801,6 +839,9 @@
|
|
801
839
|
<data type="boolean"/>
|
802
840
|
</attribute>
|
803
841
|
</optional>
|
842
|
+
<optional>
|
843
|
+
<attribute name="number"/>
|
844
|
+
</optional>
|
804
845
|
<optional>
|
805
846
|
<attribute name="obligation">
|
806
847
|
<choice>
|
@@ -856,9 +897,11 @@
|
|
856
897
|
<element name="code">
|
857
898
|
<text/>
|
858
899
|
</element>
|
859
|
-
<
|
860
|
-
<text
|
861
|
-
|
900
|
+
<optional>
|
901
|
+
<element name="text">
|
902
|
+
<text/>
|
903
|
+
</element>
|
904
|
+
</optional>
|
862
905
|
</element>
|
863
906
|
</define>
|
864
907
|
<define name="standard-document">
|
@@ -1028,6 +1071,9 @@
|
|
1028
1071
|
</choice>
|
1029
1072
|
</attribute>
|
1030
1073
|
</optional>
|
1074
|
+
<optional>
|
1075
|
+
<attribute name="number"/>
|
1076
|
+
</optional>
|
1031
1077
|
<optional>
|
1032
1078
|
<attribute name="type"/>
|
1033
1079
|
</optional>
|
@@ -1081,6 +1127,9 @@
|
|
1081
1127
|
<optional>
|
1082
1128
|
<attribute name="type"/>
|
1083
1129
|
</optional>
|
1130
|
+
<optional>
|
1131
|
+
<attribute name="number"/>
|
1132
|
+
</optional>
|
1084
1133
|
<optional>
|
1085
1134
|
<ref name="section-title"/>
|
1086
1135
|
</optional>
|
@@ -1183,6 +1232,9 @@
|
|
1183
1232
|
<optional>
|
1184
1233
|
<attribute name="type"/>
|
1185
1234
|
</optional>
|
1235
|
+
<optional>
|
1236
|
+
<attribute name="number"/>
|
1237
|
+
</optional>
|
1186
1238
|
<optional>
|
1187
1239
|
<attribute name="obligation">
|
1188
1240
|
<choice>
|
@@ -1511,6 +1563,7 @@
|
|
1511
1563
|
<value>add</value>
|
1512
1564
|
<value>modify</value>
|
1513
1565
|
<value>delete</value>
|
1566
|
+
<value>replace</value>
|
1514
1567
|
</choice>
|
1515
1568
|
</attribute>
|
1516
1569
|
<optional>
|
@@ -1541,6 +1594,11 @@
|
|
1541
1594
|
</optional>
|
1542
1595
|
<optional>
|
1543
1596
|
<element name="newcontent">
|
1597
|
+
<optional>
|
1598
|
+
<attribute name="id">
|
1599
|
+
<data type="ID"/>
|
1600
|
+
</attribute>
|
1601
|
+
</optional>
|
1544
1602
|
<zeroOrMore>
|
1545
1603
|
<ref name="BasicBlock"/>
|
1546
1604
|
</zeroOrMore>
|
@@ -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
|
@@ -180,223 +180,6 @@ a.FootnoteRef + a.FootnoteRef:before {
|
|
180
180
|
#withdrawn {
|
181
181
|
border-bottom: solid 3px #7e0d13; }
|
182
182
|
|
183
|
-
dl {
|
184
|
-
grid-template-columns: 25% 75%; }
|
185
|
-
dl.glossary dt {
|
186
|
-
font-weight: bold; }
|
187
|
-
|
188
|
-
body {
|
189
|
-
margin-left: auto;
|
190
|
-
margin-right: auto;
|
191
|
-
max-width: 100%;
|
192
|
-
font-size: 14px;
|
193
|
-
font-weight: 400;
|
194
|
-
line-height: 1.6em;
|
195
|
-
color: #141115;
|
196
|
-
background-color: #fff; }
|
197
|
-
body main {
|
198
|
-
margin: 0 3em 0 6em; }
|
199
|
-
|
200
|
-
.rule {
|
201
|
-
width: 100%;
|
202
|
-
height: 1px;
|
203
|
-
background-color: #2677ea;
|
204
|
-
margin: 2em 0; }
|
205
|
-
|
206
|
-
.rule-2 {
|
207
|
-
width: 100%;
|
208
|
-
height: 1px;
|
209
|
-
background-color: #2677ea; }
|
210
|
-
|
211
|
-
.rule-thick {
|
212
|
-
width: 100%;
|
213
|
-
height: 3px;
|
214
|
-
background-color: #2677ea;
|
215
|
-
margin: 3em 0 0 0; }
|
216
|
-
|
217
|
-
#toc {
|
218
|
-
font-family: 'Source Sans Pro', sans-serif; }
|
219
|
-
#toc ul {
|
220
|
-
margin: 0;
|
221
|
-
padding: 0;
|
222
|
-
list-style: none; }
|
223
|
-
#toc ul li a {
|
224
|
-
padding: 5px 10px; }
|
225
|
-
#toc ul a {
|
226
|
-
color: #141115;
|
227
|
-
text-decoration: none;
|
228
|
-
display: block; }
|
229
|
-
#toc ul a:hover {
|
230
|
-
box-shadow: none;
|
231
|
-
color: white; }
|
232
|
-
#toc .h2 {
|
233
|
-
padding-left: 30px; }
|
234
|
-
#toc .h3 {
|
235
|
-
padding-left: 50px; }
|
236
|
-
#toc .toc-active, #toc li:hover {
|
237
|
-
background: #006494;
|
238
|
-
box-shadow: inset -5px 0px 10px -5px #006494 !important; }
|
239
|
-
#toc .toc-active a, #toc li:hover a {
|
240
|
-
color: white; }
|
241
|
-
@media print {
|
242
|
-
#toc .toc-active, #toc li:hover {
|
243
|
-
background: white;
|
244
|
-
box-shadow: none !important; }
|
245
|
-
#toc .toc-active a {
|
246
|
-
color: #141115; }
|
247
|
-
#toc li:hover a {
|
248
|
-
color: black; } }
|
249
|
-
#toc li a {
|
250
|
-
font-size: 14px; }
|
251
|
-
#toc li:before {
|
252
|
-
content: " ";
|
253
|
-
display: none; }
|
254
|
-
|
255
|
-
@media screen and (min-width: 768px) {
|
256
|
-
nav {
|
257
|
-
position: fixed;
|
258
|
-
top: 0;
|
259
|
-
bottom: 0;
|
260
|
-
left: 0;
|
261
|
-
width: 323px;
|
262
|
-
font-size: 0.9em;
|
263
|
-
overflow: auto;
|
264
|
-
padding: 0 0 0 45px;
|
265
|
-
background-color: white; } }
|
266
|
-
|
267
|
-
@media print {
|
268
|
-
nav {
|
269
|
-
position: relative;
|
270
|
-
width: auto;
|
271
|
-
font-size: 0.9em;
|
272
|
-
overflow: auto;
|
273
|
-
padding: 0;
|
274
|
-
margin-right: 0;
|
275
|
-
background-color: white; } }
|
276
|
-
|
277
|
-
nav #toc {
|
278
|
-
font-family: {{bodyfont}};
|
279
|
-
font-weight: 400; }
|
280
|
-
@media screen and (max-width: 768px) {
|
281
|
-
nav #toc {
|
282
|
-
padding: 0 1.5em;
|
283
|
-
overflow: visible; } }
|
284
|
-
@media screen and (min-width: 768px) {
|
285
|
-
#toggle {
|
286
|
-
position: fixed;
|
287
|
-
height: 100%;
|
288
|
-
width: 30px;
|
289
|
-
background-color: #006494;
|
290
|
-
color: white !important;
|
291
|
-
cursor: pointer;
|
292
|
-
z-index: 100; }
|
293
|
-
#toggle span {
|
294
|
-
text-align: center;
|
295
|
-
width: 100%;
|
296
|
-
position: absolute;
|
297
|
-
top: 50%;
|
298
|
-
transform: translate(0, -50%); } }
|
299
|
-
|
300
|
-
@media screen and (max-width: 768px) {
|
301
|
-
#toggle {
|
302
|
-
display: none; } }
|
303
|
-
|
304
|
-
@media print {
|
305
|
-
#toggle {
|
306
|
-
display: none; } }
|
307
|
-
|
308
|
-
@media screen and (min-width: 768px) {
|
309
|
-
.container {
|
310
|
-
padding-left: 360px; } }
|
311
|
-
|
312
|
-
@media print {
|
313
|
-
.container {
|
314
|
-
padding-left: 0; } }
|
315
|
-
|
316
|
-
@media screen and (min-width: 768px) {
|
317
|
-
.rule.toc {
|
318
|
-
display: none; } }
|
319
|
-
|
320
|
-
span.nistvariable {
|
321
|
-
font-family: {{bodyfont}};
|
322
|
-
font-style: italic; }
|
323
|
-
|
324
|
-
/* Document bands */
|
325
|
-
.document-stage-band {
|
326
|
-
left: 0;
|
327
|
-
top: 0;
|
328
|
-
height: 100%;
|
329
|
-
position: fixed;
|
330
|
-
display: block;
|
331
|
-
z-index: 101;
|
332
|
-
box-shadow: -5px 0px 10px #1d1d1d; }
|
333
|
-
.document-stage-band > :first-child {
|
334
|
-
position: relative;
|
335
|
-
width: 25px;
|
336
|
-
font-family: 'Source Sans Pro', sans-serif;
|
337
|
-
font-weight: 300;
|
338
|
-
height: 160px;
|
339
|
-
color: #7ba812;
|
340
|
-
text-transform: uppercase;
|
341
|
-
font-size: 0.9em;
|
342
|
-
font-weight: 400;
|
343
|
-
letter-spacing: 0.05em;
|
344
|
-
margin: 0;
|
345
|
-
margin-left: 6px;
|
346
|
-
writing-mode: tb-rl;
|
347
|
-
-webkit-transform: rotate(180deg);
|
348
|
-
-moz-transform: rotate(180deg);
|
349
|
-
-o-transform: rotate(180deg);
|
350
|
-
white-space: nowrap;
|
351
|
-
display: block;
|
352
|
-
bottom: 0; }
|
353
|
-
@media print {
|
354
|
-
.document-stage-band {
|
355
|
-
display: none; } }
|
356
|
-
.document-type-band {
|
357
|
-
left: 0;
|
358
|
-
top: 180px;
|
359
|
-
height: 100%;
|
360
|
-
position: fixed;
|
361
|
-
display: block;
|
362
|
-
z-index: 102; }
|
363
|
-
.document-type-band > :first-child {
|
364
|
-
position: relative;
|
365
|
-
width: 25px;
|
366
|
-
font-family: 'Source Sans Pro', sans-serif;
|
367
|
-
font-weight: 400;
|
368
|
-
color: #7ba812;
|
369
|
-
text-transform: uppercase;
|
370
|
-
font-size: 0.9em;
|
371
|
-
font-weight: 400;
|
372
|
-
letter-spacing: 0.05em;
|
373
|
-
margin: 0;
|
374
|
-
margin-left: 6px;
|
375
|
-
writing-mode: tb-rl;
|
376
|
-
-webkit-transform: rotate(180deg);
|
377
|
-
-moz-transform: rotate(180deg);
|
378
|
-
-o-transform: rotate(180deg);
|
379
|
-
white-space: nowrap;
|
380
|
-
display: block;
|
381
|
-
bottom: 0; }
|
382
|
-
@media print {
|
383
|
-
.document-type-band {
|
384
|
-
display: none; } }
|
385
|
-
.document-type-band .document-type {
|
386
|
-
top: 20px; }
|
387
|
-
|
388
|
-
#governance-band p.document-type {
|
389
|
-
height: 230px !important; }
|
390
|
-
|
391
|
-
#standard-band p {
|
392
|
-
height: 270px !important; }
|
393
|
-
|
394
|
-
#proposal-band p {
|
395
|
-
height: 150px !important; }
|
396
|
-
|
397
|
-
#standard, #final {
|
398
|
-
color: #9ABD48; }
|
399
|
-
|
400
183
|
.coverpage-maturity, .coverpage-stage {
|
401
184
|
font-family: 'Source Sans Pro', sans-serif;
|
402
185
|
font-weight: 400;
|
@@ -641,6 +424,223 @@ table.coverpage-table {
|
|
641
424
|
.coverpage {
|
642
425
|
height: 23cm; } }
|
643
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
|
+
|
644
644
|
.recommend {
|
645
645
|
background-color: #ccffcc;
|
646
646
|
padding: 1.2em;
|
@@ -739,7 +739,7 @@ p.Biblio, p.NormRef {
|
|
739
739
|
overflow: auto;
|
740
740
|
font-family: {{monospacefont}};
|
741
741
|
font-variant-ligatures: none;
|
742
|
-
font-size:
|
742
|
+
font-size: {{monospacefontsize}};
|
743
743
|
background-color: #f6f6f6; }
|
744
744
|
.figure .FigureTitle, .figure .figure-title {
|
745
745
|
font-weight: 700;
|
@@ -761,7 +761,7 @@ pre {
|
|
761
761
|
font-family: {{monospacefont}};
|
762
762
|
font-variant-ligatures: none;
|
763
763
|
background-color: #f6f6f6;
|
764
|
-
font-size:
|
764
|
+
font-size: {{monospacefontsize}};
|
765
765
|
line-height: 1.6em;
|
766
766
|
padding: 1.5em;
|
767
767
|
margin: 2em 0 1em 0;
|
@@ -770,7 +770,7 @@ pre {
|
|
770
770
|
|
771
771
|
.pseudocode {
|
772
772
|
background-color: #f6f6f6;
|
773
|
-
font-size:
|
773
|
+
font-size: {{monospacefontsize}};
|
774
774
|
line-height: 1.6em;
|
775
775
|
padding: 1.5em;
|
776
776
|
margin: 2em 0 1em 0;
|
@@ -879,7 +879,7 @@ a.footnote-number {
|
|
879
879
|
font-size: 0.8em; }
|
880
880
|
|
881
881
|
.footnote {
|
882
|
-
font-size:
|
882
|
+
font-size: {{footnotefontsize}}; }
|
883
883
|
|
884
884
|
/* Keywords */
|
885
885
|
span.keyword {
|