AsciiCSD: Metanorma processor for CSD standards
This gem processes Asciidoctor documents following a template for generating CSD International Standards.
The gem currently inherits from the https://github.com/riboseinc/metanorma-standoc gem, and aligns closely to it. Refer to the ISO gem documentation for guidance, including https://github.com/riboseinc/metanorma-iso/wiki/Guidance-for-authoring
The following outputs are generated.
(Optional) An HTML preview generated directly from the Asciidoctor document, using native Asciidoc formatting.
an XML representation of the document, intended as a document model for CSD International Standards.
The XML representation is processed in turn to generate the following outputs as end deliverable CSD standard drafts.
This AsciiDoc syntax for writing CSD standards is hereby named "AsciiCSD".
The preferred way to invoke this gem is via the
$ metanorma --type csd a.adoc # output HTML and PDF $ metanorma --type csd --extensions html a.adoc # output just HTML $ metanorma --type csd --extensions pdf a.adoc # output just PDF $ metanorma --type csd --extensions xml a.adoc # output CSD XML
The gem translates the document into CSD XML format, and then validates its output against the CSD XML document model; errors are reported to console against the XML, and are intended for users to check that they have provided all necessary components of the document.
The gem then converts the XML into HTML and PDF.
If you are using a Mac, the https://github.com/riboseinc/metanorma-macos-setup repository has instructions on setting up your machine to run Metanorma scripts such as this one. You need only run the following in a Terminal console:
$ bash <(curl -s https://raw.githubusercontent.com/riboseinc/metanorma-macos-setup/master/metanorma-setup) $ gem install metanorma-csd
To get the PDF output working, do the following:
npm install -g --save --save-exact puppeteer
The https://github.com/riboseinc/metanorma-macos-setup script includes Puppeteer installation.
The CSD Standard Document model is an instance of the StandardDocument model.
The CSD format ("CSD XML") intends to introduce rigour into the CSD standards authoring process, and is prescribed in a separate document.
Asciidoctor has been selected as the authoring tool to generate the document model representation of CSD standards. It is a document formatting tool like Markdown and DocBook, which combines the relative ease of use of the former (using relatively lightweight markup), and the rigour and expressively of the latter (it has a well-defined syntax, and was in fact initially developed as a DocBook document authoring tool). Asciidoctor has built-in capability to output Text, DocBook and HTML; so it can be used to preview the file as it is being authored.
Generating documents via a document model substantially automated formatting associated with the document, including automating numbering of headings, figures, tables etc, and automatically generating references and citations.
The gem relies on Asciidoctor document attributes to provide necessary metadata about the document. The metanorma-standoc gem documents the Asciidoctor document attributes common to all metanorma gems. These include:
The document edition
The date the document was last updated
The year which will be claimed as when the copyright for the document was issued
The main component of the English title of the document (mandatory). (The first line of the AsciiDoc document, which contains the title introduced with
=, is ignored)
The document type (see CSD deliverables: The different types of CSD publications) (mandatory). Note that the document types are reflected in the document identifier. The permitted types are:
Standard (no suffix on identifier; e.g.
- technical corrigendum
Technical Corrigendum (suffix
The document status. The permitted types are:
The name of the relevant CSD technical committee
The type of the relevant CSD technical committee (mandatory):
The name of a second relevant CSD technical committee; other committees are added as
The type of a second relevant CSD technical committee; other committees are added as
The language of the document (only
enfor now) (mandatory)
:draft:, if present, includes review notes in the XML output;
these are otherwise suppressed.