RFCdown is an experimental fork of Hoedown, a revived fork of Sundown, which was based on the original code of the Upskirt library by Natacha Porté.
The primary purpose of RFCdown is to support using Markdown to author IETF RFCs. Unlike many of the other efforts in this area, RFCdown uses plain old standard C99 rather than some random scripting language.
-
Fully standards compliant
RFCdownpasses out of the box the official Markdown v1.0.0 and v1.0.3 test suites, and has been extensively tested with additional corner cases to make sure its output is as sane as possible at all times. -
Massive extension support
RFCdownhas optional support for several (unofficial) Markdown extensions, such as non-strict emphasis, fenced code blocks, tables, autolinks, strikethrough and more. -
UTF-8 aware
RFCdownis fully UTF-8 aware, both when parsing the source document and when generating the resulting (X)HTML code. -
Zero-dependency
RFCdownis a zero-dependency library composed of some.cfiles and their headers. No dependencies, no bullshit. Only standard C99 that builds everywhere. -
Additional features
RFCdowncomes with a fully functional implementation of SmartyPants, a separate autolinker, escaping utilities, buffers, and stacks.
Given that the Markdown spec makes no provision for Unicode character handling, RFCdown
takes a conservative approach towards deciding which extended characters trigger Markdown
features:
-
Punctuation characters outside of the U+007F codepoint are not handled as punctuation. They are considered as normal, in-word characters for word-boundary checks.
-
Whitespace characters outside of the U+007F codepoint are not considered as whitespace. They are considered as normal, in-word characters for word-boundary checks.
Just typing make will build RFCdown the rfcdown executable, which is the command-line tool to render Markdown to HTML, RFC 2629 XML, and plain text.