metanorma-nist 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60f08c6613780e3f28e0a30e97558f614ee950036e0bb08c27e8c7537eac7a12
4
- data.tar.gz: a9211b80a708af85e81670d41142be5c1c91257726ba6981af1b5ddbff61bd5c
3
+ metadata.gz: 553e8bf36b10720beecc7e76b0bf8cc2141ea7dfa18b9389adb2355521df72cb
4
+ data.tar.gz: 4d050660b0d6954dd58bbee575fd62374bcdb2c931b9cce5f4271f30a79a6ecb
5
5
  SHA512:
6
- metadata.gz: a64343cb90f467279fa9907d4dd621b1463ad295df7ffd9c0dd71968a4442f18ea1dd77ee2a9adaff775a6922cadcc270a73580d676791cfc32e6d8b78fd2f3c
7
- data.tar.gz: 6ccc7daaa4b771614234baa28de2891063c750310283f7df32c33037bc37728810b93d09cdfa30ef1ae4b45762a91c1d253ae88e67c7010f70853f16093d60c1
6
+ metadata.gz: 84ae66bfe9a43d1e79f65c9532116c73eec1a562020e206ce05883391e049dc46fe44a73f60d1ab66396eac6406065d5c36cc84a51b0c927f30b885c33aeee24
7
+ data.tar.gz: e7bf0c5bc1e70fab341d8c98f0cef3194e3795bae8c705b38bec555822a670b6a4c5682e4663dfbcc8663969b7bc7fe307856f97ba5e9274e261e2893464ce2c
data/README.adoc CHANGED
@@ -130,9 +130,15 @@ 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. Only applies to public documents;
133
+ `:issued-date:`:: The date on which the document was authorised to be published.
134
+ Referred to within NIST as the "Publication Date". This is the date used on the document
135
+ cover page. Only applies to public documents;
134
136
  drafts instead have a `:circulated-date:` attribute.
135
137
 
138
+ `:published-date:`:: The publication date for the document, when it was physically released.
139
+ Referred to within NIST as the "Release Date". This date is not used on the document cover
140
+ page; `:issued-date:` is used instead. The Release Date is included in NIST bibliographic metadata.
141
+
136
142
  `:uri:`:: The URI to which this standard is published.
137
143
 
138
144
  `:docnumber:`:: The internal identifier referring to this document. The identifier is a number;
@@ -141,7 +147,7 @@ docnumber-edition (if edition is present)
141
147
 
142
148
  `:docidentifier:`:: The document identifier for the document. Normally this should not be supplied,
143
149
  as the document identifier is composed from the document series, document number, document volume,
144
- and edition/revision (e.g. _NIST SP 800 Revision 1_).
150
+ and edition/revision (e.g. _NIST SP 800 Revision 1_).
145
151
  If the `:docidentifier:` value is provided, it will override this composed value.
146
152
 
147
153
  `:edition:`:: Edition (revision) of the document. The value of
@@ -158,7 +164,7 @@ this attribute will be displayed as part of the heading, prefixed with "Revision
158
164
  * `final-review`
159
165
  --
160
166
 
161
- `:substage:`:: Document substage. Indicates active status of draft or publication.
167
+ `:substage:`:: Document substage. Indicates active status of draft or publication.
162
168
  If a draft or publication is inactive, that is reflected in the coverpage. The
163
169
  permitted types are:
164
170
  +
@@ -166,7 +172,7 @@ permitted types are:
166
172
  * `active` (default)
167
173
  * `retired` (applies only to drafts, when they are abandoned). The `:abandoned-date:` must
168
174
  be provided, to indicate when the draft was abandoned.
169
- * `withdrawn` (applies to drafts, when when they are superseded by the next draft stage,
175
+ * `withdrawn` (applies to drafts, when when they are superseded by the next draft stage,
170
176
  and to published documents when they are superseded or no longer valid.
171
177
  --
172
178
 
@@ -253,7 +259,7 @@ e.g. "Computer Security" for SP 800.
253
259
  `:doi:`:: DOI URL for document (distinct from `:uri:`, which is the URL that NIST
254
260
  publishes the document under.)
255
261
 
256
- `:call-for-patent-claims:`:: Include the Call for Patent Claims in document drafts,
262
+ `:call-for-patent-claims:`:: Include the Call for Patent Claims in document drafts,
257
263
  and the Patent Disclosure Notice in finalised documents.
258
264
 
259
265
  `:commitment-to-licence:`:: Indicate in the Patent Disclosure Notice that
@@ -268,26 +274,26 @@ Can be a number, or text (e.g. "initial", "final").
268
274
  `:series:`:: The publication series that the document belongs to. Legal values are:
269
275
  +
270
276
  --
271
- * nist-ams
272
- * building-science
273
- * nist-fips
274
- * nist-gcr
275
- * nist-hb
276
- * itl-bulletin
277
- * jpcrd
278
- * nist-jres
279
- * letter-circular
280
- * nist-monograph
281
- * nist-ncstar
282
- * nist-nsrds
283
- * nistir
284
- * product-stadnards
285
- * nist-sp
286
- * nist-tn
287
- * other
288
- * csrc-white-paper
289
- * csrc-book
290
- * csrc-use-case
277
+ * nist-ams
278
+ * building-science
279
+ * nist-fips
280
+ * nist-gcr
281
+ * nist-hb
282
+ * itl-bulletin
283
+ * jpcrd
284
+ * nist-jres
285
+ * letter-circular
286
+ * nist-monograph
287
+ * nist-ncstar
288
+ * nist-nsrds
289
+ * nistir
290
+ * product-stadnards
291
+ * nist-sp
292
+ * nist-tn
293
+ * other
294
+ * csrc-white-paper
295
+ * csrc-book
296
+ * csrc-use-case
291
297
  * csrc-building-block
292
298
  --
293
299
 
@@ -345,45 +351,54 @@ is not currently retired (as indicated through `:substage: retired`),
345
351
  but will be in the future, that is still indicated in the rendering of the document.
346
352
 
347
353
  `:sponsor:`::
348
- The name of the organization that has sponsored the document, if applicable.
354
+ The name of the organization that has sponsored the document, if applicable. The attribute can
355
+ contain multiple lines and Metanorma formatting.
349
356
 
350
357
  `:sponsor-logo:`::
351
358
  The logo of the sponsoring organization, if applicable.
352
359
 
353
- `:superseding-status`: Document status/stage of the superseding document, if this document is
360
+ `:superseding-status:`:: Document status/stage of the superseding document, if this document is
354
361
  superseded or withdrawn. Used for withdrawn drafts. Used for withdrawn published documents,
355
362
  if an entry for the superseding document is not available on the CSRC website (where it can be
356
363
  retrieved through the `:obsoleted-by:` document attribute.)
364
+
357
365
  `:superseding-iteration:`:: The iteration of the stage of the superseding document,
358
366
  in case there have been multiple drafts. Can be a number, or text (e.g. "initial", "final").
359
- Used for withdrawn drafts.
367
+ Used for withdrawn drafts.
368
+
360
369
  `:superseding-title:`:: The title of the draft document superseding this document.
361
370
  If not supplied, the current title is assumed to have been retained. Used for withdrawn drafts.
362
371
  Used for withdrawn published documents,
363
372
  if an entry for the superseding document is not available on the CSRC website (where it can be
364
373
  retrieved through the `:obsoleted-by:` document attribute.)
374
+
365
375
  `:superseding-subtitle:`:: The subtitle of the draft document superseding this document.
366
376
  If not supplied, the current subtitle is assumed to have been retained. Used for withdrawn drafts.
367
377
  Used for withdrawn published documents,
368
378
  if an entry for the superseding document is not available on the CSRC website (where it can be
369
379
  retrieved through the `:obsoleted-by:` document attribute.)
380
+
370
381
  `:superseding-circulated-date:`::
371
382
  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.
383
+
384
+ `:superseding-issued-date:`::
385
+ The date at which the document superseding this document was authorised to be published.
374
386
  Used for withdrawn published documents,
375
387
  if an entry for the superseding document is not available on the CSRC website (where it can be
376
388
  retrieved through the `:obsoleted-by:` document attribute.)
389
+
377
390
  `:superseding-doi:`::
378
391
  The DOI of the document superseding this document. Used for withdrawn drafts.
379
392
  Used for withdrawn published documents,
380
393
  if an entry for the superseding document is not available on the CSRC website (where it can be
381
394
  retrieved through the `:obsoleted-by:` document attribute.)
395
+
382
396
  `:superseding-url:`::
383
397
  The URL of the document superseding this document. Used for withdrawn drafts.
384
398
  Used for withdrawn published documents,
385
399
  if an entry for the superseding document is not available on the CSRC website (where it can be
386
400
  retrieved through the `:obsoleted-by:` document attribute.)
401
+
387
402
  `:superseding-authors:`::
388
403
  The authors of the superseding document. Comma-delimited. Used for withdrawn published documents,
389
404
  if an entry for the superseding document is not available on the CSRC website (where it can be
@@ -391,7 +406,9 @@ retrieved through the `:obsoleted-by:` document attribute.)
391
406
 
392
407
  `:bib-additional-note:`:: Additional note (optional), used on coverpage of withdrawn and retired drafts, and as
393
408
  "Related Information" on coverpage of withdrawn published documents.
409
+
394
410
  `:bib-withdrawal-note:`:: Withdrawal note, used on coverpage of withdrawn published documents.
411
+
395
412
  `:bib-withdrawal-announcement-link:`:: Hyperlink to announcement of withdrawal, used on coverpage of withdrawn published documents.
396
413
 
397
414
  == Asciidoctor features specific to NIST
@@ -402,20 +419,20 @@ The following markup is specific to this gem:
402
419
 
403
420
  === Authority statement
404
421
 
405
- The authority statement in NIST consists of five sections, and these are marked up in
406
- Metanorma XML with the tags `<authority1>, <authority2>, <authority3>, <authority4>, <authority5>`:
422
+ The authority statement in NIST consists of five sections. They are semantically encoded in Metanorma
423
+ XML under the `boilerplate` tag, as subclauses:
407
424
 
408
- `authority1`:: The initial section of the authority section ("This publication has been developed
425
+ `boilerplate/legal-statement/clause[@id = 'authority1']`:: The initial section of the authority section ("This publication has been developed
409
426
  by NIST...").
410
- `authority2`:: The identifier, revision date, and URL of the document.
411
- `authority3`:: The boxed disclaimer statement ("Any mention of commercial products or reference to commercial organizations...")
412
- `authority4`:: The public comment period, for drafts
413
- `authority5`:: The contact details for comments
427
+ `boilerplate/legal-statement/clause[@id = 'authority2']`:: The identifier, revision date, and URL of the document.
428
+ `boilerplate/legal-statement/clasue[@id = 'authority3']`:: The boxed disclaimer statement ("Any mention of commercial products or reference to commercial organizations...")
429
+ `boilerplate/feedback-statement/clause[@id = 'authority4']`:: The public comment period, for drafts
430
+ `boilerplate/feedback-statement/clause[@id = 'authority5']`:: The contact details for comments
414
431
 
415
432
  The authority statement has been marked up in Metanorma XML rather than Asciidoctor because of its complexity.
416
433
  If you wish to supply a different authority statement, you will need to provide a piece of Metanorma XML corresponding
417
434
  to the existing default statement (available from link:lib/asciidoctor/nist/nist_intro.xml[]), and containing
418
- text corresponding to the sections given above. You can give the location of your own authority statement file
435
+ text corresponding to the sections given above. You can give the location of your own authority statement file
419
436
  relative to the current document through the document attribute `:boilerplate-authority:`.
420
437
 
421
438
  === Author affiliations
@@ -603,7 +620,7 @@ stem:[A= {x_1, x_2, ..., x_k}]:: The alphabet, i.e., the set of all possible sym
603
620
  === Document status
604
621
 
605
622
  The following table illustrates how transitions between stages of NIST documents are indicated
606
- using `:status:`, `:substage:`, `:iteration:`, and `:confirmed-date`.
623
+ using `:status:`, `:substage:`, `:iteration:`, and `:confirmed-date`.
607
624
 
608
625
  |===
609
626
  | ISO stage | NIST | 93 Repeat current phase | 98 Abandon | 99 Proceed
@@ -615,30 +632,103 @@ using `:status:`, `:substage:`, `:iteration:`, and `:confirmed-date`.
615
632
  | 50 Approval | (NIST ERB review) | | `:status: draft-public`, `:substage: retired` | `:status: final`
616
633
  | 60 Publication | `:status: final`
617
634
  | 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` | | |
635
+ | 95 Withdrawal | `:status: final`, `:substage: withdrawn` | | |
619
636
  |===
620
637
 
621
638
  In the following, parentheses indicate optional attributes.
622
639
 
623
- * For retired drafts, the following attributes must be provided: `:circulated-date:`,
640
+ * For retired drafts, the following attributes must be provided: `:circulated-date:`,
624
641
  `:abandoned-date:`, (`:bib-additional-note:`)
625
642
  * 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:`),
643
+ `:superseding-status:`, (`:superseding-iteration:`), (`:superseding-title:`),
644
+ (`:superseding-subtitle:`), `:superseding-circulated-date:`, (`:superseding-doi:`),
628
645
  (`:superseding-url:`), (`:bib-additional-note:`)
629
- * For withdrawn published documents, the following attributes must be provided: `:published-date:`, `:obsoleted-date:` (when
646
+ * For withdrawn published documents, the following attributes must be provided: `:issued-date:`, `:obsoleted-date:` (when
630
647
  the current document is no longer in effect), `:superseded-date:` (when the transition period started, during which both
631
648
  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),
649
+ when the withdrawal notice was added to the document), (`:bib-additional-note:`)
650
+ ("Related Information" in the withdrawn document coverpage), `:obsoleted-by:` (giving the superseding document identifier),
634
651
  `:nist-division:`, (`:bib-withdrawal-note:`), (`:bib-withdrawal-announcement-link:`). If the details
635
652
  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:`,
653
+ be provided: `:superseding-title:`, (`:superseding-subtitle:`), `:superseding-issued-date:`, `:superseding-status:`,
637
654
  `:superseding-doi:`, `:superseding-url:`.
638
655
 
656
+ === Document identifier
657
+
658
+ There are three identifiers automatically generated by Metanorma for NIST documents; they
659
+ can be overridden by providing a `:docidentifier:` value.
660
+
661
+ * The NIST identifier is composed as follows:
662
+ ** The Abbreviated NIST Series that the document belong to
663
+ ** The document identifier within the series
664
+ ** "Volume " followed by the volume number, if present
665
+ ** A comma, if there is both a volume number and a revision number
666
+ ** "Revision " followed by the revision number, if present
667
+ ** The draft abbreviation in parentheses, if present:
668
+ *** The iteration number. For public drafts, the first iteration is abbreviated I, the final iteration as F.
669
+ For work-in-progress and preliminary drafts, the first iteration is not shown.
670
+ *** The abbreviation of the draft stage: WD for Work-In-Progress, PreD for Preliminary, PD for public.
671
+ *** So: WD, 2WD, 3WD, FWD; PreD, 2PreD, 3PreD, FPreD; IPD, 2PD, 3PD, FPD
672
+ ** The update date, in parentheses, MMM dd, yyyy format, if present. The update date is:
673
+ *** If the document is published (`:status:` starts with `final`), the date of an errata release (`:update-date:`).
674
+ If there is a revision published for the document, that revision is by default now identified by a revision
675
+ number, rather than a publication date; but NIST practice varies, and this can be overridden by providing
676
+ a full identifier in `:docidentifier:`.
677
+ *** If the document is a draft (`:status:` starts with `draft`), the date at which the draft was circulated
678
+ (`:circulated-date:`). If `:circulated-date:` is not provided, the date the document was last revised,
679
+ `:revdate:`, may be used instead; but document citation assumes that the document is stable enough to be cited
680
+ only at the time it is formally released.
681
+
682
+ === Hyperlinks
683
+
684
+ For accessibility, NIST authors are expected to insert tool tips into the hyperlinks they generate in Word documents.
685
+ The equivalent in Metanorma is to include alt text in any hyperlinks in Asciidoctor, using the `title` attribute
686
+ of hyperlinks, as illustrated in the following:
687
+
688
+ [source,asciidoctor]
689
+ --
690
+ http://www.example.com[See the example.com link,title=tooltip text]
691
+ --
692
+
693
+ === Tables
694
+
695
+ For accessibility, NIST authors are expected to insert titles into tables in Word documents as summaries.
696
+ The equivalent in Metanorma is to include alt text in any hyperlinks in Asciidoctor, using the `alt` attribute
697
+ of tables, as illustrated in the following:
698
+
699
+ [source,asciidoctor]
700
+ --
701
+ [[table-crossreference-id]]
702
+ .Table caption
703
+ [alt="Table summary, for use in accessible media"]
704
+ |===
705
+ | Head | Head
706
+
707
+ | Body | Body
708
+ | Body | Body
709
+ |===
710
+ --
639
711
 
640
712
 
641
713
  ////
714
+ === Sponsor
715
+
716
+ The title page templates cater for at most one sponsoring organization and its logo. If more than one
717
+ sponsor is involved, manual intervention will be required on the title page.
718
+
719
+ The sponsor logo (`:sponsor-logo:`) is an image file, and it appears on the left hand side of the Word
720
+ title page, oppose the NIST logo. The sponsor name (`:sponsor:`) appears underneath the logo. The attribute
721
+ can be just the name, or it can be a multi-line attribute, containing Asciidoctor markup. In that case,
722
+ it should be entered using Asciidoctor conventions for multi-line document attributes, with `\ +` used for
723
+ line breaks:
724
+
725
+ [source,asciidoctor]
726
+ ----
727
+ :sponsor-logo:fema.gif
728
+ :sponsor: *Department of Homeland Security* \ + Janet Napolitano, _Secretary_ \ + *Federal Emergency Management Association* \ + Craig Fugate, _Administrator_ \ + *United States Fire Administration* \+ Kelvin J. Cochran, _Assistant Administrator_
729
+ ----
730
+ ////
731
+
642
732
 
643
733
  == Examples
644
734
 
@@ -35,7 +35,28 @@
35
35
  </define>
36
36
  <define name="status">
37
37
  <element name="status">
38
- <ref name="LocalizedString"/>
38
+ <ref name="stage"/>
39
+ <optional>
40
+ <ref name="substage"/>
41
+ </optional>
42
+ <optional>
43
+ <ref name="iteration"/>
44
+ </optional>
45
+ </element>
46
+ </define>
47
+ <define name="stage">
48
+ <element name="stage">
49
+ <text/>
50
+ </element>
51
+ </define>
52
+ <define name="substage">
53
+ <element name="substage">
54
+ <text/>
55
+ </element>
56
+ </define>
57
+ <define name="iteration">
58
+ <element name="iteration">
59
+ <text/>
39
60
  </element>
40
61
  </define>
41
62
  <define name="language">
@@ -48,17 +48,17 @@ module Asciidoctor
48
48
  end
49
49
  end
50
50
 
51
- def move_authority_into_preface(x, preface)
52
- if x.at("//authority")
53
- boilerplate = x.at("//authority")
54
- preface.add_child boilerplate.remove
51
+ def move_authority_before_preface(x, preface)
52
+ if x.at("//boilerplate")
53
+ boilerplate = x.at("//boilerplate")
54
+ preface.previous = boilerplate.remove
55
55
  else
56
- preface.add_child boilerplate(x)
56
+ preface.previous = boilerplate(x)
57
57
  end
58
58
  end
59
59
 
60
60
  def move_sections_into_preface(x, preface)
61
- move_authority_into_preface(x, preface)
61
+ move_authority_before_preface(x, preface)
62
62
  abstract = x.at("//abstract") and preface.add_child abstract.remove
63
63
  foreword = x.at("//foreword") and preface.add_child foreword.remove
64
64
  intro = x.at("//introduction") and preface.add_child intro.remove
@@ -176,7 +176,7 @@ module Asciidoctor
176
176
  a = { id: Asciidoctor::Standoc::Utils::anchor_or_uuid(node) }
177
177
  noko do |xml|
178
178
  case sectiontype(node)
179
- when "normative references" then norm_ref_parse(a, xml, node)
179
+ #when "normative references" then norm_ref_parse(a, xml, node)
180
180
  when "glossary", "terminology"
181
181
  if node.attr("style") == "appendix" && node.level == 1
182
182
  @term_def = true
@@ -78,34 +78,54 @@ module Asciidoctor
78
78
  did
79
79
  end
80
80
 
81
+ def id_args(node, dn0)
82
+ {
83
+ id: dn0,
84
+ series: node.attr("series"),
85
+ revision: node.attr("revision"),
86
+ vol: node.attr("volume"),
87
+ stage: node.attr("status") || node.attr("docstage"),
88
+ iter: node.attr("iteration"),
89
+ date: /^draft/.match(node.attr("status") || node.attr("docstage")) ?
90
+ (node.attr("circulated-date") || node.attr("revdate")) :
91
+ node.attr("updated-date")
92
+ }
93
+ end
94
+
81
95
  def metadata_id_compose(node, xml, dn0)
82
96
  return unless dn0
83
- s = node.attr("series")
84
- e = node.attr("revision")
85
- v = node.attr("volume")
86
- xml.docidentifier add_id_parts(dn0, s, e, v, false),
87
- **attr_code(type: "nist")
88
- xml.docidentifier add_id_parts(dn0, s, e, v, true),
97
+ args = id_args(node, dn0)
98
+ xml.docidentifier add_id_parts(args, false), **attr_code(type: "nist")
99
+ xml.docidentifier add_id_parts(args, true),
89
100
  **attr_code(type: "nist-long")
90
- xml.docidentifier add_id_parts_mr(dn0, s, e, v, node.attr("revdate")),
91
- **attr_code(type: "nist-mr")
101
+ xml.docidentifier add_id_parts_mr(args), **attr_code(type: "nist-mr")
102
+ end
103
+
104
+ def MMMddyyyy(isodate)
105
+ return nil if isodate.nil?
106
+ Date.parse(isodate).strftime("%B %d, %Y")
92
107
  end
93
108
 
94
- def add_id_parts(dn, series, revision, vol, long)
109
+ def add_id_parts(args, long)
95
110
  vol_delim = " Volume "
96
111
  ed_delim = " Revision "
97
- series and series_name = long ? SERIES.dig(series.to_sym) :
98
- SERIES_ABBR.dig(series.to_sym)
99
- dn = (series_name || "NIST #{series}") + " " + dn
100
- dn += "#{vol_delim}#{vol}" if vol
101
- dn += "," if vol && revision
102
- dn += "#{ed_delim}#{revision}" if revision
112
+ args[:series] and series_name = long ?
113
+ SERIES.dig(args[:series].to_sym) :
114
+ SERIES_ABBR.dig(args[:series].to_sym)
115
+ dn = (series_name || "NIST #{args[:series]}") + " " + args[:id]
116
+ dn += "#{vol_delim}#{args[:vol]}" if args[:vol]
117
+ dn += "," if args[:vol] && args[:revision]
118
+ dn += "#{ed_delim}#{args[:revision]}" if args[:revision]
119
+ stage = IsoDoc::NIST::Metadata.new(nil, nil, {}).stage_abbr(args[:stage], args[:iter])
120
+ dn += " (#{stage})" if stage
121
+ dn += " (#{MMMddyyyy(args[:date])})" if args[:date]
103
122
  dn
104
123
  end
105
124
 
106
- def add_id_parts_mr(dn, series, revision, vol, revdate)
107
- series and name = SERIES_ABBR.dig(series.to_sym).sub(/^NIST /, "")
108
- "NIST.#{name}.#{vol}.#{revision}.#{revdate}"
125
+ def add_id_parts_mr(args)
126
+ args[:series] and
127
+ name = SERIES_ABBR.dig(args[:series].to_sym).sub(/^NIST /, "")
128
+ "NIST.#{name}.#{args[:vol]}.#{args[:revision]}.#{args[:date]}"
109
129
  end
110
130
 
111
131
  def metadata_author(node, xml)
@@ -141,7 +161,7 @@ module Asciidoctor
141
161
  end
142
162
 
143
163
  def metadata_status(node, xml)
144
- status = node.attr("status") || "final"
164
+ status = node.attr("status") || node.attr("docstage") || "final"
145
165
  xml.status do |s|
146
166
  s.stage status
147
167
  s.substage (node.attr("substage") || "active")
@@ -238,8 +258,8 @@ module Asciidoctor
238
258
  b.date **{ type: "circulated" } do |d|
239
259
  d.on cdate
240
260
  end
241
- cdate = node.attr("superseding-published-date") and
242
- b.date **{ type: "published" } do |d|
261
+ cdate = node.attr("superseding-issued-date") and
262
+ b.date **{ type: "issued" } do |d|
243
263
  d.on cdate
244
264
  end
245
265
  end