metanorma-nist 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/macos.yml +2 -3
- data/.github/workflows/ubuntu.yml +15 -4
- data/.github/workflows/windows.yml +3 -4
- data/README.adoc +25 -9
- data/lib/asciidoctor/nist/biblio.rng +2 -12
- data/lib/asciidoctor/nist/converter.rb +1 -1
- data/lib/asciidoctor/nist/isodoc.rng +1 -3
- data/lib/asciidoctor/nist/nist.rng +1 -9
- data/lib/isodoc/nist/base_convert.rb +11 -1
- data/lib/isodoc/nist/metadata.rb +5 -7
- data/lib/isodoc/nist/render.rb +1 -2
- data/lib/isodoc/nist/render_dates.rb +1 -0
- data/lib/isodoc/nist/xrefs.rb +2 -1
- data/lib/metanorma/nist/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9be11fbdb11ce260e1671031d3c1d3f463d0cfbc049b32dd36d362eeae5163bd
|
4
|
+
data.tar.gz: 346ed9adb971cb651e22b84f335ed6c1a75ec9f3ac4793300972375afe86d634
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a4b107d57c4a7ba95ad1f57c7fa25626819836cd312ed2693fc1da97b67e636613549ff4631ffc76ae7e5f8c51b8578eaa764f7ba38fba496261606d397c6fa
|
7
|
+
data.tar.gz: 3a022940e4cbad44ac9f1f400697f03815a87c131a1c7d9d651c2ef6ece75ba768dc9dc8e2fc2c1ea008918c99904a2972678bcab4f799b5c108aebeab0f2aa2
|
data/.github/workflows/macos.yml
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
# Auto-generated
|
2
|
-
#
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
3
|
name: macos
|
4
4
|
|
5
5
|
on:
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
8
|
pull_request:
|
9
|
-
branches: [ '**' ]
|
10
9
|
|
11
10
|
jobs:
|
12
11
|
test-macos:
|
@@ -1,12 +1,11 @@
|
|
1
|
-
# Auto-generated
|
2
|
-
#
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
3
|
name: ubuntu
|
4
4
|
|
5
5
|
on:
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
8
|
pull_request:
|
9
|
-
branches: [ '**' ]
|
10
9
|
|
11
10
|
jobs:
|
12
11
|
test-linux:
|
@@ -25,7 +24,7 @@ jobs:
|
|
25
24
|
architecture: 'x64'
|
26
25
|
- name: Update gems
|
27
26
|
run: |
|
28
|
-
gem install bundler
|
27
|
+
gem install bundler
|
29
28
|
bundle install --jobs 4 --retry 3
|
30
29
|
- name: Use Node
|
31
30
|
uses: actions/setup-node@v1
|
@@ -37,3 +36,15 @@ jobs:
|
|
37
36
|
- name: Run specs
|
38
37
|
run: |
|
39
38
|
bundle exec rake
|
39
|
+
- name: Trigger dependent repositories
|
40
|
+
if: github.ref == 'refs/heads/master'
|
41
|
+
env:
|
42
|
+
GH_USERNAME: ${{ secrets.PAT_USERNAME }}
|
43
|
+
GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
|
44
|
+
run: |
|
45
|
+
curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
|
46
|
+
[[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
|
47
|
+
for repo in $DEPENDENT_REPOS
|
48
|
+
do
|
49
|
+
sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY
|
50
|
+
done
|
@@ -1,12 +1,11 @@
|
|
1
|
-
# Auto-generated
|
2
|
-
#
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
3
|
name: windows
|
4
4
|
|
5
5
|
on:
|
6
6
|
push:
|
7
7
|
branches: [ master ]
|
8
8
|
pull_request:
|
9
|
-
branches: [ '**' ]
|
10
9
|
|
11
10
|
jobs:
|
12
11
|
test-windows:
|
@@ -26,7 +25,7 @@ jobs:
|
|
26
25
|
- name: Update gems
|
27
26
|
shell: pwsh
|
28
27
|
run: |
|
29
|
-
gem install bundler
|
28
|
+
gem install bundler
|
30
29
|
bundle config --local path vendor/bundle
|
31
30
|
bundle update
|
32
31
|
bundle install --jobs 4 --retry 3
|
data/README.adoc
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
= metanorma-nist: Metanorma processor for the NIST SP 800 document classes
|
2
2
|
|
3
3
|
image:https://img.shields.io/gem/v/metanorma-nist.svg["Gem Version", link="https://rubygems.org/gems/metanorma-nist"]
|
4
|
-
image:https://
|
5
|
-
image:https://
|
4
|
+
image:https://github.com/metanorma/metanorma-nist/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/metanorma/metanorma-nist/actions?workflow=macos"]
|
5
|
+
image:https://github.com/metanorma/metanorma-nist/workflows/ubuntu/badge.svg["Build Status (ubuntu)", link="https://github.com/metanorma/metanorma-nist/actions?workflow=ubuntu"]
|
6
|
+
image:https://github.com/metanorma/metanorma-nist/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/metanorma/metanorma-nist/actions?workflow=windows"]
|
6
7
|
image:https://codeclimate.com/github/metanorma/metanorma-nist/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-nist"]
|
7
8
|
image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-nist.svg["Pull Requests", link="https://github.com/metanorma/metanorma-nist/pulls"]
|
8
9
|
image:https://img.shields.io/github/commits-since/metanorma/metanorma-nist/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-nist/releases"]
|
@@ -640,6 +641,27 @@ Glossaries are given as definition lists with role attribute `[.glossary]`:
|
|
640
641
|
stem:[A= {x_1, x_2, ..., x_k}]:: The alphabet, i.e., the set of all possible symbols that a (digitized) noise source produces.
|
641
642
|
----
|
642
643
|
|
644
|
+
=== References
|
645
|
+
|
646
|
+
Bibliographies in NIST are contained within annexes:
|
647
|
+
|
648
|
+
[source,asciidoctor]
|
649
|
+
----
|
650
|
+
[appendix]
|
651
|
+
== References
|
652
|
+
|
653
|
+
LAWS, POLICIES, DIRECTIVES, REGULATIONS, MEMORANDA, STANDARDS, AND GUIDELINES
|
654
|
+
|
655
|
+
[bibliography]
|
656
|
+
=== Legislation and Executive Orders
|
657
|
+
* [[[ref1,1]]] E-Government Act [includes FISMA] (P.L. 107-347), December 2002.
|
658
|
+
----
|
659
|
+
|
660
|
+
Provided there is only one bibliography in the document, it is automatically titled _References_.
|
661
|
+
|
662
|
+
If an annex contains a single bibliography, then the annex and the bibliography are treated as equivalent:
|
663
|
+
the bibliography does not have a distinct title.
|
664
|
+
|
643
665
|
=== Document status
|
644
666
|
|
645
667
|
The following table illustrates how transitions between stages of NIST documents are indicated
|
@@ -755,10 +777,4 @@ line breaks:
|
|
755
777
|
|
756
778
|
== Examples
|
757
779
|
|
758
|
-
|
759
|
-
* link:spec/examples/rfc6350.adoc[] is an Metanorma AsciiDoc version of https://tools.ietf.org/html/rfc6350[RFC 6350].
|
760
|
-
* link:spec/examples/rfc6350.html[] is an HTML file generated from the Asciidoctor.
|
761
|
-
* link:spec/examples/rfc6350.doc[] is a Word document generated from the Asciidoctor.
|
762
|
-
|
763
|
-
////
|
764
|
-
|
780
|
+
See https://gitlab.com/metanorma/mn-samples-nist (private repository)
|
@@ -703,21 +703,11 @@
|
|
703
703
|
</define>
|
704
704
|
<define name="TypedTitleString">
|
705
705
|
<optional>
|
706
|
-
<attribute name="type"
|
707
|
-
<ref name="TitleType"/>
|
708
|
-
</attribute>
|
706
|
+
<attribute name="type"/>
|
709
707
|
</optional>
|
710
708
|
<ref name="FormattedString"/>
|
711
709
|
</define>
|
712
|
-
|
713
|
-
<choice>
|
714
|
-
<value>alternative</value>
|
715
|
-
<value>original</value>
|
716
|
-
<value>unofficial</value>
|
717
|
-
<value>subtitle</value>
|
718
|
-
<value>main</value>
|
719
|
-
</choice>
|
720
|
-
</define>
|
710
|
+
<!-- TitleType = ( "alternative" | "original" | "unofficial" | "subtitle" | "main" ) -->
|
721
711
|
<define name="TypedUri">
|
722
712
|
<optional>
|
723
713
|
<attribute name="type"/>
|
@@ -109,7 +109,7 @@ module Asciidoctor
|
|
109
109
|
word_converter(node).convert filename unless node.attr("nodoc")
|
110
110
|
pdf_converter(node).convert filename unless node.attr("nodoc")
|
111
111
|
end
|
112
|
-
@log.write(@filename + ".err") unless @novalid
|
112
|
+
@log.write(@localdir + @filename + ".err") unless @novalid
|
113
113
|
@files_to_delete.each { |f| FileUtils.rm f }
|
114
114
|
ret
|
115
115
|
end
|
@@ -12,15 +12,7 @@
|
|
12
12
|
<define name="DocumentType">
|
13
13
|
<value>standard</value>
|
14
14
|
</define>
|
15
|
-
|
16
|
-
<choice>
|
17
|
-
<value>alternative</value>
|
18
|
-
<value>original</value>
|
19
|
-
<value>unofficial</value>
|
20
|
-
<value>subtitle</value>
|
21
|
-
<value>main</value>
|
22
|
-
</choice>
|
23
|
-
</define>
|
15
|
+
<!-- TitleType = ( "alternative" | "original" | "unofficial" | "subtitle" | "main" ) -->
|
24
16
|
<define name="preface">
|
25
17
|
<element name="preface">
|
26
18
|
<optional>
|
@@ -208,7 +208,7 @@ module IsoDoc
|
|
208
208
|
def bibliography_parse(node, out)
|
209
209
|
title = node&.at(ns("./title"))&.text || ""
|
210
210
|
out.div do |div|
|
211
|
-
unless node
|
211
|
+
unless suppress_biblio_title(node)
|
212
212
|
anchor(node['id'], :label, false) and
|
213
213
|
clause_parse_title(node, div, node.at(ns("./title")), out) or
|
214
214
|
div.h2 title, **{ class: "Section3" }
|
@@ -217,6 +217,16 @@ module IsoDoc
|
|
217
217
|
end
|
218
218
|
end
|
219
219
|
|
220
|
+
def suppress_biblio_title(node)
|
221
|
+
return false unless node.parent.name == "annex"
|
222
|
+
return false if node.parent.xpath("./references | ./clause | "\
|
223
|
+
"./terms | ./definitions").size > 1
|
224
|
+
title1 = node&.at(ns("./title"))&.text
|
225
|
+
return true unless title1
|
226
|
+
title2 = node&.parent&.at(ns("./title"))&.text
|
227
|
+
title1&.casecmp(title2) == 0
|
228
|
+
end
|
229
|
+
|
220
230
|
def foreword(isoxml, out)
|
221
231
|
f = isoxml.at(ns("//foreword")) || return
|
222
232
|
out.div **attr_code(id: f["id"]) do |s|
|
data/lib/isodoc/nist/metadata.rb
CHANGED
@@ -37,10 +37,10 @@ module IsoDoc
|
|
37
37
|
def author(ixml, _out)
|
38
38
|
tc = ixml.at(ns("//bibdata/ext/editorialgroup/committee"))
|
39
39
|
set(:tc, tc.text.upcase) if tc
|
40
|
-
personal_authors(ixml)
|
41
40
|
subdiv = ixml.at(ns("//bibdata/contributor[role/@type = 'publisher']/"\
|
42
41
|
"organization/subdivision")) and
|
43
42
|
set(:nist_subdiv, subdiv.text)
|
43
|
+
super
|
44
44
|
end
|
45
45
|
|
46
46
|
def version(ixml, _out)
|
@@ -86,7 +86,8 @@ module IsoDoc
|
|
86
86
|
end
|
87
87
|
|
88
88
|
def withdrawal_pending(ixml)
|
89
|
-
d = ixml&.at(ns("//bibdata/date[@type = 'obsoleted']"))&.text or return
|
89
|
+
d = ixml&.at(ns("//bibdata/date[@type = 'obsoleted']"))&.text&.strip or return
|
90
|
+
d += "-01" if /^\d\d\d\d-\d\d$/.match(d)
|
90
91
|
date = Date.parse(d) or return
|
91
92
|
set(:withdrawal_pending, true) if date > Date.today
|
92
93
|
end
|
@@ -109,18 +110,15 @@ module IsoDoc
|
|
109
110
|
"title"))&.text and set(:subseries, subs)
|
110
111
|
end
|
111
112
|
|
112
|
-
def monthyr(isodate)
|
113
|
-
return nil if isodate.nil?
|
114
|
-
DateTime.parse(isodate).localize(:en).to_additional_s("yMMMM")
|
115
|
-
end
|
116
|
-
|
117
113
|
def mmddyyyy(isodate)
|
118
114
|
return nil if isodate.nil?
|
115
|
+
isodate += "-01" if /^\d\d\d\d-\d\d$/.match(isodate)
|
119
116
|
Date.parse(isodate).strftime("%m-%d-%Y")
|
120
117
|
end
|
121
118
|
|
122
119
|
def MMMddyyyy(isodate)
|
123
120
|
return nil if isodate.nil?
|
121
|
+
isodate += "-01" if /^\d\d\d\d-\d\d$/.match(isodate)
|
124
122
|
Date.parse(isodate).strftime("%B %d, %Y")
|
125
123
|
end
|
126
124
|
|
data/lib/isodoc/nist/render.rb
CHANGED
@@ -93,7 +93,7 @@ module Iso690Render
|
|
93
93
|
def self.standardidentifier(doc)
|
94
94
|
ret = []
|
95
95
|
doc.xpath("./docidentifier").each do |id|
|
96
|
-
next if %w(nist-mr nist-long).include? id["type"]
|
96
|
+
next if %w(nist-mr nist-long metanorma rfc-anchor).include? id["type"]
|
97
97
|
ret << standardidentifier1(id)
|
98
98
|
end
|
99
99
|
ret.join(". ")
|
@@ -207,7 +207,6 @@ module Iso690Render
|
|
207
207
|
else
|
208
208
|
ret += embedded ? wrap(creatornames(doc), "", "") : wrap(creatornames(doc), "", "")
|
209
209
|
end
|
210
|
-
|
211
210
|
if dr
|
212
211
|
mdy = MMMddyyyy(date(doc)) and ret += wrap(mdy, " (", ")")
|
213
212
|
else
|
data/lib/isodoc/nist/xrefs.rb
CHANGED
@@ -77,7 +77,8 @@ module IsoDoc
|
|
77
77
|
annex_names1(c, "#{num}.#{i + 1}", 2)
|
78
78
|
end
|
79
79
|
clause.xpath(ns("./terms | ./term | ./references")).each_with_index do |c, i|
|
80
|
-
|
80
|
+
suppress_biblio_title(c) ?
|
81
|
+
annex_names1(c, "#{num}", 1) : annex_names1(c, "#{num}.#{i + 1}", 2)
|
81
82
|
end
|
82
83
|
hierarchical_asset_names(clause, num)
|
83
84
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metanorma-nist
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ribose Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03
|
11
|
+
date: 2020-04-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: htmlentities
|