= Metanorma-ISO: Metanorma processor for ISO standards image:https://img.shields.io/gem/v/metanorma-iso.svg["Gem Version", link="https://rubygems.org/gems/metanorma-iso"] image:https://github.com/metanorma/metanorma-iso/workflows/macos/badge.svg["Build Status (macOS)", link="https://github.com/metanorma/metanorma-iso/actions?workflow=macos"] image:https://github.com/metanorma/metanorma-iso/workflows/ubuntu/badge.svg["Build Status (ubuntu)", link="https://github.com/metanorma/metanorma-iso/actions?workflow=ubuntu"] image:https://github.com/metanorma/metanorma-iso/workflows/windows/badge.svg["Build Status (Windows)", link="https://github.com/metanorma/metanorma-iso/actions?workflow=windows"] image:https://codeclimate.com/github/metanorma/metanorma-iso/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-iso"] image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-iso.svg["Pull Requests", link="https://github.com/metanorma/metanorma-iso/pulls"] image:https://img.shields.io/github/commits-since/metanorma/metanorma-iso/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-iso/releases"] _Formerly known as_ `asciidoctor-iso`. == Functionality and Approach For the conceptual underpinnings of this gem, and the other gems in the Metanorma suite, see the https://github.com/metanorma/metanorma-model-standoc/blob/master/README.adoc[metanorma-standoc README]. == Outputs This gem processes Metanorma documents following a template for generating ISO International Standards. The following outputs are generated. * The XML representation of the document, intended as a document model for ISO International Standards. * Microsoft Word output (`.doc`), following the style conventions of the https://www.iso.org/iso-templates.html[ISO Standard Microsoft Word template]. * HTML. For ISO, two HTML files are generated: the `.html` file follows ISO conventions in rendering, which looks very similar to the Word output, while the `-alt.html` file has richer styling. * PDF. Not supported for the ISO gem, but available for other specifications, generated from the HTML file. The following input formats are supported: * http://asciidoctor.org/[Asciidoctor] (This AsciiDoc syntax for writing ISO standards is hereby named "AsciiISO".) == Usage The preferred way to invoke this gem is via the `metanorma` script: [source,console] ---- $ metanorma --type iso a.adoc # output HTML and DOC $ metanorma --type csd --extensions html a.adoc # output just HTML $ metanorma --type csd --extensions doc a.adoc # output just DOC $ metanorma --type csd --extensions xml a.adoc # output CSD XML ---- The gem translates the document into ISO XML format, and then validates its output against the ISO 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 DOC. === Installation If you are using a Mac, the https://github.com/metanorma/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: [source,console] ---- $ bash <(curl -s https://raw.githubusercontent.com/metanorma/metanorma-macos-setup/master/metanorma-setup) $ gem install metanorma-iso $ gem install metanorma-cli ---- The metanorma-cli gem is the command-line interface for the Metanorma tool suite (incorporating the `metanorma` executable seen above). == Documentation See https://www.metanorma.com/author/iso/[The ISO flavor of Metanorma]. == Examples * Example documents are avalable at the https://github.com/metanorma/mn-samples-iso[mn-samples-iso] repository. * Document templates are available at the https://github.com/metanorma/mn-templates-iso[mn-templates-iso] repository.