metanorma/metanorma-iec

View on GitHub
README.adoc

Summary

Maintainability
Test Coverage
= metanorma-iec: Metanorma processor for the International Electrotechnical Commission

image:https://img.shields.io/gem/v/metanorma-iec.svg["Gem Version", link="https://rubygems.org/gems/metanorma-iec"]
image:https://github.com/metanorma/metanorma-iec/workflows/rake/badge.svg["Build Status", link="https://github.com/metanorma/metanorma-iec/actions?workflow=rake"]
image:https://codeclimate.com/github/metanorma/metanorma-iec/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/metanorma/metanorma-iec"]
image:https://img.shields.io/github/issues-pr-raw/metanorma/metanorma-iec.svg["Pull Requests", link="https://github.com/metanorma/metanorma-iec/pulls"]
image:https://img.shields.io/github/commits-since/metanorma/metanorma-iec/latest.svg["Commits since latest",link="https://github.com/metanorma/metanorma-iec/releases"]

== Functionality

This gem processes https://www.metanorma.com[Metanorma documents] following
the Metanorma model for generating IEC standards.

The gem is basically the https://github.com/metanorma/metanorma-iso gem, with some tweaking of rendering to meet the particular requirements of the IEC.

It provides the following functions:

. Compiles Metanorma input into the Metanorma-IEC XML format (which is identical to Metanorma-ISO, since the two standards share the same document model)
. Validates XML output against the Metanorma-IEC 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.
. Metanorma-IEC XML is then converted into desired output formats.

The following outputs are supported:

* Primary: the canonical Metanorma-IEC XML representation (`.xml`).
* Secondary: the Metanorma-IEC XML representation is processed to generate the following outputs
as end deliverable IEC documents.
** HTML (`.html`)
** Word (`.doc`)

== Structure

This gem inherits from the https://github.com/metanorma/metanorma-iso
gem, and aligns closely to it.


=== Quickstart

Please see https://www.metanorma.com for instructions to get started.

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-cli
$ gem install metanorma-iec
----


== Usage

Using the `metanorma` CLI:

[source,console]
----
$ metanorma --type iec a.adoc                   # output HTML
$ metanorma --type iec --extensions html a.adoc # output just HTML
$ metanorma --type iec --extensions xml a.adoc  # output Metanorma XML
----


== Authoring

Please refer to the Metanorma-ISO documentation for general documentation.

* Metanorma-ISO general documentation: https://www.metanorma.com/software/metanorma-iso/

* Metanorma-ISO guidance: https://www.metanorma.com/software/metanorma-iso/docs/guidance/


== Documentation

See https://www.metanorma.com/author/iso/[Write ISO documents with Metanorma]

== Examples

* Example documents are avalable at the https://github.com/metanorma/mn-samples-iec[mn-samples-iec] repository.
* Document templates are available at the https://github.com/metanorma/mn-templates-iec[mn-templates-iec] repository.