= AsciiCSAND: Asciidoctor processor for CSA Normal Documents (CSAND) image:https://img.shields.io/gem/v/metanorma-csand.svg["Gem Version", link="https://rubygems.org/gems/metanorma-csand"] image:https://img.shields.io/travis/metanorma/metanorma-csand/master.svg["Build Status", link="https://travis-ci.org/metanorma/metanorma-csand"] image:https://ci.appveyor.com/api/projects/status/3hulwj0i2c4uc7n4?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/metanorma-csand"] image:https://codeclimate.com/github/metanorma/metanorma-csand/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-csand"] WARNING: This gem is still under development. _Formerly known as_ `asciidoctor-csand`. == Functionality This gem processes http://asciidoctor.org/[Asciidoctor] documents following a template for generating CSAND documents. The gem currently inherits from the https://github.com/metanorma/metanorma-standoc gem, and aligns closely to it. Refer to the ISO gem documentation for guidance, including https://github.com/metanorma/metanorma-iso/wiki/Guidance-for-authoring The following outputs are generated. * (Optional) An HTML preview generated directly from the Asciidoctor document, using native Asciidoctor formatting. ** http://asciimath.org[AsciiMathML] is to be used for mathematical formatting. The gem uses the https://github.com/asciidoctor/asciimath[Ruby AsciiMath parser], which is syntactically stricter than the common MathJax processor; if you do not get expected results, try bracketing terms your in AsciiMathML expressions. * an XML representation of the document, intended as a document model for CSAND International Standards. * The XML representation is processed in turn to generate the following outputs as end deliverable CSAND standard drafts. ** HTML output. This AsciiDoc syntax for writing CSAND standards is hereby named "AsciiCSAND". == Usage The preferred way to invoke this gem is via the `metanorma` script: [source,console] ---- $ metanorma --type csand a.adoc # output just HTML $ metanorma --type csand a.adoc --extensions html # output just HTML $ metanorma --type csand a.adoc --extensions xml # output CSAND XML ---- The gem translates the document into CSAND XML format, and then validates its output against the CSAND 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 to HTML, and outputs that files with the appropriate `.html` suffix. The gem can also be invoked directly within asciidoctor, though this is deprecated: [source,console] ---- $ asciidoctor -b csand -r 'asciidoctor-csand' a.adoc ---- === 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-csand ---- == Documentation See https://www.metanorma.com/author/csand/[Author Cloud Security Alliance documents with Metanorma-CSAND].