= Metanorma-MPFD: Metanorma processor for MPFA documents image:https://img.shields.io/gem/v/metanorma-mpfd.svg["Gem Version", link="https://rubygems.org/gems/metanorma-mpfd"] image:https://img.shields.io/travis/metanorma/metanorma-mpfd/master.svg["Build Status", link="https://travis-ci.com/metanorma/metanorma-mpfd"] image:https://ci.appveyor.com/api/projects/status/ee3t67dyxlb5y4db?svg=true["Appveyor Build Status", link="https://ci.appveyor.com/project/ribose/metanorma-mpfd"] image:https://codeclimate.com/github/metanorma/metanorma-mpfd/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-mpfd"] WARNING: This gem is still under development. Moreover, unlike other Metanorma gems, there is no formal MPFD specification, and this work is still currently exploratory. == Functionality This gem processes http://asciidoctor.org/[Asciidoctor] documents following a template for generating documents for the http://www.mpfa.org.hk[Mandatory Provident Fund Schemes Authority of Hong Kong] (MPFA). (MPFD stands for Mandatory Provident Fund Schemes Authority 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 MPFD International Standards. * The XML representation is processed in turn to generate the following outputs as end deliverable MPFD standard drafts. ** DOC ** HTML == Usage The preferred way to invoke this gem is via the `metanorma` script: [source,console] ---- $ metanorma --type mpfd a.adoc # output HTML and DOC $ metanorma --type mpfd --extensions html a.adoc # output just HTML $ metanorma --type mpfd --extensions doc a.adoc # output just DOC $ metanorma --type mpfd --extensions xml a.adoc # output MPFD XML ---- The gem translates the document into Metanorma XML format, and then validates its output against the Metanorma 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. Sample documents are available at http://github.com/metanorma/mpfd-documents/ === 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-mpfd $ 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/mpfd/[The MPFD flavor of Metanorma] == Data Models The MPFD Document format is an instance of the https://github.com/metanorma/metanorma-model-standoc[StandardDocument model]. Details of this general model can be found on its page. == Examples Sample documents are available at http://github.com/metanorma/mpfd-documents/