metanorma-iso 1.0.8 → 1.0.9
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/.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
|