
Security News
Follow-up and Clarification on Recent Malicious Ruby Gems Campaign
A clarification on our recent research investigating 60 malicious Ruby gems.
= AsciiM3D: Asciidoctor processor for Ribose Standard Documents (M3D)
image:https://img.shields.io/gem/v/asciidoctor-m3d.svg["Gem Version", link="https://rubygems.org/gems/asciidoctor-m3d"] image:https://img.shields.io/travis/riboseinc/asciidoctor-m3d/master.svg["Build Status", link="https://travis-ci.org/riboseinc/asciidoctor-m3d"] image:https://codeclimate.com/github/riboseinc/asciidoctor-m3d/badges/gpa.svg["Code Climate", link="https://codeclimate.com/github/riboseinc/asciidoctor-m3d"]
WARNING: This gem is still under development.
== Functionality
This gem processes http://asciidoctor.org/[Asciidoctor] documents following a template for generating M3D documents.
The gem currently inherits from the https://github.com/riboseinc/asciidoctor-iso gem, and aligns closely to it. Refer to the ISO gem for guidance, including https://github.com/riboseinc/asciidoctor-iso/wiki/Guidance-for-authoring
The following outputs are generated.
This AsciiDoc syntax for writing M3D standards is hereby named "AsciiM3D".
== Usage
The preferred way to invoke this gem is via the metanorma
script:
The gem translates the document into M3D XML format, and then validates its output against the M3D 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 PDF.
The gem can also be invoked directly within asciidoctor, though this is deprecated:
=== Installation
If you are using a Mac, the https://github.com/riboseinc/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:
== Approach
=== Document model
The Ribose Standard Document model is an instance of the https://github.com/riboseinc/isodoc-models[StandardDocument model].
The M3D format ("M3D XML") intends to introduce rigor into the M3D standards authoring process, and is prescribed in a separate document.
M3D XML is still under development, but it already contains all the markup needed to render a M3D document into HTML.
=== Asciidoctor
Asciidoctor has been selected as the authoring tool to generate the document model representation of M3D standards. It is a document formatting tool like Markdown and DocBook, which combines the relative ease of use of the former (using relatively lightweight markup), and the rigor and expressively of the latter (it has a well-defined syntax, and was in fact initially developed as a DocBook document authoring tool). Asciidoctor has built-in capability to output Text, DocBook and HTML; so it can be used to preview the file as it is being authored.
Note that in order to generate HTML preview output close to what is intended
in the M3D standard, the Asciidoc
document includes a fair amount of formatting instructions (e.g. disabling
section numbering where appropriate, the titling of Appendixes as Annexes), as
well as M3D boilerplate text, and predefined section headers (sections are
recognised by fixed titles such as Normative References
). Authoring M3D
standards in this fashion assumes that users will be populating an Asciidoc
template, and not removing needed formatting instructions.
== Document Attributes
The gem relies on Asciidoctor document attributes to provide necessary metadata about the document. These include:
:edition:
:: The document edition
:revdate:
:: The date the document was last updated
:copyright-year:
:: The year which will be claimed as when the copyright for
the document was issued
:title:
:: The main component of the English title of the document
(mandatory). (The first line of the AsciiDoc document, which contains the title
introduced with =
, is ignored)
:doctype:
:: The document type (see M3D deliverables: The different types of
M3D publications) (mandatory). The permitted types are:
+:status:``:: The document status. The permitted types are:
proposal,
working-draft,
committee-draft,
draft-standard,
final-draft,
published,
withdrawn`.
:technical-committee:
:: The name of the relevant M3D technical committee
(mandatory)
:language:
:: The language of the document (only en
for now) (mandatory)
:url:
:: The URL that the HTML version of the document will be published to
(optional)
The attribute :draft:
, if present, includes review notes in the XML output;
these are otherwise suppressed.
== AsciiM3D features not also present in AsciiISO
+[keyword]#...#+
: encodes keywords, such as "MUST", "MUST NOT". (Encoded as
<span class="keyword">...</span>
.== Data Models
The M3D Standard Document format is an instance of the https://github.com/riboseinc/isodoc-models[StandardDocument model]. Details of this general model can be found on its page. Details of the M3D modifications to this general model can be found on the https://github.com/riboseinc/m3d[M3D model] repository.
== Examples
FAQs
Unknown package
We found that asciidoctor-m3d demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
A clarification on our recent research investigating 60 malicious Ruby gems.
Security News
ESLint now supports parallel linting with a new --concurrency flag, delivering major speed gains and closing a 10-year-old feature request.
Research
/Security News
A malicious Go module posing as an SSH brute forcer exfiltrates stolen credentials to a Telegram bot controlled by a Russian-speaking threat actor.