asciidoctor-csand 0.2.5

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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: a1288b2d89e1982f0ca35f53718c67d37147f48e
4
+ data.tar.gz: 2a7040217f02725314c0175f75c84a7bb161b9b2
5
+ SHA512:
6
+ metadata.gz: f2ffbcb7cd53dce5e30f558f1171798ea63c812384d1b4e22eb7f3f060dc3da4fed104ac826d1d0a7da2c8314bcc3ce41eb35b467d4f35e3b7c9d28ded376409
7
+ data.tar.gz: 065e4c2de5b672ec3ce43f3fc3e99c37173632cda3b7fde8378e36571f353f8e19d1dd554fd1610cec974db7077de7982769e222e658db171488241b80f66ec4
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ .DS_Store
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at ronald.tse@ribose.com. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+ git_source(:github) {|repo| "https://github.com/#{repo}" }
3
+
4
+ gem "isodoc", github: "riboseinc/isodoc"
5
+ gem "asciidoctor-iso", github: "riboseinc/asciidoctor-iso"
6
+
7
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,182 @@
1
+ GIT
2
+ remote: https://github.com/riboseinc/asciidoctor-iso
3
+ revision: acb439aa79a102bff01f876b6f19bdf468a47861
4
+ specs:
5
+ asciidoctor-iso (0.7.5)
6
+ asciidoctor (~> 1.5.6)
7
+ html2doc
8
+ htmlentities (~> 4.3.4)
9
+ isodoc
10
+ nokogiri
11
+ ruby-jing
12
+ sass
13
+ thread_safe
14
+ uuidtools
15
+
16
+ GIT
17
+ remote: https://github.com/riboseinc/isodoc
18
+ revision: 71a0d3a0f6ed4c001968949187103247de97a879
19
+ specs:
20
+ isodoc (0.5.9)
21
+ asciimath
22
+ html2doc
23
+ htmlentities (~> 4.3.4)
24
+ image_size
25
+ liquid
26
+ mime-types
27
+ nokogiri
28
+ roman-numerals
29
+ ruby-xslt
30
+ thread_safe
31
+ uuidtools
32
+
33
+ PATH
34
+ remote: .
35
+ specs:
36
+ asciidoctor-csand (0.2.5)
37
+ asciidoctor (~> 1.5.7)
38
+ asciidoctor-iso (>= 0.7.5)
39
+ asciimath
40
+ htmlentities (~> 4.3.4)
41
+ image_size
42
+ isodoc
43
+ mime-types
44
+ nokogiri
45
+ ruby-jing
46
+ ruby-xslt
47
+ thread_safe
48
+ uuidtools
49
+
50
+ GEM
51
+ remote: https://rubygems.org/
52
+ specs:
53
+ asciidoctor (1.5.7.1)
54
+ asciimath (1.0.4)
55
+ ast (2.4.0)
56
+ byebug (9.1.0)
57
+ coderay (1.1.2)
58
+ diff-lcs (1.3)
59
+ docile (1.3.0)
60
+ equivalent-xml (0.6.0)
61
+ nokogiri (>= 1.4.3)
62
+ ffi (1.9.23)
63
+ formatador (0.2.5)
64
+ guard (2.14.2)
65
+ formatador (>= 0.2.4)
66
+ listen (>= 2.7, < 4.0)
67
+ lumberjack (>= 1.0.12, < 2.0)
68
+ nenv (~> 0.1)
69
+ notiffany (~> 0.0)
70
+ pry (>= 0.9.12)
71
+ shellany (~> 0.0)
72
+ thor (>= 0.18.1)
73
+ guard-compat (1.2.1)
74
+ guard-rspec (4.7.3)
75
+ guard (~> 2.1)
76
+ guard-compat (~> 1.1)
77
+ rspec (>= 2.99.0, < 4.0)
78
+ html2doc (0.7.0)
79
+ asciimath
80
+ htmlentities (~> 4.3.4)
81
+ image_size
82
+ mime-types
83
+ nokogiri
84
+ ruby-xslt
85
+ thread_safe
86
+ uuidtools
87
+ htmlentities (4.3.4)
88
+ image_size (2.0.0)
89
+ json (2.1.0)
90
+ liquid (4.0.0)
91
+ listen (3.1.5)
92
+ rb-fsevent (~> 0.9, >= 0.9.4)
93
+ rb-inotify (~> 0.9, >= 0.9.7)
94
+ ruby_dep (~> 1.2)
95
+ lumberjack (1.0.13)
96
+ method_source (0.9.0)
97
+ mime-types (3.1)
98
+ mime-types-data (~> 3.2015)
99
+ mime-types-data (3.2016.0521)
100
+ mini_portile2 (2.3.0)
101
+ nenv (0.3.0)
102
+ nokogiri (1.8.2)
103
+ mini_portile2 (~> 2.3.0)
104
+ notiffany (0.1.1)
105
+ nenv (~> 0.1)
106
+ shellany (~> 0.0)
107
+ optout (0.0.2)
108
+ parallel (1.12.1)
109
+ parser (2.5.1.0)
110
+ ast (~> 2.4.0)
111
+ powerpack (0.1.1)
112
+ pry (0.11.3)
113
+ coderay (~> 1.1.0)
114
+ method_source (~> 0.9.0)
115
+ rainbow (3.0.0)
116
+ rake (12.3.1)
117
+ rb-fsevent (0.10.3)
118
+ rb-inotify (0.9.10)
119
+ ffi (>= 0.5.0, < 2)
120
+ roman-numerals (0.3.0)
121
+ rspec (3.7.0)
122
+ rspec-core (~> 3.7.0)
123
+ rspec-expectations (~> 3.7.0)
124
+ rspec-mocks (~> 3.7.0)
125
+ rspec-core (3.7.1)
126
+ rspec-support (~> 3.7.0)
127
+ rspec-expectations (3.7.0)
128
+ diff-lcs (>= 1.2.0, < 2.0)
129
+ rspec-support (~> 3.7.0)
130
+ rspec-mocks (3.7.0)
131
+ diff-lcs (>= 1.2.0, < 2.0)
132
+ rspec-support (~> 3.7.0)
133
+ rspec-support (3.7.1)
134
+ rubocop (0.56.0)
135
+ parallel (~> 1.10)
136
+ parser (>= 2.5)
137
+ powerpack (~> 0.1)
138
+ rainbow (>= 2.2.2, < 4.0)
139
+ ruby-progressbar (~> 1.7)
140
+ unicode-display_width (~> 1.0, >= 1.0.1)
141
+ ruby-jing (0.0.1)
142
+ optout (>= 0.0.2)
143
+ ruby-progressbar (1.9.0)
144
+ ruby-xslt (0.9.10)
145
+ ruby_dep (1.5.0)
146
+ sass (3.5.6)
147
+ sass-listen (~> 4.0.0)
148
+ sass-listen (4.0.0)
149
+ rb-fsevent (~> 0.9, >= 0.9.4)
150
+ rb-inotify (~> 0.9, >= 0.9.7)
151
+ shellany (0.0.1)
152
+ simplecov (0.16.1)
153
+ docile (~> 1.1)
154
+ json (>= 1.8, < 3)
155
+ simplecov-html (~> 0.10.0)
156
+ simplecov-html (0.10.2)
157
+ thor (0.20.0)
158
+ thread_safe (0.3.6)
159
+ timecop (0.9.1)
160
+ unicode-display_width (1.3.2)
161
+ uuidtools (2.1.5)
162
+
163
+ PLATFORMS
164
+ ruby
165
+
166
+ DEPENDENCIES
167
+ asciidoctor-csand!
168
+ asciidoctor-iso!
169
+ bundler (~> 1.15)
170
+ byebug (~> 9.1)
171
+ equivalent-xml (~> 0.6)
172
+ guard (~> 2.14)
173
+ guard-rspec (~> 4.7)
174
+ isodoc!
175
+ rake (~> 12.0)
176
+ rspec (~> 3.6)
177
+ rubocop (~> 0.50)
178
+ simplecov (~> 0.15)
179
+ timecop (~> 0.9)
180
+
181
+ BUNDLED WITH
182
+ 1.16.1
data/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2018, Ribose
4
+ All rights reserved.
5
+
6
+ Redistribution and use in source and binary forms, with or without
7
+ modification, are permitted provided that the following conditions are met:
8
+
9
+ * Redistributions of source code must retain the above copyright notice, this
10
+ list of conditions and the following disclaimer.
11
+
12
+ * Redistributions in binary form must reproduce the above copyright notice,
13
+ this list of conditions and the following disclaimer in the documentation
14
+ and/or other materials provided with the distribution.
15
+
16
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
20
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
22
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
23
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
data/README.adoc ADDED
@@ -0,0 +1,275 @@
1
+ = AsciiCSAND: Asciidoctor processor for Ribose Standard Documents (CSAND)
2
+
3
+ image:https://img.shields.io/gem/v/asciidoctor-csand.svg["Gem Version", link="https://rubygems.org/gems/asciidoctor-csand"]
4
+ image:https://img.shields.io/travis/riboseinc/asciidoctor-csand/master.svg["Build Status", link="https://travis-ci.org/riboseinc/asciidoctor-csand"]
5
+ image:https://codeclimate.com/github/riboseinc/asciidoctor-csand/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/riboseinc/asciidoctor-csand"]
6
+
7
+ WARNING: This gem is still under development.
8
+
9
+ == Functionality
10
+
11
+ This gem processes http://asciidoctor.org/[Asciidoctor] documents following
12
+ a template for generating CSAND documents.
13
+
14
+ The gem currently inherits from the https://github.com/riboseinc/asciidoctor-iso
15
+ gem, and aligns closely to it. Refer to the ISO gem
16
+ for guidance, including https://github.com/riboseinc/asciidoctor-iso/wiki/Guidance-for-authoring
17
+
18
+ The following outputs are generated.
19
+
20
+ * (Optional) An HTML preview generated directly from the Asciidoctor document,
21
+ using native Asciidoctor formatting.
22
+ ** http://asciimath.org[AsciiMathML] is to be used for mathematical formatting.
23
+ The gem uses the https://github.com/asciidoctor/asciimath[Ruby AsciiMath parser],
24
+ which is syntactically stricter than the common MathJax processor;
25
+ if you do not get expected results, try bracketing terms your in AsciiMathML
26
+ expressions.
27
+ * an XML representation of the document, intended as a document model for CSAND
28
+ International Standards.
29
+ * The XML representation is processed in turn to generate the following outputs
30
+ as end deliverable CSAND standard drafts.
31
+ ** Microsoft Word output (`.doc`), following the style conventions of the
32
+ https://www.csand.org/csand-templates.html[CSAND Standard Microsoft Word template].
33
+ (In development)
34
+ ** PDF (forthcoming)
35
+ ** HTML (forthcoming)
36
+
37
+ This AsciiDoc syntax for writing CSAND standards is hereby named "AsciiCSAND".
38
+
39
+ == Usage
40
+
41
+ [source,console]
42
+ ----
43
+ $ asciidoctor a.adoc # HTML output of Asciidoc file
44
+ $ asciidoctor -b csand -r 'asciidoctor-csand' a.adoc # CSAND XML output
45
+ ----
46
+
47
+ The gem translates the document into CSAND XML format, and then
48
+ validates its output against the CSAND XML document model; errors are
49
+ reported to console against the XML, and are intended for users to
50
+ check that they have provided all necessary components of the
51
+ document.
52
+
53
+ TODO: The gem will then convert the XML to Word Document, HTML, and
54
+ PDF, and output those files with the appropriate file suffixes.
55
+ `lib/asciidoctor/csand/csand2wordhtml.rb` is work in progress, and not yet
56
+ integrated into the executable.
57
+
58
+ === Content Warnings
59
+
60
+ The gem also realises several format checks as prescribed in ISO/IEC
61
+ DIR 2, and warns the user about them in the console:
62
+
63
+ * Numbers with what looks like dots instead of commas for decimal points.
64
+
65
+ * Groups of numbers without spacing for every three digits. (The gem attempts
66
+ to ignore CSAND references.)
67
+
68
+ * No space before percent sign.
69
+
70
+ * No bracketing of tolerance in percentage (e.g. `15 ± 7 % .`)
71
+
72
+ * No recommendations, permissions or requirements (detected by keyword) in:
73
+ foreword, scope, introduction, term examples and examples, notes, footnotes.
74
+
75
+ * No subclauses that are the only child of a clause. (In clauses, annexes, or
76
+ scopes.)
77
+
78
+ * 5 levels of subclause nesting. (Never actuated, AsciiDoc only permits 4
79
+ levels of subsections.)
80
+
81
+ * Non-CSAND/IEC reference turning up as normative.
82
+
83
+ * Term definition starts with an article, or ends with a period.
84
+
85
+ * Title intro or title part appears in only one of French or English.
86
+
87
+ == Approach
88
+
89
+ === Document model
90
+
91
+ The Ribose Standard Document model is an instance of the
92
+ https://github.com/riboseinc/isodoc-models[StandardDocument model].
93
+
94
+ The CSAND format ("CSAND XML") intends to introduce rigor into the CSAND
95
+ standards authoring process, and is prescribed in a separate document.
96
+
97
+ CSAND XML is still under development, but it already contains all the markup
98
+ needed to render a CSAND document into HTML.
99
+
100
+ WARNING: The current RNG model of CSAND XML is out of sync with the UML.
101
+
102
+ === Asciidoctor
103
+
104
+ Asciidoctor has been selected as the authoring tool to generate the document
105
+ model representation of CSAND standards. It is a document formatting tool like
106
+ Markdown and DocBook, which combines the relative ease of use of the former
107
+ (using relatively lightweight markup), and the rigor and expressively of the
108
+ latter (it has a well-defined syntax, and was in fact initially developed as a
109
+ DocBook document authoring tool). Asciidoctor has built-in capability to output
110
+ Text, DocBook and HTML; so it can be used to preview the file as it is being
111
+ authored.
112
+
113
+ Note that in order to generate HTML preview output close to what is intended
114
+ in the CSAND standard, the Asciidoc
115
+ document includes a fair amount of formatting instructions (e.g. disabling
116
+ section numbering where appropriate, the titling of Appendixes as Annexes), as
117
+ well as CSAND boilerplate text, and predefined section headers (sections are
118
+ recognised by fixed titles such as `Normative References`). Authoring CSAND
119
+ standards in this fashion assumes that users will be populating an Asciidoc
120
+ template, and not removing needed formatting instructions.
121
+
122
+ === Features not visible in HTML preview
123
+
124
+ The gem uses built-in Asciidoc formatting as much as possible, so that users
125
+ can retain the ability to preview documents; for _Terms and Definitions_
126
+ clauses, which have a good deal of explicit structure, macros have been
127
+ introduced for semantic markup (admitted terms, deprecated terms, etc). The
128
+ default HTML output of an Asciidoc-formatted CSAND document is quite close to the
129
+ intended final output, with the following exceptions. Note that the final
130
+ outputs of the conversion (Microsoft Word, PDF, HTML) do not have these exceptions,
131
+ and comply with the CSAND Standard specifications.
132
+
133
+ * _Terms and Definitions_: each term is marked up as an unnumbered subclause,
134
+ the semantic markup of alternate and other terms is not rendered visually.
135
+
136
+ * _Formulas_: Asciidoctor has no provision for the automated numbering of
137
+ isolated block formulas ("stem"), and does not display the number assigned a
138
+ block formula in its default HTML processor—although it does provide automated
139
+ numbering of examples. Formula numbering is provided in the final outputs
140
+ of the conversion.
141
+
142
+ * _Missing elements_: The document model does not yet include Asciidoc elements
143
+ that do not appear to be relevant to CSAND Standards; these will be ignored in
144
+ generating CSAND XML. Those elements include:
145
+ * sidebars (`aside`) (as distinct from warnings),
146
+ * ASCII art/preformatted text (`literal`) (as distinct from sourcecode listings),
147
+ * page breaks (`thematic break`).
148
+
149
+ * _Markup_: Some connecting text which is used to convey markup structure is
150
+ left out: in particular, `DEPRECATED` and `SOURCE` (replaced by formatting
151
+ macros).
152
+
153
+ * _Tables_: Table footnotes are treated like all other footnotes: they are
154
+ rendered at the bottom of the document, rather than the bottom of the table,
155
+ and they are not numbered separately.
156
+
157
+ * _Cross-references_: Footnoted cross-references are indicated with the reference
158
+ text `fn` in csandlation, or `fn:` as a prefix to the reference text. The default
159
+ HTML processor leaves these as is: if no reference text is given, only `fn`
160
+ will be displayed (though it will still hyperlink to the right reference).
161
+
162
+ * _References_: The convention for references is that CSAND documents are cited
163
+ without brackets by CSAND number, and optionally year, whether they are normative
164
+ or in the bibliography (e.g. `CSAND 20483:2013`); while all other references are
165
+ cited by bracketed number in the bibliography (e.g. `[1]`). The default HTML
166
+ processor treats all references the same, and will bracket them (e.g. `[CSAND
167
+ 20483:2013]`). For the same reason, CSAND references listed in the bibliography
168
+ will be listed under an CSAND reference, rather than a bracketed number.
169
+
170
+ * _References_: References are rendered cited throughout, since they are
171
+ automated. For that reason, if reference is to be made to both an undated and a
172
+ dated version of an CSAND reference, these need to be explicitly listed as
173
+ separate references. (This is not done in the Rice model document, which lists
174
+ CSAND 6646, but under _Terms and Definitions_ cites the dated CSAND 6646:2011.
175
+
176
+ * _References_: CSAND references that are undated but published have their date
177
+ indicated under the CSAND standards format in an explanatory footnote. Because of
178
+ constraints introduced by Asciidoctor, that explanation is instead given in
179
+ square brackets in Asciidoc format.
180
+
181
+ * _Annexes_: Subheadings cannot preserve subsection numbering, while also
182
+ appearing inline with their text (e.g. Rice document, Annex B.2): they appear
183
+ as headings in separate lines.
184
+
185
+ * _Annexes_: Cross-references to Annex subclauses are automatically prefixed
186
+ with `Clause` rather than `Annex` or nothing.
187
+
188
+ * _Metadata_: Document metadata such as document numbers, technical committees
189
+ and title wording are not rendered in the default HTML output.
190
+
191
+ * _Patent Notice_: Patent notices are treated and rendered as a subsection of
192
+ the introduction, with an explicit subheading.
193
+
194
+ * _Numbering_: The numbering of figures and tables is sequential in the default
195
+ HTML processor: it does not include the Clause or Annex number. This,
196
+ _Figure 1_, not _Figure A.1_.
197
+
198
+ * _Notes_: There is no automatic note numbering by the default HTML processor.
199
+
200
+ * _Review Notes_: The reviewer on the review note is not displayed.
201
+
202
+ * _Keys_: Keys to formulas and figures are expected to be marked up as
203
+ definition lists consistently, rather than as inline prose.
204
+
205
+ * _Figures_: Simple figures are marked up as images, figures containing
206
+ subfigures as examples. Numbering by the default HTML processor may be
207
+ inconsistent. Subfigures are automatically numbered as independent figures.
208
+
209
+ * _Markup_: The default HTML processor does not support CSS extensions such as
210
+ small caps or strike through, though these can be marked up as CSS classes
211
+ through custom macros in Asciidoctor: a custom CSS stylesheet will be needed to
212
+ render them.
213
+
214
+
215
+
216
+ TODO: May need to only encode figures as examples.
217
+
218
+ == Document Attributes
219
+
220
+ The gem relies on Asciidoctor document attributes to provide necessary
221
+ metadata about the document. These include:
222
+
223
+ `:edition:`:: The document edition
224
+
225
+ `:revdate:`:: The date the document was last updated
226
+
227
+ `:copyright-year:`:: The year which will be claimed as when the copyright for
228
+ the document was issued
229
+
230
+ `:title:`:: The main component of the English title of the document
231
+ (mandatory). (The first line of the AsciiDoc document, which contains the title
232
+ introduced with `=`, is ignored)
233
+
234
+ `:doctype:`:: The document type (see CSAND deliverables: The different types of
235
+ CSAND publications) (mandatory). The permitted types are:
236
+ +
237
+ --
238
+ code:: Code Artifact
239
+ presentation:: Presentation
240
+ proposal:: Proposal; includes IETF DRAFT
241
+ standard:: Recommendation; includes IETF RFC
242
+ report:: report
243
+ --
244
+
245
+ `:status:``:: The document status. The permitted types are: `proposal`,
246
+ `working-draft`, `committee-draft`, `draft-standard`, `final-draft`,
247
+ `published`, `withdrawn`.
248
+
249
+ `:technical-committee:`:: The name of the relevant CSAND technical committee
250
+ (mandatory)
251
+
252
+ `:language:` :: The language of the document (only `en` for now) (mandatory)
253
+
254
+
255
+ The attribute `:draft:`, if present, includes review notes in the XML output;
256
+ these are otherwise suppressed.
257
+
258
+ == AsciiCSAND features not also present in AsciiISO
259
+
260
+ * `+[keyword]#...#+`: encodes keywords, such as "MUST", "MUST NOT". (Encoded as
261
+ `<span class="keyword">...</span>`.
262
+
263
+ == Data Models
264
+
265
+ The CSAND Standard Document format is an instance of the
266
+ https://github.com/riboseinc/isodoc-models[StandardDocument model]. Details of
267
+ this general model can be found on its page. Details of the CSAND modifications
268
+ to this general model can be found on the https://github.com/riboseinc/csand[CSAND model]
269
+ repository.
270
+
271
+ == Examples
272
+
273
+ * link:spec/examples/rfc6350.adoc[] is an AsciiCSAND version of https://tools.ietf.org/html/rfc6350[RFC 6350].
274
+ * link:spec/examples/rfc6350.html[] is an HTML file generated from the AsciiCSAND.
275
+ * link:spec/examples/rfc6350.doc[] is a Word document generated from the AsciiCSAND.