lowdown is a fork of hoedown, although the parser and front-ends have changed significantly.
This is a read-only repository for tracking development of the system. Stable releases are available at the website.
The fork features the following modifications to its predecessor:
- Put all header files into one and clean up source layout.
- Remove all macro cruft (Microsoft checks and builtins).
- Remove all option handling.
- Use err(3).
- Use pledge(2), Mac OS X’s sandbox, or FreeBDS’s capsicum(4), if applicable.
- Add manpage.
- Strip use of externally-defined memory management.
- Rename internal API (for brevity).
- Prune dead code and de-obfuscate some internal structures.
- Create a usable library interface.
- Remove “semantic quote” option, as it has no nroff basis.
- Remove “emphasis as underline” option, as it has no nroff basis and is confusing on the web.
- Have the back-end parser to generate an AST instead of directly rendering.
- Several superfluous mechanisms (pools and stacks) removed.
- Document language syntax in a manpage.
For the moment, lowdown output is the same as hoedown with the following presets:
- XHTML mode
- fenced code
- disabled inline HTML (truly an evil feature of Markdown)
- “smartypants” enabled
Individual features can be enabled and disabled at will.
The following modifications to the HTML5 output have been made:
- “smartypants” emits Unicode codepoints instead of HTML entities to make the output XML-friendly
- emit image dimensions if specified in the link text
The following major feature additions have been added:
- output mode for troff (via either the -ms or -man package)
- extension output mode for GNU troff (-mpdfmark, PSPIC, etc.)
- “smartypants” mode for the troff outputs
- metadata support
- tree output for AST debugging
- “diff” engine for semantic differences between documents
It builds and runs on OpenBSD, Linux (musl and glibc), and Mac OS X.
If you have any comments or patches, please feel free to post them here or notify me by e-mail.
All sources use the ISC license. See the LICENSE.md file for details.