metanorma-nist 0.0.7 → 0.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 +163 -18
- data/lib/asciidoctor/nist/biblio.rng +3 -0
- data/lib/asciidoctor/nist/boilerplate.rb +53 -3
- data/lib/asciidoctor/nist/cleanup.rb +41 -1
- data/lib/asciidoctor/nist/converter.rb +5 -6
- data/lib/asciidoctor/nist/front.rb +124 -63
- data/lib/asciidoctor/nist/isodoc.rng +38 -8
- data/lib/asciidoctor/nist/isostandard.rng +0 -8
- data/lib/asciidoctor/nist/nist.rng +145 -34
- data/lib/asciidoctor/nist/nist_intro.xml +6 -4
- data/lib/isodoc/nist/base_convert.rb +434 -0
- data/lib/isodoc/nist/html/header.html +30 -26
- data/lib/isodoc/nist/html/html_nist_titlepage.html +7 -3
- data/lib/isodoc/nist/html/word_nist_titlepage.html +1219 -155
- data/lib/isodoc/nist/html_convert.rb +7 -411
- data/lib/isodoc/nist/i18n-en.yaml +6 -1
- data/lib/isodoc/nist/metadata.rb +132 -20
- data/lib/isodoc/nist/pdf_convert.rb +19 -426
- data/lib/isodoc/nist/word_convert.rb +9 -442
- data/lib/metanorma/nist/version.rb +1 -1
- data/metanorma-nist.gemspec +1 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 60f08c6613780e3f28e0a30e97558f614ee950036e0bb08c27e8c7537eac7a12
|
4
|
+
data.tar.gz: a9211b80a708af85e81670d41142be5c1c91257726ba6981af1b5ddbff61bd5c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a64343cb90f467279fa9907d4dd621b1463ad295df7ffd9c0dd71968a4442f18ea1dd77ee2a9adaff775a6922cadcc270a73580d676791cfc32e6d8b78fd2f3c
|
7
|
+
data.tar.gz: 6ccc7daaa4b771614234baa28de2891063c750310283f7df32c33037bc37728810b93d09cdfa30ef1ae4b45762a91c1d253ae88e67c7010f70853f16093d60c1
|
data/README.adoc
CHANGED
@@ -130,7 +130,8 @@ introduced with `=`, is used.
|
|
130
130
|
|
131
131
|
`:technical-committee:`:: The name of the relevant committee producing the document.
|
132
132
|
|
133
|
-
`:published-date:`:: The publication date for the document.
|
133
|
+
`:published-date:`:: The publication date for the document. Only applies to public documents;
|
134
|
+
drafts instead have a `:circulated-date:` attribute.
|
134
135
|
|
135
136
|
`:uri:`:: The URI to which this standard is published.
|
136
137
|
|
@@ -139,7 +140,7 @@ the prefix, e.g. "NIST SP", is supplied by the `:series:` attribute. The NIST id
|
|
139
140
|
docnumber-edition (if edition is present)
|
140
141
|
|
141
142
|
`:docidentifier:`:: The document identifier for the document. Normally this should not be supplied,
|
142
|
-
as the document identifier is composed from the document series, document number,
|
143
|
+
as the document identifier is composed from the document series, document number, document volume,
|
143
144
|
and edition/revision (e.g. _NIST SP 800 Revision 1_).
|
144
145
|
If the `:docidentifier:` value is provided, it will override this composed value.
|
145
146
|
|
@@ -153,11 +154,20 @@ this attribute will be displayed as part of the heading, prefixed with "Revision
|
|
153
154
|
* `draft-wip`
|
154
155
|
* `draft-prelim`
|
155
156
|
* `draft-public`
|
156
|
-
* `draft-withdrawn`
|
157
|
-
* `draft-retire`
|
158
157
|
* `final` (default: document is published)
|
159
158
|
* `final-review`
|
160
|
-
|
159
|
+
--
|
160
|
+
|
161
|
+
`:substage:`:: Document substage. Indicates active status of draft or publication.
|
162
|
+
If a draft or publication is inactive, that is reflected in the coverpage. The
|
163
|
+
permitted types are:
|
164
|
+
+
|
165
|
+
--
|
166
|
+
* `active` (default)
|
167
|
+
* `retired` (applies only to drafts, when they are abandoned). The `:abandoned-date:` must
|
168
|
+
be provided, to indicate when the draft was abandoned.
|
169
|
+
* `withdrawn` (applies to drafts, when when they are superseded by the next draft stage,
|
170
|
+
and to published documents when they are superseded or no longer valid.
|
161
171
|
--
|
162
172
|
|
163
173
|
`:fullname{_i}:`, `:affiliation{_i}:`, `:address{_i}`::
|
@@ -188,14 +198,51 @@ The organizational address of a person who is a contributor to the document.
|
|
188
198
|
|
189
199
|
`:obsoleted-date:`::
|
190
200
|
The date at which a document is considered no longer valid (withdrawn). If a document
|
191
|
-
is not currently withdrawn (as indicated through `:
|
201
|
+
is not currently withdrawn (as indicated through `:substage: withdrawn`),
|
192
202
|
but will be in the future, that is still indicated in the rendering of the document.
|
193
203
|
|
204
|
+
`:confirmed-date:`::
|
205
|
+
The date at which a document has been reviewed according to the NIST ERB 5-year review process,
|
206
|
+
and has been confirmed to be relevant and valid to date. If this attribute is present,
|
207
|
+
the date is included in the cover page.
|
208
|
+
|
209
|
+
`:updated-date:`::
|
210
|
+
The date at which a document has been updated without being considered a distinct new publication.
|
211
|
+
Used to indicate the date of errata releases.
|
212
|
+
|
213
|
+
`:circulated-date:`::
|
214
|
+
The date at which a draft is circulated. Displayed on the cover page of drafts.
|
215
|
+
MANDATORY FOR DRAFTS.
|
216
|
+
|
194
217
|
=== NIST-specific attributes
|
195
218
|
|
196
219
|
The following document attributes are specific to this document class:
|
197
220
|
|
221
|
+
`:nist-division:`:: Name of NIST division responsible for document. Added to authority
|
222
|
+
statement as document contact, and to coverage of withdrawn published document.
|
223
|
+
Default value is "Computer Security Division, Information Technology Laboratory".
|
224
|
+
|
225
|
+
`:nist-division-address`:: Address of NIST division responsible for document.
|
226
|
+
Added to authority statement as document contact. Use line breaks (in Asciidoctor:
|
227
|
+
` + \`) if necessary. Default value is
|
228
|
+
"100 Bureau Drive (Mail Stop 8930) Gaithersburg, MD 20899-8930"
|
229
|
+
|
230
|
+
`:revision:`:: The document revision; e.g. `1` (Revision 1).
|
231
|
+
|
232
|
+
`:volume:`::
|
233
|
+
The number of the volume of a standard. Is ignored if a precomposed
|
234
|
+
document identifier (`:docidentifier:`) is supplied.
|
235
|
+
Is prefixed with "Volume" or "Vol." in display.
|
236
|
+
|
237
|
+
`:title-main:`:: The title of the document.
|
198
238
|
`:title-sub:`:: The subtitle of the document.
|
239
|
+
|
240
|
+
`:title-main-short:`:: Shortened form of the title of the document. For use in Word header.
|
241
|
+
If not provided, `:title-main:` is used.
|
242
|
+
|
243
|
+
`:title-sub-short:`:: Shortened form of The subtitle of the document. For use in Word header.
|
244
|
+
If not provided, `:title-sub:` is used.
|
245
|
+
|
199
246
|
`:title-document-class:`:: The title of the document class that the document belongs to;
|
200
247
|
e.g. "Computer Security" for SP 800.
|
201
248
|
|
@@ -244,13 +291,6 @@ Can be a number, or text (e.g. "initial", "final").
|
|
244
291
|
* csrc-building-block
|
245
292
|
--
|
246
293
|
|
247
|
-
`:subseries:`:: The secondary publication series that the document belongs to. Legal values are:
|
248
|
-
+
|
249
|
-
--
|
250
|
-
* computer-security (for NIST SP)
|
251
|
-
* information-security (for NIST SP)
|
252
|
-
--
|
253
|
-
|
254
294
|
`:comment-from:`:: The beginning of the period during which comments may be submitted to the NIST
|
255
295
|
document draft. ISO-8601 date.
|
256
296
|
|
@@ -277,7 +317,8 @@ Format is document identifier, e.g. _SP 800-53A Rev. 1_
|
|
277
317
|
`:obsoleted-by:`::
|
278
318
|
One or more corresponding NIST document that this NIST document standard is obsoleted by; requires that
|
279
319
|
this document is withdrawn, and no longer in effect. Comma delimited.
|
280
|
-
Format is document identifier, e.g. _SP 800-53A Rev. 1_
|
320
|
+
Format is document identifier, e.g. _SP 800-53A Rev. 1_.
|
321
|
+
Is the relation between a withdrawn draft, and the next draft in the approval process.
|
281
322
|
|
282
323
|
`:supersedes:`::
|
283
324
|
One or more NIST document that this NIST document standard supersedes; the superseded
|
@@ -288,13 +329,71 @@ Format is document identifier, e.g. _SP 800-53A Rev. 1_
|
|
288
329
|
One or more corresponding NIST document that this NIST document standard is superseded by;
|
289
330
|
this document may still remain in effect. Comma delimited.
|
290
331
|
Format is document identifier, e.g. _SP 800-53A Rev. 1_
|
332
|
+
Is *not* the relation between a withdrawn draft, and the next draft in the approval process
|
333
|
+
(since the earlier draft is automatically no longer in effect).
|
334
|
+
|
335
|
+
`:superseded-date:`::
|
336
|
+
The date at which both this document and the document superseding it come into effect,
|
337
|
+
as a transition period before this document is withdrawn. May be identical to `:obsoleted-date:`,
|
338
|
+
in which case there is no such transition period. Is indicated in withdrawn publication
|
339
|
+
cover page; if not provided, the value of `:obsoleted-date:` is given.
|
291
340
|
|
292
341
|
`:abandoned-date:`::
|
293
342
|
The date at which work on a document is abandoned. At that date, the document is considered
|
294
|
-
retired (`
|
295
|
-
is not currently retired (as indicated through `:
|
343
|
+
retired (`substage: retired`). In NIST, only drafts may be retired. If the document
|
344
|
+
is not currently retired (as indicated through `:substage: retired`),
|
296
345
|
but will be in the future, that is still indicated in the rendering of the document.
|
297
346
|
|
347
|
+
`:sponsor:`::
|
348
|
+
The name of the organization that has sponsored the document, if applicable.
|
349
|
+
|
350
|
+
`:sponsor-logo:`::
|
351
|
+
The logo of the sponsoring organization, if applicable.
|
352
|
+
|
353
|
+
`:superseding-status`: Document status/stage of the superseding document, if this document is
|
354
|
+
superseded or withdrawn. Used for withdrawn drafts. Used for withdrawn published documents,
|
355
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
356
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
357
|
+
`:superseding-iteration:`:: The iteration of the stage of the superseding document,
|
358
|
+
in case there have been multiple drafts. Can be a number, or text (e.g. "initial", "final").
|
359
|
+
Used for withdrawn drafts.
|
360
|
+
`:superseding-title:`:: The title of the draft document superseding this document.
|
361
|
+
If not supplied, the current title is assumed to have been retained. Used for withdrawn drafts.
|
362
|
+
Used for withdrawn published documents,
|
363
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
364
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
365
|
+
`:superseding-subtitle:`:: The subtitle of the draft document superseding this document.
|
366
|
+
If not supplied, the current subtitle is assumed to have been retained. Used for withdrawn drafts.
|
367
|
+
Used for withdrawn published documents,
|
368
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
369
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
370
|
+
`:superseding-circulated-date:`::
|
371
|
+
The date at which the draft document superseding this document is circulated. Used for withdrawn drafts.
|
372
|
+
`:superseding-published-date:`::
|
373
|
+
The date at which the document superseding this document is published.
|
374
|
+
Used for withdrawn published documents,
|
375
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
376
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
377
|
+
`:superseding-doi:`::
|
378
|
+
The DOI of the document superseding this document. Used for withdrawn drafts.
|
379
|
+
Used for withdrawn published documents,
|
380
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
381
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
382
|
+
`:superseding-url:`::
|
383
|
+
The URL of the document superseding this document. Used for withdrawn drafts.
|
384
|
+
Used for withdrawn published documents,
|
385
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
386
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
387
|
+
`:superseding-authors:`::
|
388
|
+
The authors of the superseding document. Comma-delimited. Used for withdrawn published documents,
|
389
|
+
if an entry for the superseding document is not available on the CSRC website (where it can be
|
390
|
+
retrieved through the `:obsoleted-by:` document attribute.)
|
391
|
+
|
392
|
+
`:bib-additional-note:`:: Additional note (optional), used on coverpage of withdrawn and retired drafts, and as
|
393
|
+
"Related Information" on coverpage of withdrawn published documents.
|
394
|
+
`:bib-withdrawal-note:`:: Withdrawal note, used on coverpage of withdrawn published documents.
|
395
|
+
`:bib-withdrawal-announcement-link:`:: Hyperlink to announcement of withdrawal, used on coverpage of withdrawn published documents.
|
396
|
+
|
298
397
|
== Asciidoctor features specific to NIST
|
299
398
|
|
300
399
|
The https://github.com/metanorma/metanorma-standoc[metanorma-standoc]
|
@@ -407,8 +506,16 @@ of Standards and Technology (NIST) promotes the U.S. economy and public welfare.
|
|
407
506
|
|
408
507
|
=== Executive Summary
|
409
508
|
|
410
|
-
This is any section that appears
|
411
|
-
It is rendered after all other preface sections
|
509
|
+
This is any section that appears with the style attribute `[executive-summary]`.
|
510
|
+
It is rendered after all other preface sections:
|
511
|
+
|
512
|
+
[source,asciidoctor]
|
513
|
+
----
|
514
|
+
[executive-summary]
|
515
|
+
== Executive Summary
|
516
|
+
|
517
|
+
This is an executive summary
|
518
|
+
----
|
412
519
|
|
413
520
|
=== Terms and definitions
|
414
521
|
|
@@ -493,6 +600,44 @@ Glossaries are given as definition lists with style attribute `glossary`:
|
|
493
600
|
stem:[A= {x_1, x_2, ..., x_k}]:: The alphabet, i.e., the set of all possible symbols that a (digitized) noise source produces.
|
494
601
|
----
|
495
602
|
|
603
|
+
=== Document status
|
604
|
+
|
605
|
+
The following table illustrates how transitions between stages of NIST documents are indicated
|
606
|
+
using `:status:`, `:substage:`, `:iteration:`, and `:confirmed-date`.
|
607
|
+
|
608
|
+
|===
|
609
|
+
| ISO stage | NIST | 93 Repeat current phase | 98 Abandon | 99 Proceed
|
610
|
+
|
611
|
+
| 00 Preliminary | `:status: draft-internal` | | (stop work) | `:status: draft-wip`, `:status: draft-public`, or `:status: final` (amend)
|
612
|
+
| 10 Proposal | `:status: draft-wip` | | `:status: draft-wip`, `:substage: retired` | `:status: draft-wip`, `:substage: withdrawn`
|
613
|
+
| 20 Preparatory | `status: draft-prelim` | | `status: draft-prelim`, `substage: retired` | `status: draft-prelim`, `substage: withdrawn`
|
614
|
+
| 40 Enquiry | `status: draft-public` | `status: draft-public`, `:iteration: 2`, `:iteration: 3` ... `:iteration: final` | `:status: draft-public`, `:substage: retired` | `:status: draft-public`, `:substage: withdrawn`
|
615
|
+
| 50 Approval | (NIST ERB review) | | `:status: draft-public`, `:substage: retired` | `:status: final`
|
616
|
+
| 60 Publication | `:status: final`
|
617
|
+
| 90 Review | `:status: final-review` | `:status: final`, `:confirmed-date: XXXX-XX-XX` | `:status: final`, `:substage: withdrawn` | `:status: draft-internal` (revise or amend)
|
618
|
+
| 95 Withdrawal | `:status: final`, `:substage: withdrawn` | | |
|
619
|
+
|===
|
620
|
+
|
621
|
+
In the following, parentheses indicate optional attributes.
|
622
|
+
|
623
|
+
* For retired drafts, the following attributes must be provided: `:circulated-date:`,
|
624
|
+
`:abandoned-date:`, (`:bib-additional-note:`)
|
625
|
+
* For withdrawn drafts, the following attributes must be provided: `:circulated-date:`, `:obsoleted-date:`,
|
626
|
+
`:superseding-status:`, (`:superseding-iteration:`), (`:superseding-title:`),
|
627
|
+
(`:superseding-subtitle:`), `:superseding-circulated-date:`, (`:superseding-doi:`),
|
628
|
+
(`:superseding-url:`), (`:bib-additional-note:`)
|
629
|
+
* For withdrawn published documents, the following attributes must be provided: `:published-date:`, `:obsoleted-date:` (when
|
630
|
+
the current document is no longer in effect), `:superseded-date:` (when the transition period started, during which both
|
631
|
+
documents were in effect, if applicable; if not, this has the same value as `:obsoleted-date:`), `:revdate:` (for
|
632
|
+
when the withdrawal notice was added to the document), (`:bib-additional-note:`)
|
633
|
+
("Related Information" in the withdrawn document coverpage), `:obsoleted-by:` (giving the superseding document identifier),
|
634
|
+
`:nist-division:`, (`:bib-withdrawal-note:`), (`:bib-withdrawal-announcement-link:`). If the details
|
635
|
+
of the superseding document are not available to be retrieved from the CSRC website), the following attributes must
|
636
|
+
be provided: `:superseding-title:`, (`:superseding-subtitle:`), `:superseding-published-date:`, `:superseding-status:`,
|
637
|
+
`:superseding-doi:`, `:superseding-url:`.
|
638
|
+
|
639
|
+
|
640
|
+
|
496
641
|
////
|
497
642
|
|
498
643
|
== Examples
|
@@ -1,17 +1,65 @@
|
|
1
1
|
module Asciidoctor
|
2
2
|
module NIST
|
3
3
|
class Converter < Standoc::Converter
|
4
|
+
SERIES = {
|
5
|
+
"nist-ams": "NIST Advanced Manufacturing Series",
|
6
|
+
"building-science": "NIST Building Science Series",
|
7
|
+
"nist-fips": "NIST Federal Information Processing Standards",
|
8
|
+
"nist-gcr": "NIST Grant/Contract Reports",
|
9
|
+
"nist-hb": "NIST Handbook",
|
10
|
+
"itl-bulletin": "ITL Bulletin",
|
11
|
+
"jpcrd": "Journal of Physical and Chemical Reference Data",
|
12
|
+
"nist-jres": "NIST Journal of Research",
|
13
|
+
"letter-circular": "NIST Letter Circular",
|
14
|
+
"nist-monograph": "NIST Monograph",
|
15
|
+
"nist-ncstar": "NIST National Construction Safety Team Act Reports",
|
16
|
+
"nist-nsrds": "NIST National Standard Reference Data Series",
|
17
|
+
"nistir": "NIST Interagency/Internal Report",
|
18
|
+
"product-standards": "NIST Product Standards",
|
19
|
+
"nist-sp": "NIST Special Publication",
|
20
|
+
"nist-tn": "NIST Technical Note",
|
21
|
+
"other": "NIST Other",
|
22
|
+
"csrc-white-paper": "CSRC White Paper",
|
23
|
+
"csrc-book": "CSRC Book",
|
24
|
+
"csrc-use-case": "CSRC Use Case",
|
25
|
+
"csrc-building-block": "CSRC Building Block",
|
26
|
+
}.freeze
|
27
|
+
|
28
|
+
SERIES_ABBR = {
|
29
|
+
"nist-ams": "NIST AMS",
|
30
|
+
"building-science": "NIST Building Science Series",
|
31
|
+
"nist-fips": "NIST FIPS",
|
32
|
+
"nist-gcr": "NISTGCR",
|
33
|
+
"nist-hb": "NIST HB",
|
34
|
+
"itl-bulletin": "ITL Bulletin",
|
35
|
+
"jpcrd": "JPCRD",
|
36
|
+
"nist-jres": "NIST JRES",
|
37
|
+
"letter-circular": "NIST Letter Circular",
|
38
|
+
"nist-monograph": "NIST MN",
|
39
|
+
"nist-ncstar": "NIST NCSTAR",
|
40
|
+
"nist-nsrds": "NIST NSRDS",
|
41
|
+
"nistir": "NISTIR",
|
42
|
+
"product-standards": "NIST Product Standards",
|
43
|
+
"nist-sp": "NIST SP",
|
44
|
+
"nist-tn": "NIST TN",
|
45
|
+
"other": "NIST Other",
|
46
|
+
"csrc-white-paper": "CSRC White Paper",
|
47
|
+
"csrc-book": "CSRC Book",
|
48
|
+
"csrc-use-case": "CSRC Use Case",
|
49
|
+
"csrc-building-block": "CSRC Building Block",
|
50
|
+
}.freeze
|
51
|
+
|
4
52
|
CALL_FOR_PATENT_CLAIMS = <<~END.freeze
|
5
53
|
<clause><title>Call for Patent Claims</title>
|
6
54
|
<p>This public review includes a call for information on essential patent claims (claims whose use would be required for compliance with the guidance or requirements in this Information Technology Laboratory (ITL) draft publication). Such guidance and/or requirements may be directly stated in this ITL Publication or by reference to another publication. This call also includes disclosure, where known, of the existence of pending U.S. or foreign patent applications relating to this ITL draft publication and of any relevant unexpired U.S. or foreign patents.</p>
|
7
55
|
|
8
56
|
<p>ITL may require from the patent holder, or a party authorized to make assurances on its behalf, in written or electronic form, either:</p>
|
9
57
|
|
10
|
-
<ol><li><p>assurance in the form of a general disclaimer to the effect that such party does not hold and does not currently intend holding any essential patent claim(s); or</p></li>
|
58
|
+
<ol type="arabic"><li><p>assurance in the form of a general disclaimer to the effect that such party does not hold and does not currently intend holding any essential patent claim(s); or</p></li>
|
11
59
|
|
12
60
|
<li><p>assurance that a license to such essential patent claim(s) will be made available to applicants desiring to utilize the license for the purpose of complying with the guidance or requirements in this ITL draft publication either:</p>
|
13
61
|
|
14
|
-
<ol><li><p>under reasonable terms and conditions that are demonstrably free of any unfair discrimination; or</p></li>
|
62
|
+
<ol type="roman"><li><p>under reasonable terms and conditions that are demonstrably free of any unfair discrimination; or</p></li>
|
15
63
|
|
16
64
|
<li><p>without compensation and under reasonable terms and conditions that are demonstrably free of any unfair discrimination.</p></li></ol>
|
17
65
|
</li></ol>
|
@@ -49,9 +97,11 @@ module Asciidoctor
|
|
49
97
|
conv = IsoDoc::NIST::HtmlConvert.new({})
|
50
98
|
conv.metadata_init("en", "Latn", {})
|
51
99
|
conv.info(x, nil)
|
100
|
+
conv.labels = {nist_division: @nistdivision,
|
101
|
+
nist_division_address: @nistdivisionaddress}
|
52
102
|
file = @boilerplateauthority ? "#{@localdir}/#{@boilerplateauthority}" :
|
53
103
|
File.join(File.dirname(__FILE__),"nist_intro.xml")
|
54
|
-
|
104
|
+
conv.populate_template((File.read(file, encoding: "UTF-8")), nil)
|
55
105
|
end
|
56
106
|
end
|
57
107
|
end
|
@@ -40,6 +40,12 @@ module Asciidoctor
|
|
40
40
|
c.name = "executivesummary" if title == "executive summary"
|
41
41
|
preface.add_child c.remove
|
42
42
|
end
|
43
|
+
x.xpath("//clause[@executivesummary]").each do |c|
|
44
|
+
c.delete("executivesummary")
|
45
|
+
title = c&.at("./title")&.text.downcase
|
46
|
+
c.name = "executivesummary"
|
47
|
+
preface.add_child c.remove
|
48
|
+
end
|
43
49
|
end
|
44
50
|
|
45
51
|
def move_authority_into_preface(x, preface)
|
@@ -52,8 +58,8 @@ module Asciidoctor
|
|
52
58
|
end
|
53
59
|
|
54
60
|
def move_sections_into_preface(x, preface)
|
55
|
-
abstract = x.at("//abstract") and preface.add_child abstract.remove
|
56
61
|
move_authority_into_preface(x, preface)
|
62
|
+
abstract = x.at("//abstract") and preface.add_child abstract.remove
|
57
63
|
foreword = x.at("//foreword") and preface.add_child foreword.remove
|
58
64
|
intro = x.at("//introduction") and preface.add_child intro.remove
|
59
65
|
move_clauses_into_preface(x, preface)
|
@@ -87,6 +93,40 @@ module Asciidoctor
|
|
87
93
|
summ = x.at("//executivesummary") and preface.add_child summ.remove
|
88
94
|
#end
|
89
95
|
end
|
96
|
+
|
97
|
+
|
98
|
+
# handle NIST references separately
|
99
|
+
# doc identifier format, NIST: NIST SP 800-87-1 {Vol./Volume 8}|
|
100
|
+
# {Rev./Revision 8}|(Month YYYY)
|
101
|
+
def reference_names(docxml)
|
102
|
+
super
|
103
|
+
ret = get_all_nist_refs(docxml)
|
104
|
+
tallies = ret.inject(Hash.new(0)) do |memo, (k, v)|
|
105
|
+
memo[v[:trunc]] += 1
|
106
|
+
memo
|
107
|
+
end
|
108
|
+
ret.each do |k, v|
|
109
|
+
tallies[v[:trunc]] == 1 and @anchors[k][:xref] = v[:trunc]
|
110
|
+
@anchors[k][:xref].sub!(/^NIST /, "")
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
def truncate_nist_ref(text)
|
115
|
+
#text.sub(/\s\((January|February|March|April|May|June|July|August|
|
116
|
+
# September|October|November|December)\s\d\d\d\d\).*$/x, "")
|
117
|
+
text
|
118
|
+
end
|
119
|
+
|
120
|
+
def get_all_nist_refs(docxml)
|
121
|
+
ret = {}
|
122
|
+
docxml.xpath("//bibitem[not(ancestor::bibitem)]").each do |ref|
|
123
|
+
#next unless ref.at("./docidentifier[@type = 'NIST']")
|
124
|
+
ret[ref["id"]] = {}
|
125
|
+
ret[ref["id"]][:xref] = ref&.at("./docidentifier[not(@type = 'DOI')]")&.text or next
|
126
|
+
ret[ref["id"]][:trunc] = truncate_nist_ref(ret[ref["id"]][:xref])
|
127
|
+
end
|
128
|
+
ret
|
129
|
+
end
|
90
130
|
end
|
91
131
|
end
|
92
132
|
end
|
@@ -121,6 +121,10 @@ module Asciidoctor
|
|
121
121
|
@patentcontact = node.attr("patent-contact")
|
122
122
|
@biblioasappendix = node.attr("biblio-as-appendix")
|
123
123
|
@boilerplateauthority = node.attr("boilerplate-authority")
|
124
|
+
@nistdivision = node.attr("nist-division") ||
|
125
|
+
"Computer Security Division, Information Technology Laboratory"
|
126
|
+
@nistdivisionaddress = node.attr("nist-division-address") ||
|
127
|
+
"100 Bureau Drive (Mail Stop 8930) Gaithersburg, MD 20899-8930"
|
124
128
|
super
|
125
129
|
end
|
126
130
|
|
@@ -142,6 +146,7 @@ module Asciidoctor
|
|
142
146
|
|
143
147
|
def clause_parse(attrs, xml, node)
|
144
148
|
attrs[:preface] = true if node.attr("style") == "preface"
|
149
|
+
attrs[:executivesummary] = true if node.attr("style") == "executive-summary"
|
145
150
|
super
|
146
151
|
end
|
147
152
|
|
@@ -228,12 +233,6 @@ module Asciidoctor
|
|
228
233
|
end
|
229
234
|
end
|
230
235
|
|
231
|
-
def sections_order_cleanup(x)
|
232
|
-
s = x.at("//sections")
|
233
|
-
make_preface(x, s)
|
234
|
-
x.xpath("//sections/annex").reverse_each { |r| s.next = r.remove }
|
235
|
-
end
|
236
|
-
|
237
236
|
def html_converter(node)
|
238
237
|
IsoDoc::NIST::HtmlConvert.new(html_extract_attributes(node))
|
239
238
|
end
|