AsciiRFC: Writing Internet-Drafts and RFCs in AsciiDoc
Functionality
This gem processes Metanorma documents following a template for generating IETF deliverables.
Metanorma-IETF adheres to AsciiRFC syntax, an AsciiDoc syntax for writing IETF documents developed by the Metanorma team.
The gem currently inherits from the https://github.com/metanorma/metanorma-standoc gem, and aligns closely to it.
The following outputs are generated:
-
RFC XML v3
-
Metanorma
doctype
:ietf
-
Metanorma file extension:
xmlrfc
(notxml
!)
-
The “xml2rfc” Vocabulary (hereinafter “RFC XML”) is an XML-based language used for writing Internet-Drafts and RFCs (RFC7322).
This gem allows you to author these types of documents in AsciiDoc, and outputs RFC XML output in v3 format:
-
v3 RFC XML (RFC 7991)
Its syntax is designed to be “native-asciidoctor” as much as possible, with some templated use of attributes to convey added information for RFC XML output.
For further information about the markup used, please refer to the Writing IETF I-Ds and RFCs using AsciiDoc & Metanorma.
Usage
The preferred way to invoke this gem is via the metanorma
command:
$ metanorma --type ietf a.adoc # output RFC XML v3, text, HTML
$ metanorma --type ietf --extensions xmlrfc a.adoc # output RFC XML v3
The gem translates the document into IETF XML RFC format. By default, the gem
then runs the xml2rfc
tool to generate text and HTML versions as well.
Installation
Metanorma
Please visit https://www.metanorma.com for installation instructions for all platforms.
Gem usage
Add this line to your application’s Gemfile:
gem "metanorma-ietf"
And then execute:
$ bundle
Quick Start / Template
Clone the
rfc-asciirfc-minimal
repository as a template, and populate it for your Asciidoc RFCs and
Internet-Drafts:
$ git clone https://github.com/metanorma/rfc-asciirfc-minimal
See the README of that document for more information.
Documentation
Usage
Converting your AsciiDoc to RFC XML is a simple as running the appropriate
metanorma
command.
Once processing completes, you should see the RFC XML file draft-example-00.xml
in the
same directory.
RFC XML v3 Example
Development
We follow Sandi Metz’s Rules for this gem, you can read the description of the rules here.
All new code should follow these rules. If you make changes in a pre-existing file that violates these rules you should fix the violations as part of your contribution.
Setup
Clone the repository.
git clone https://github.com/metanorma/metanorma-ietf
Setup your environment.
bin/setup
Run the test suite
bin/rspec
Contributing
First, thank you for contributing! We love pull requests from everyone. By participating in this project, you hereby grant Ribose Inc. the right to grant or transfer an unlimited number of non exclusive licenses or sub-licenses to third parties, under the copyright covering the contribution to use the contribution by all means.
Here are a few technical guidelines to follow:
-
Open an issue to discuss a new feature.
-
Write tests to support your new feature.
-
Make sure the entire test suite passes locally and on CI.
-
Open a Pull Request.
-
Squash your commits after receiving feedback.
-
Party!
Credits
This gem is developed, maintained and funded by Ribose Inc.
Examples
-
Example documents are avalable at the mn-samples-ietf repository.
-
Document templates are available at the mn-templates-ietf repository.
Notes
Metanorma-IETF was formerly published as the asciidoctor-rfc
gem.