metanorma-iso 1.0.8 → 1.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +2 -7
- data/README.adoc +30 -364
- data/docs/adopting-spec.adoc +72 -0
- data/docs/adopting-toolchain.adoc +389 -0
- data/docs/asciiiso-syntax.adoc +305 -0
- data/docs/customisation.adoc +5 -643
- data/docs/guidance.adoc +73 -64
- data/docs/localizing-output.adoc +57 -0
- data/docs/navigation.adoc +23 -0
- data/docs/quickstart.adoc +106 -304
- data/docs/replacing-asciidoc.adoc +15 -0
- data/docs/styling-output-html.adoc +37 -0
- data/docs/styling-output-msword.adoc +38 -0
- data/lib/asciidoctor/iso/biblio.rng +10 -0
- data/lib/asciidoctor/iso/cleanup.rb +24 -0
- data/lib/asciidoctor/iso/front.rb +32 -5
- data/lib/asciidoctor/iso/isodoc.rng +3 -0
- data/lib/asciidoctor/iso/isostandard.rng +6 -0
- data/lib/asciidoctor/iso/validate.rb +2 -1
- data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -2
- data/lib/isodoc/iso/html/style-human.scss +1 -1
- data/lib/isodoc/iso/html/style-iso.scss +1 -1
- data/lib/isodoc/iso/html/word_iso_titlepage.html +2 -2
- data/lib/isodoc/iso/metadata.rb +8 -13
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/asciidoctor-iso/base_spec.rb +17 -13
- data/spec/asciidoctor-iso/refs_spec.rb +0 -3
- data/spec/asciidoctor-iso/validate_spec.rb +2 -0
- data/spec/assets/iso.doc +12 -12
- data/spec/assets/iso.html +1 -1
- data/spec/examples/rice.preview.html +25 -25
- data/spec/isodoc/metadata_spec.rb +8 -6
- data/spec/isodoc/postproc_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -3
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d36e59d91ee690729ee514a08a08a15a650b6e3c1218cf7c4cdc31b799be4972
|
4
|
+
data.tar.gz: d978786dec8b8f8d31dde329b859d13b70fcfa7d3d1c10ff88ece85689f34c32
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5b13d09e33a161365fac3d98d996dc2b195520853b5f97f3225804ca392b88c1768dd6d9b7950a19ae16a847a080a73f785eed4e93468a98f947dbf8bdc64e0
|
7
|
+
data.tar.gz: 60cfad22dc19fcad0c05526322be131cf6c40eaa4b7cd5815e25979145ea568c696eb89d28f634340c4b288063c33780070855ed81bd87134ec2ea9286d529c3
|
data/.rubocop.yml
CHANGED
@@ -3,13 +3,8 @@
|
|
3
3
|
# All project-specific additions and overrides should be specified in this file.
|
4
4
|
|
5
5
|
inherit_from:
|
6
|
-
|
7
|
-
- ".rubocop.tb.yml"
|
8
|
-
# Overrides from Ribose
|
9
|
-
- ".rubocop.ribose.yml"
|
6
|
+
- https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
|
10
7
|
AllCops:
|
11
|
-
|
12
|
-
StyleGuideCopsOnly: false
|
13
|
-
TargetRubyVersion: 2.5
|
8
|
+
TargetRubyVersion: 2.3
|
14
9
|
Rails:
|
15
10
|
Enabled: true
|
data/README.adoc
CHANGED
@@ -8,22 +8,23 @@ WARNING: This gem is still under development.
|
|
8
8
|
|
9
9
|
_Formerly known as_ `asciidoctor-iso`.
|
10
10
|
|
11
|
-
== Functionality
|
11
|
+
== Functionality and Approach
|
12
|
+
|
13
|
+
For the conceptual underpinnings of this gem, and the other gems in the Metanorma suite, see the https://github.com/riboseinc/metanorma-model-standoc/blob/master/README.adoc[metanorma-standoc README].
|
14
|
+
|
15
|
+
== Outputs
|
12
16
|
|
13
17
|
This gem processes Metanorma documents following a template for generating ISO
|
14
18
|
International Standards. The following outputs are generated.
|
15
19
|
|
16
20
|
* The XML representation of the document, intended as a document model for ISO
|
17
21
|
International Standards.
|
18
|
-
|
19
|
-
* The XML representation is processed in turn to generate the following outputs
|
20
|
-
as end deliverable ISO standard drafts.
|
21
|
-
** Microsoft Word output (`.doc`), following the style conventions of the
|
22
|
+
* Microsoft Word output (`.doc`), following the style conventions of the
|
22
23
|
https://www.iso.org/iso-templates.html[ISO Standard Microsoft Word template].
|
23
|
-
|
24
|
+
* HTML. For ISO, two HTML files are generated: the `.html` file follows ISO
|
24
25
|
conventions in rendering, which looks very similar to the Word output, while
|
25
26
|
the `-alt.html` file has richer styling.
|
26
|
-
|
27
|
+
* PDF. Not supported for the ISO gem, but available for other specifications,
|
27
28
|
generated from the HTML file.
|
28
29
|
|
29
30
|
The following input formats are supported:
|
@@ -31,18 +32,6 @@ The following input formats are supported:
|
|
31
32
|
* http://asciidoctor.org/[Asciidoctor]
|
32
33
|
(This AsciiDoc syntax for writing ISO standards is hereby named "AsciiISO".)
|
33
34
|
|
34
|
-
This README provides an overview of the functionality of the gem; see also
|
35
|
-
https://github.com/riboseinc/metanorma-iso/wiki/Guidance-for-authoring[Guidance for authoring]
|
36
|
-
ISO standards using the gem. The
|
37
|
-
https://github.com/riboseinc/metanorma-iso/wiki/Quickstart-Guide[Quickstart guide]
|
38
|
-
gives a summary overview.
|
39
|
-
|
40
|
-
NOTE: http://asciimath.org[AsciiMathML] is used for mathematical formatting.
|
41
|
-
The gem uses the https://github.com/asciidoctor/asciimath[Ruby AsciiMath parser],
|
42
|
-
which is syntactically stricter than the common MathJax processor;
|
43
|
-
if you do not get expected results, try bracketting terms your in AsciiMathML
|
44
|
-
expressions.
|
45
|
-
|
46
35
|
== Usage
|
47
36
|
|
48
37
|
The preferred way to invoke this gem is via the `metanorma` script:
|
@@ -63,24 +52,6 @@ document.
|
|
63
52
|
|
64
53
|
The gem then converts the XML into HTML and DOC.
|
65
54
|
|
66
|
-
////
|
67
|
-
The gem can also be invoked directly within asciidoctor, though this is deprecated:
|
68
|
-
|
69
|
-
[source,console]
|
70
|
-
----
|
71
|
-
$ asciidoctor -b iso -r 'metanorma-iso' a.adoc
|
72
|
-
----
|
73
|
-
|
74
|
-
If you do not invoke the `iso` backend explicitly, the AsciiISO source will be
|
75
|
-
treated as generic Asciidoc markup, and will output an HTML preview that
|
76
|
-
ignores the ISO-specific modifications to the markup:
|
77
|
-
|
78
|
-
[source,console]
|
79
|
-
----
|
80
|
-
$ asciidoctor a.adoc
|
81
|
-
----
|
82
|
-
////
|
83
|
-
|
84
55
|
=== Installation
|
85
56
|
|
86
57
|
If you are using a Mac, the https://github.com/riboseinc/metanorma-macos-setup
|
@@ -91,8 +62,11 @@ scripts such as this one. You need only run the following in a Terminal console:
|
|
91
62
|
----
|
92
63
|
$ bash <(curl -s https://raw.githubusercontent.com/riboseinc/metanorma-macos-setup/master/metanorma-setup)
|
93
64
|
$ gem install metanorma-iso
|
65
|
+
$ gem install metanorma-cli
|
94
66
|
----
|
95
67
|
|
68
|
+
The metanorma-cli gem is the command-line interface for the Metanorma tool suite
|
69
|
+
(incorporating the `metanorma` executable seen above).
|
96
70
|
|
97
71
|
=== Content Warnings
|
98
72
|
|
@@ -127,68 +101,13 @@ levels of subsections.)
|
|
127
101
|
In addition, the gem checks all terms cited from the IEV Electropedia against
|
128
102
|
the online IEV Electropedia entry, and issues a warning if the term is different.
|
129
103
|
|
130
|
-
== Approach
|
131
|
-
=== Document model
|
132
|
-
|
133
|
-
The document model ("IsoDoc") used in document generation
|
134
|
-
intends to introduce rigour into the ISO
|
135
|
-
standards authoring process; the existing
|
136
|
-
https://www.iso.org/iso-templates.html[Microsoft Word template from ISO]
|
137
|
-
do not support such rigour down to the element level. It also introduces
|
138
|
-
flexibility by decoupling the document structure from its presentation.
|
139
|
-
|
140
|
-
The ISO International Standard format is prescribed in
|
141
|
-
http://www.iec.ch/members_experts/refdocs/iec/isoiecdir-2%7Bed7.0%7Den.pdf[ISO/IEC DIR 2 "Principles and rules for the structure and drafting of ISO and IEC documents"],
|
142
|
-
to a level amenable to an explicit document model. A formal document
|
143
|
-
model would allow checking for consistency in format and content, and expedite
|
144
|
-
authoring and quality control of ISO standards. Authoring standards through a
|
145
|
-
more abstract formal model also permit enhanced functionality such as
|
146
|
-
cross-reference link checking and auto-numbering of sections, figures, tables and formulas.
|
147
|
-
Outputting a document in different languages also becomes straightforward.
|
148
|
-
|
149
|
-
The document model for ISO Standards specifically is derived from a more general
|
150
|
-
https://github.com/riboseinc/isodoc-models[StandardDocument model]. Other
|
151
|
-
ISO-like standards can also be derived from this more general model;
|
152
|
-
CSD (https://github.com/riboseinc/csd, https://github.com/riboseinc/metanorma-csd)
|
153
|
-
is one such instance.
|
154
|
-
|
155
104
|
The document model for ISO Standards contains all the structures described
|
156
|
-
in ISO/IEC DIR 2
|
105
|
+
in http://www.iec.ch/members_experts/refdocs/iec/isoiecdir-2%7Bed7.0%7Den.pdf[ISO/IEC DIR 2 "Principles and rules for the structure and drafting of ISO and IEC documents"].
|
106
|
+
It is expressed as a
|
157
107
|
link:lib/metanorma/iso/isostandard.rnc[Relax NG Compact schema]; actual
|
158
108
|
validation occurs against its link:lib/metanorma/iso/isostandard.rng[full Relax
|
159
109
|
NG counterpart].
|
160
110
|
|
161
|
-
=== Asciidoctor
|
162
|
-
|
163
|
-
Asciidoctor has been selected as the authoring tool to generate the document
|
164
|
-
model representation of ISO standards. It is a document formatting tool like
|
165
|
-
Markdown and DocBook, which combines the relative ease of use of the former
|
166
|
-
(using relatively lightweight markup), and the rigour and expressively of the
|
167
|
-
latter (it has a well-defined syntax, and was in fact initially developed as a
|
168
|
-
DocBook document authoring tool). Asciidoctor has built-in capability to output
|
169
|
-
Text and HTML; so it can be used to preview the file as it is being
|
170
|
-
authored. However the gem natively outputs HTML and Word output, so there should
|
171
|
-
not be much need for this.
|
172
|
-
|
173
|
-
In order to generate HTML preview output close to what is intended
|
174
|
-
in the ISO standard, the Asciidoc
|
175
|
-
document includes a fair amount of formatting instructions (e.g. disabling
|
176
|
-
section numbering where appropriate, the titling of Appendixes as Annexes), as
|
177
|
-
well as ISO boilerplate text, and predefined section headers (sections are
|
178
|
-
recognised by fixed titles such as `Normative References`). Authoring ISO
|
179
|
-
standards in this fashion assumes that users will be populating an Asciidoc
|
180
|
-
template, and not removing needed formatting instructions.
|
181
|
-
|
182
|
-
Asciidoctor has some formatting constraints because of its own document model,
|
183
|
-
that users need to be aware. For example, Asciidoc has a strict division between
|
184
|
-
inline and block elements, which disallows certain kinds of nesting; so a list
|
185
|
-
cannot be embedded within a paragraph, it can only constitute its own paragraph
|
186
|
-
(though lists themselves can be nested within each other). Asciidoctor also disallows
|
187
|
-
multiple paragraphs in footnotes,
|
188
|
-
http://discuss.asciidoctor.org/footnotes-with-paragraph-breaks-td4130.html[by design].
|
189
|
-
(The document model does not impose this constraint, so you could edit the generated
|
190
|
-
XML to break up paragraphs within a footnote.)
|
191
|
-
|
192
111
|
[[model_additions]]
|
193
112
|
== Asciidoctor model additions
|
194
113
|
|
@@ -227,198 +146,29 @@ multiple-block warning
|
|
227
146
|
====
|
228
147
|
--
|
229
148
|
|
149
|
+
=== Bibliography
|
230
150
|
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
clauses, which have a good deal of explicit structure, macros have been
|
236
|
-
introduced for semantic markup (admitted terms, deprecated terms, etc).
|
237
|
-
|
238
|
-
The default HTML output of an Asciidoc-formatted ISO document is quite close to the
|
239
|
-
intended final output, with the following exceptions, and with the additional
|
240
|
-
exceptions listed <<model_additions,above>> as markup introduced for ISO markup.
|
241
|
-
Note that the final
|
242
|
-
outputs of the conversion (Microsoft Word, PDF, HTML) do not have these exceptions,
|
243
|
-
and comply with the ISO Standard specifications.
|
244
|
-
|
245
|
-
* _Terms and Definitions_: each term is marked up as an unnumbered subclause,
|
246
|
-
the semantic markup of alternate and other terms is not rendered visually.
|
247
|
-
|
248
|
-
* _Formulas_: Asciidoctor has no provision for the automated numbering of
|
249
|
-
isolated block formulas ("stem"), and does not display the number assigned a
|
250
|
-
block formula in its default HTML processor—although it does provide automated
|
251
|
-
numbering of examples. Formula numbering is provided in the final outputs
|
252
|
-
of the conversion.
|
253
|
-
|
254
|
-
* _Missing elements_: The document model does not yet include Asciidoc elements
|
255
|
-
that do not appear to be relevant to ISO Standards; these will be ignored in
|
256
|
-
generating ISO XML. Those elements include:
|
257
|
-
** sidebars (`aside`) (as distinct from warnings),
|
258
|
-
** ASCII art/preformatted text (`literal`) (as distinct from sourcecode listings),
|
259
|
-
** page breaks (`thematic break`).
|
260
|
-
|
261
|
-
* _Markup_: Some connecting text which is used to convey markup structure is
|
262
|
-
left out: in particular, `DEPRECATED` and `SOURCE` (replaced by formatting
|
263
|
-
macros).
|
151
|
+
ISO treats dated and undated references as separate (an undated reference is taken to
|
152
|
+
refer to the latest published edition of that reference.) if reference is to be made to
|
153
|
+
both an undated and a dated version of an ISO reference, these need to be explicitly listed as
|
154
|
+
separate references.
|
264
155
|
|
265
|
-
|
266
|
-
rendered at the bottom of the document, rather than the bottom of the table,
|
267
|
-
and they are not numbered separately.
|
268
|
-
|
269
|
-
* _Cross-references_: Footnoted cross-references are indicated with the reference
|
270
|
-
text `fn` in isolation, or `fn:` as a prefix to the reference text. The default
|
271
|
-
HTML processor leaves these as is: if no reference text is given, only `fn`
|
272
|
-
will be displayed (though it will still hyperlink to the right reference).
|
273
|
-
|
274
|
-
* _References_: The convention for references is that ISO documents are cited
|
275
|
-
without brackets by ISO number, and optionally year, whether they are normative
|
276
|
-
or in the bibliography (e.g. `ISO 20483:2013`); while all other references are
|
277
|
-
cited by bracketed number in the bibliography (e.g. `[1]`). The default HTML
|
278
|
-
processor treats all references the same, and will bracket them (e.g. `[ISO
|
279
|
-
20483:2013]`). For the same reason, ISO references listed in the bibliography
|
280
|
-
will be listed under an ISO reference, rather than a bracketed number.
|
281
|
-
|
282
|
-
* _References_: References are rendered cited throughout, since they are
|
283
|
-
automated. For that reason, if reference is to be made to both an undated and a
|
284
|
-
dated version of an ISO reference, these need to be explicitly listed as
|
285
|
-
separate references. (This is not done in the Rice model document, which lists
|
286
|
-
ISO 6646, but under _Terms and Definitions_ cites the dated ISO 6646:2011.
|
287
|
-
|
288
|
-
* _References_: ISO references that are undated but published have their date
|
289
|
-
indicated under the ISO standards format in an explanatory footnote. Because of
|
290
|
-
constraints introduced by Asciidoctor, that explanation is instead given in
|
291
|
-
square brackets in Asciidoc format.
|
292
|
-
|
293
|
-
* _Annexes_: Subheadings cannot preserve subsection numbering, while also
|
294
|
-
appearing inline with their text (e.g. Rice document, Annex B.2): they appear
|
295
|
-
as headings in separate lines.
|
296
|
-
|
297
|
-
* _Annexes_: Cross-references to Annex subclauses are automatically prefixed
|
298
|
-
with `Clause` rather than `Annex` or nothing.
|
299
|
-
|
300
|
-
* _Metadata_: Document metadata such as document numbers, technical committees
|
301
|
-
and title wording are not rendered in the default HTML output.
|
302
|
-
|
303
|
-
* _Patent Notice_: Patent notices are treated and rendered as a subsection of
|
304
|
-
the introduction, with an explicit subheading.
|
305
|
-
|
306
|
-
* _Numbering_: The numbering of figures and tables is sequential in the default
|
307
|
-
HTML processor: it does not include the Clause or Annex number. This,
|
308
|
-
_Figure 1_, not _Figure A.1_.
|
309
|
-
|
310
|
-
* _Notes_: There is no automatic note numbering by the default HTML processor.
|
311
|
-
|
312
|
-
* _Review Notes_: The reviewer on the review note is not displayed.
|
313
|
-
|
314
|
-
* _Keys_: Keys to formulas and figures are expected to be marked up as
|
315
|
-
definition lists consistently, rather than as inline prose.
|
316
|
-
|
317
|
-
* _Figures_: Simple figures are marked up as images, figures containing
|
318
|
-
subfigures as examples. Numbering by the default HTML processor may be
|
319
|
-
inconsistent. Subfigures are automatically numbered as independent figures.
|
320
|
-
|
321
|
-
* _Markup_: The default HTML processor does not support CSS extensions such as
|
322
|
-
small caps or strike through, though these can be marked up as CSS classes
|
323
|
-
through custom macros in Asciidoctor: a custom CSS stylesheet will be needed to
|
324
|
-
render them.
|
325
|
-
|
326
|
-
== Bibliography integration
|
327
|
-
|
328
|
-
Bibliographic entries for ISO standards are expected to use the standard document
|
329
|
-
identifier as the item label; e.g.
|
330
|
-
|
331
|
-
[source,asciidoctor]
|
332
|
-
--
|
333
|
-
* [[[ref1,ISO 712]]], _Cereals and cereal products -- Determination of moisture content -- Reference method_
|
334
|
-
--
|
335
|
-
|
336
|
-
By default, the `isobib` gem is used to look up the reference details for
|
337
|
-
any item label prefixed with `ISO` on the ISO web site. The full bibliographic details
|
338
|
-
of the item are screenscraped from the ISO site and inserted into the XML file
|
339
|
-
(although only the title of the reference is used in rendering). The
|
340
|
-
http://www.electropedia.org[Electropedia] termbank is queried in validation, to confirm
|
341
|
-
that the cited entries in Terms and Definitions are the same as what is cited online;
|
342
|
-
those queries are routed through the `iev` gem
|
343
|
-
|
344
|
-
[[cache]]
|
345
|
-
The results of all `isobib` searches done to date, across all documents,
|
346
|
-
are cached in the global cache file `~/.relaton-bib.pstore`,
|
347
|
-
so they do not need to be re-fetched each time a document is processed.
|
348
|
-
(The web query takes a few seconds per reference.)
|
349
|
-
|
350
|
-
The results of all `isobib` searches done to date for the current document
|
351
|
-
(`filename.adoc`) are stored in the same directory as the current document,
|
352
|
-
in the file `{filename}.relaton.pstore`. The local cache overrides entries in
|
353
|
-
the global cache, and can be manually edited. The local cache is only used
|
354
|
-
if the `:local-cache:` or `:local-cache-only:` document attribute is set.
|
355
|
-
|
356
|
-
If the document attribute `:no-isobib:` is set, the reference details for
|
357
|
-
items are not looked up via `isobib`, and the `isobib` caches are not used.
|
358
|
-
If the document attribute `:no-isobib-cache:` is set, the reference details for
|
359
|
-
items are still looked up via `isobib`, but the `isobib` caches are not used.
|
360
|
-
|
361
|
-
Any entry in the cache that corresponds to an undated ISO reference fetches its details
|
362
|
-
from the latest available entry on the ISO web site. If the entry is more than 60
|
363
|
-
days old, it is refetched.
|
364
|
-
|
365
|
-
The results of all `iev` searches done to date across all documents are cached
|
366
|
-
in the global cache fule `~/iev.pstore`, and the results of all `iev` searches
|
367
|
-
done to date for the current document are stored in the same directory as the
|
368
|
-
current document, in the file `(filename).iev.pstore`.
|
156
|
+
For automated bibliography integration, see the https://github.com/riboseinc/metanorma-model-standoc/blob/master/README.adoc[metanorma-standoc README].
|
369
157
|
|
158
|
+
[[document-attributes]]
|
370
159
|
== Document Attributes
|
371
160
|
|
372
|
-
The gem
|
373
|
-
|
374
|
-
|
375
|
-
`:nodoc:`:: Do not generate Word and HTML output, only generate XML output.
|
376
|
-
Can be used as a command-line option (like all other document attributes):
|
377
|
-
`asciidoctor -a nodoc -b iso -r "metanorma-iso" a.adoc`
|
378
|
-
|
379
|
-
`:novalid:`:: Suppress validation.
|
380
|
-
|
381
|
-
`:flush-caches:`:: If set, delete and reinitialise the <<cache,cache>> of `isobib` searches
|
382
|
-
for ISO references from the ISO web site.
|
383
|
-
|
384
|
-
`:no-isobib:`:: If set, do not use the `isobib` or `iev` gem functionality to look up
|
385
|
-
ISO and IEV references online, nor the <<cache,cache>> of `isobib` and `iev` searches.
|
386
|
-
|
387
|
-
`:no-isobib-cache:`:: If set, use the `isobib` and `iev` gem functionality to look up
|
388
|
-
ISO and IEV references online, but do not use the <<cache,cache>> of `isobib` and `iev` searches.
|
389
|
-
|
390
|
-
`:local-cache:`:: Use the local isobib and iev search caches to override the global isobib and iev search
|
391
|
-
caches.
|
392
|
-
|
393
|
-
`:local-cache-only:`:: Use the local isobib and iev search caches to the exclusion of the global isobib and iev search
|
394
|
-
caches.
|
395
|
-
|
396
|
-
`:i18nyaml:`:: Name of YAML file of internationalisation text, to use instead
|
397
|
-
of the built-in English, French or Chinese text used to label parts of the document
|
398
|
-
(e.g. "Table", "Foreword", boilerplate text for Normative References, etc.)
|
399
|
-
Use if you wish to output an ISO standard in a language other than those three.
|
400
|
-
A sample YAML file for English, with "Foreword" replaced with "Frontispiece",
|
401
|
-
is available at link:spec/examples/english.yaml[].
|
402
|
-
|
403
|
-
`:docnumber:`:: The ISO document number (mandatory)
|
161
|
+
The gem uses the document attributes defined for metanorma-standoc (see
|
162
|
+
the https://github.com/riboseinc/metanorma-model-standoc/blob/master/README.adoc[metanorma-standoc README]).
|
163
|
+
The following document attributes are specific to ISO:
|
404
164
|
|
405
165
|
`:tc-docnumber:`:: The document number assigned by the Technical committee
|
406
166
|
|
407
167
|
`:partnumber:`:: The ISO document part number. (This can be "part-subpart" if this is an IEC document.)
|
408
168
|
|
409
|
-
`:edition:`:: The document edition
|
410
|
-
|
411
|
-
`:revdate:`:: The date the document was last updated
|
412
|
-
|
413
|
-
`:draft:`:: The document draft (used in addition to document stage, for multiple iterations: expected format _X.Y_)
|
414
|
-
|
415
|
-
`:copyright-year:`:: The year which will be claimed as when the copyright for
|
416
|
-
the document was issued
|
417
|
-
|
418
|
-
`:library-ics:` :: The ICS (International Categorization for Standards) number for the standard. There may be more than one ICS for a document; if so, they should be comma-delimited. (The ics identifier is added to the document metadata, but is not output to the current document templates.)
|
419
|
-
|
420
169
|
`:title-intro-en:`:: The introductory component of the English title of the
|
421
|
-
document
|
170
|
+
document. This and the other `:title-*` document attributes are used instead
|
171
|
+
of the metanorma-standoc `:title:` attribute.
|
422
172
|
|
423
173
|
`:title-main-en:`:: The main component of the English title of the document
|
424
174
|
(mandatory). (The first line of the AsciiDoc document, which contains the title
|
@@ -436,14 +186,16 @@ components such as annexes.)
|
|
436
186
|
|
437
187
|
`:title-part-fr:`:: The French title of the document part
|
438
188
|
|
439
|
-
`:doctype:`::
|
189
|
+
`:doctype:`:: Has its possible values defined by
|
440
190
|
https://www.iso.org/deliverables-all.html[ISO deliverables: The different types of ISO publications]
|
441
|
-
|
191
|
+
(mandatory). The permitted types are:
|
442
192
|
`international-standard, technical-specification, technical-report,
|
443
193
|
publicly-available-specification, international-workshop-agreement, guide`.
|
444
194
|
|
445
195
|
`:docstage:`:: The stage code for the document status (see
|
446
|
-
https://www.iso.org/stage-codes.html[International harmonized stage codes])
|
196
|
+
https://www.iso.org/stage-codes.html[International harmonized stage codes]).
|
197
|
+
This attribute and `:docsubstage:` replace the `:status:` attribute of
|
198
|
+
metanorma-standoc.
|
447
199
|
|
448
200
|
`:docsubstage:`:: The substage code for the document status (see
|
449
201
|
https://www.iso.org/stage-codes.html[International harmonized stage codes])
|
@@ -479,92 +231,6 @@ not supplied. Example values: `JWG`, `JAG`, `AG` (advisory group), `AHG`, `SWG`,
|
|
479
231
|
|
480
232
|
`:workgroup:`:: The name of the relevant ISO workgroup
|
481
233
|
|
482
|
-
`:language:` :: The language of the document (`en` or `fr`). Defaults to `en`.
|
483
|
-
|
484
|
-
`:script:` :: The script of the document (defaults to `Latn`). Must be supplied as
|
485
|
-
`Hans` for Simplified Chinese.
|
486
|
-
|
487
|
-
`:publisher:`:: The standards agency publishing the standard; can be multiple
|
488
|
-
(comma-delimited). Defaults to `ISO`.
|
489
|
-
|
490
|
-
`:uri:`:: The URI to which this standard is published.
|
491
|
-
`:xml-uri:`:: The URI to which the (Metanorma) XML representation of this standard is published.
|
492
|
-
`:html-uri:`:: The URI to which the HTML representation of this standard is published.
|
493
|
-
`:pdf-uri:`:: The URI to which the PDF representation of this standard is published.
|
494
|
-
`:doc-uri:`:: The URI to which the DOC representation of this standard is published.
|
495
|
-
`:relaton-uri:`:: The URI to which the Relaton XML representation of this standard is published.
|
496
|
-
|
497
|
-
`:body-font:`:: Font for body text; will be inserted into CSS. Defaults to
|
498
|
-
Cambria for Latin script, SimSun for Simplified Chinese.
|
499
|
-
|
500
|
-
`:header-font:`:: Font for headers; will be inserted into CSS. Defaults to
|
501
|
-
Cambria for Latin script, SimHei for Simplified Chinese.
|
502
|
-
|
503
|
-
`:monospace-font`:: Font for monospace; will be inserted into CSS. Defaults to
|
504
|
-
Courier New.
|
505
|
-
|
506
|
-
`:htmlstylesheet`:: SCSS stylesheet to use for HTML output. Defaults to built in stylesheet,
|
507
|
-
which adheres with ISO formatting requirements. Recommend against overriding this.
|
508
|
-
|
509
|
-
`:htmlcoverpage`:: HTML template for cover page. Defaults to built in template. Recommend against overriding this.
|
510
|
-
|
511
|
-
`:htmlintropage`:: HTML template for introductory section. Defaults to built in template. Recommend against overriding this.
|
512
|
-
|
513
|
-
`:scripts`:: Javascript scripts for HTML output. Defaults to built in scripts. Recommend against overriding this.
|
514
|
-
`:scripts-pdf`:: Javascript scripts for HTML > PDF output. Defaults to built in scripts. Recommend against overriding this.
|
515
|
-
|
516
|
-
`:wordstylesheet`:: Primary SCSS stylesheet to use for Word output. Defaults to built in stylesheet,
|
517
|
-
which adheres with ISO formatting requirements. Recommend against overriding this.
|
518
|
-
|
519
|
-
`:standardstylesheet`:: Secondary SCSS stylesheet use for Word output. Defaults to built in stylesheet,
|
520
|
-
which adheres with ISO formatting requirements. Recommend against overriding this.
|
521
|
-
|
522
|
-
`:header`:: Header and footer file for Word output. Defaults to built in template. Recommend against overriding this.
|
523
|
-
|
524
|
-
`:wordcoverpage`:: Word template for cover page. Defaults to built in template. Recommend against overriding this.
|
525
|
-
|
526
|
-
`:wordintropage`:: Word template for introductory section. Defaults to built in template. Recommend against overriding this.
|
527
|
-
|
528
|
-
`:ulstyle`:: Word CSS selector for unordered lists in supplied stylesheets. Defaults to value for built in stylesheet. Recommend against overriding this.
|
529
|
-
|
530
|
-
`:olstyle`:: Word CSS selector for ordered lists in supplied stylesheets. Defaults to value for built in stylesheet. Recommend against overriding this.
|
531
|
-
|
532
|
-
`:data-uri-image`:: Encode all images in HTML output as inline data-URIs.
|
533
|
-
|
534
|
-
The attribute `:draft:`, if present, includes review notes in the XML output;
|
535
|
-
these are otherwise suppressed.
|
536
|
-
|
537
|
-
The document proper can reference the values of document attributes, which is convenient
|
538
|
-
for reusability. For example,
|
539
|
-
the Rice Model document references the editorial groups that have contributed to the
|
540
|
-
document as
|
541
|
-
|
542
|
-
[source,asciidoc]
|
543
|
-
--
|
544
|
-
This document was prepared by Technical Committee ISO/TC {technical-committee-number}, _{technical-committee}_, Subcommittee SC {subcommittee-number}, _{subcommittee}_.
|
545
|
-
--
|
546
|
-
|
547
|
-
If the corresponding document attributes are not populated in the header, then the references
|
548
|
-
themselves will not be populated.
|
549
|
-
|
550
|
-
|
551
|
-
== Data Models
|
552
|
-
|
553
|
-
The IsoDoc data model (IsoStandardDocument) is instantiated from the
|
554
|
-
https://github.com/riboseinc/isodoc-models[StandardDocument model]. For details
|
555
|
-
please visit that page.
|
556
|
-
|
557
|
-
== Code Structure
|
558
|
-
|
559
|
-
The gem invokes the following other gems as a division of labour.
|
560
|
-
|
561
|
-
* This gem generates the IsoDoc XML proper
|
562
|
-
* https://github.com/riboseinc/isodoc renders IsoDoc XML into HTML
|
563
|
-
* https://github.com/riboseinc/html2doc converts HTML into Microsoft Word
|
564
|
-
* https://github.com/riboseinc/isodoc-models derives the ISO Standard grammar
|
565
|
-
used for validation from the generic IsoDoc grammar
|
566
|
-
|
567
|
-
|
568
234
|
== Examples
|
569
235
|
|
570
236
|
The gem has been tested to date against the
|