Skip to content

Latest commit

 

History

History
137 lines (118 loc) · 11.8 KB

tools-catalog.md

File metadata and controls

137 lines (118 loc) · 11.8 KB
title description published date tags editor dateCreated
Tools catalog
true
2022-01-12 23:32:51 UTC
markdown
2021-08-17 00:37:22 UTC

Introduction

While there are many tools that can be used by I-D authors, there are some that have been specifically developed to support I-D authors and are commonly referred to. This catalog is a reference catalog for these tools and is intended to supplement the task/context-specific mentions of the tools elsewhere in this documentation, not replace it.

Feature classification of tools

The catalog below includes a feature classification which lists the following for each tool:

Supported modes

The tools generally support one or more of the following modes of operation:

  • Interactive Editor
  • Command Line Interface (CLI). Where the author installs the tools locally and then runs them on local files from the command line, one operation at a time.
  • Automated Build process. Where the author(s) installs the tools into a build manager that then runs a sequence of tools on a source target. This allows for a continuous integrated build process much as software developers use when building code.
  • Web service. This can be broken down into two sub-modes:
    • Where the author uses an interactive web page that in turns calls a remote web service, on individual local files generally one operation at the time.
    • Where the author(s) configures their build service to use a remote web service via an API instead of installing the tools.

Supported operations

The tools generally provide one of more of the following broad operations:

  • Convert the document from one format to another such as from XML to PDF.
  • Validate that the format/structure of the document source conforms to the format/structure rules for an I-D/RFC.
  • Extract part of the document. For example, extracting a code module such as YANG, MIB or ABNF and passing it to a separate validator.
  • Insert new text into an I-D. This may be boilerplate, references, new sections or other custom text.
  • Compare two different I-Ds or two versions of an I-D.
  • Supports an interactive Editor with features such as auto-completion.

Supported formats

The formats that we are aware of tools supporting include: AsciiDoc, DOCX, EPUB, LaTeX, Markdown, nroff, Org Mode, PDF, plaintext, RFCXML, as well as the formal languages of ABNF, MIB, YANG and SVG.

Some tools only support the previous version of RFCXML (v2) and the format is written as RFCXML(old) in the table where that occurs, as well as "No" in the "Supports v3" column.

Catalog

Tables {.tabset}

Basic

Tool Description
bibtex2rfc Generates BibXML references from BibTeX citations
bibxml2md Generates Markdown references from BibXML references
bap Extract and validates ABNF
id2xml Generates RFCXML from plain text I-Ds
idnits Check plain text I-D for submission nits
ietf-publisher A GitHub action that you can use to automate the build of PDF, HTML and TXT versions of an RFC written in Markdown
kramdown-rfc Generates RFCXML from Markdown I-Ds
lyx2rfc Generates RFCXML from Lyx (LaTeX) I-Ds and then transforms using xml2rfc
metanorma-ietf Generates RFCXML from AsciiRFC (AsciiDoc) I-Ds
mmark Generates RFCXML from Markdown I-Ds
nroff2xml Generates RFCXML from nroff I-Ds
pyang Validates and converts YANG modules
rfcdiff Side-by-side comparison of an I-D and another version or an RFC
rfcfold Handling of long lines in width-bounded text content, e.g., code fragments or example text, in an I-D or RFC
rfclint Validates RFCXML documents
rfcstrip Extracts code components, YANG modules and SMIv2 modules from RFCs and Internet Drafts, and extracts and unfolds artwork from RFCs and Internet Drafts in XML format
svgcheck Validates RFC-specific SVG and generates conformant SVG
xml2rfc Validates RFCXML and plain text I-Ds and converts to multiple output formats
xml2rfc-xxe A configuration to assist editing RFCXML documents using XMLMind XML Editor
xym Extracts YANG modules from I-Ds and RFCs
YANG validator Extract and validate YANG modules

Feature classification

Tool Modes Operations Input formats Output formats Supports v3
bibtex2rfc Build, CLI Convert BibTex BibXML Yes
bibxml2md Build, CLI Convert BibXML RFCXML(old) No
bap Build, CLI Extract, Validate ABNF - Unknown
id2xml Build, CLI Convert plaintext RFCXML Yes
idnits Build, CLI, Web Validate plaintext - N/A
ietf-publisher Build, CLI Convert Markdown PDF, HTML, TXT ?
kramdown-rfc Build, CLI, Web Convert, Validate Markdown RFCXML Yes
lyx2rfc ? Validate, Convert LaTeX(Lyx) ? No
metanorma-ietf Build, CLI Validate, Convert AsciiDoc(AsciiRFC) RFCXML Yes
mmark Validate, Convert Build, CLI Markdown RFCXML Yes
nroff2xml Build, CLI Convert nroff RFCXML(old) No
pyang Build, CLI Validate, Convert YANG ? N/A
rfcdiff Web Compare plaintext - N/A
rfcfold CLI Convert plaintext plaintext N/A
rfclint Build, CLI Validate RFCXML RFCXML Yes
rfcstrip CLI Extract plaintext, RFCXML YANG, SMIv2, plaintext Yes
svgcheck Build, CLI, Web Validate, Convert SVG SVG Yes
xml2rfc Build, CLI, Web Validate, Convert RFCXML, RFCXML(old), plaintext RFCXML Plain text, PDF, HTML, HTMLised, EPUB, nroff Yes
xml2rfc-xxe Editor Validate, Insert RFCXML(old) RFCXML(old) No
xym Build, CLI Extract RFCXML YANG Yes
YANG validator Web RFCXML YANG Yes

Status

Tool Author Ownership License Maintained Maintainer
bibtex2rfc Yaron Sheffer Yaron Sheffer Public domain Yes Yaron Sheffer
bibxml2md Yaron Sheffer Yaron Sheffer Public domain Yes Yaron Sheffer
bap Bill Fenner Bill Fenner Unknown No None
id2xml Henrik Levkowetz IETF Trust Revised BSD Unknown Unknown
idnits Henrik Levkowetz Henrik Levkowetz GPL Yes Tools Team
ietf-publisher Will Hawkins Will Hawkins GPLv3 Yes Will Hawkins
kramdown-rfc Carsten Bormann Carsten Bormann MIT Yes Carsten Bormann
lyx2rfc Nico Williams Nico Williams Unknown No None
metanorma-ietf Ribose Ribose Simplified BSD Yes Ribose
mmark Miek Gieben Miek Gieben Simplified BSD Yes Miek Gieben
nroff2xml Tomek Mrugalski IETF Trust Revised BSD No None
pyang Martin Bjorklund Martin Bjorklund ISC Yes Martin Bjorklund
rfcdiff Henrik Levkowetz Henrik Levkowetz Unknown Unknown Unknown
rfcfold Kent Watsen and Erik Auerswald IETF Trust Revised BSD Yes Kent Watsen and Erik Auerswald
rfclint Jim Schaad IETF Trust Revised BSD Yes AMS
rfcstrip Multiple Frank Strauss, Technical University of Braunschweig, and other parties A custom license Yes Martin Bjorklund
svgcheck Jim Schaad IETF Trust Revised BSD Yes Tools Team
xml2rfc Henrik Levkowetz IETF Trust Revised BSD Yes Tools Team
xml2rfc-xxe Warren Kumari Warren Kumari Unknown No None
xym Multiple Cisco Systems Revised BSD Yes Einar Nilsen-Nygaard
YANG validator Multiple IETF Trust Revised BSD Yes Pantheon

Miscellaneous tools

There are a number of miscellaneous tools, not directly related to drafting I-Ds and not included in the catalog, that authors may find useful:

  • ietf-cli A multi-functional command line tool for manipulating I-Ds and RFCs and local repositories.

  • print_rfc_or_draft A simple program that prints an Internet Draft (ID) or RFC. Because of the difference between the number of lines on laser printers and line / dot-matrix printers, each "page" of the draft actually takes up 2 pages and you end up with lots of pages with just a one line footer. This script tries to fix that by downloading the draft, converting it to a PDF and then printing it.

  • Rewrite IETF ID URLs to Tools or Datatracker Google Chrome extension that rewrites I-D URLs that point to www.ietf.org to point to datatracker.ietf.org or tools.ietf.org.

  • RFC-what-I-mean Checks a list of RFCs to find the most recent list and their dependents. It needs to run with a copy of rfc-index.txt as input.

  • rfc-mode A plugin Emacs major mode that provides support for reading RFCs.