MARKUP IN. CLEAN HTML OUT.

One small converter.
More than one syntax.

Markup++ is a self-contained C++17 library and CLI for converting Markdown, AsciiDoc and reStructuredText to HTML. Its versioned CommonMark profile and the Asciidoctor-core and Docutils-core output gates (with hash-pinned differences) have all passed the Linux, macOS and Windows release gates.

terminal
curl -fsSL https://markup.cx/install.sh | sh
01

Native and focused

A compact library with no runtime dependencies, a source-vendored CommonMark engine and a thin command-line interface.

02

Built to embed

String-in, string-out conversion behind a narrow API, embedded in Nift as a byte-for-byte synchronized subtree for @markup conversion.

03

Measured formats

CommonMark passes all 652 official examples. The bounded Asciidoctor 2.0.26 and Docutils 0.23 profiles also pass their pushed cross-platform gate, with limitations kept explicit.

04

Safe file behavior

Atomic output, permission preservation, and refusal to overwrite input files or output symlinks.

LIBRARY FIRST

A clean boundary for tools.

Markup++ does not know about project graphs, templates or files. Give it markup and a format; receive HTML or a controlled error.

std::string html, error;
markup::convert(
    markup::Format::Markdown,
    source, html, error
);
Latest release 0.1.0CommonMark 0.31.2 compliantAsciidoctor core 2.0.26 profile passedDocutils 0.23 core profile passed