← All projects
Markup conversion

Markup++

A native markup converter for Markdown, AsciiDoc and reStructuredText, available from the CLI and embedded in Nift.

Visit Markup++ ↗
What it is

One focused converter for the authoring formats people actually use.

Markup++ converts Markdown, AsciiDoc and reStructuredText to web-ready output through one native tool. The point is not to invent another markup language; it is to let projects choose the authoring format that fits the content while keeping the conversion engine small and reusable.

Compatibility is tested against the ecosystems users expect—CommonMark-oriented evidence for Markdown, Asciidoctor-oriented evidence for AsciiDoc and docutils-oriented evidence for reStructuredText—so support is grounded in actual behaviour rather than a few hand-written examples.

The same implementation is useful both as a standalone CLI and embedded in another application. Nift uses that property directly: template processing can happen first, then Markup++ converts the authored content.

What you get

Useful capability without mandatory complexity.

The project stays focused on its own job; the surrounding Gantry tools remain optional.

Markdown

Use a CommonMark-oriented conversion path for conventional Markdown content.

AsciiDoc

Support a richer authoring format without requiring the whole site to be built by Asciidoctor.

reStructuredText

Bring RST-authored content into the same native conversion interface.

Embedding

Use the converter as part of Nift or another native host instead of shelling out to three unrelated tools.

Typical workflow

Start with the shortest path.

Advanced deployment or integration features appear only when the workflow actually needs them.

  1. 01

    Choose the source markup format that suits the document.

  2. 02

    Run Markup++ directly when conversion is the whole job, or invoke it through Nift when the content belongs to a site template.

  3. 03

    Treat the generated HTML as ordinary output that can be styled, minified or deployed like any other web asset.

Inside Gantry

Connections that remove real hand-off friction.

Each product already owns one side of these workflows. The integration exists to remove duplicate navigation, setup or context.

Works with

Nift

This is a direct integration rather than a conceptual pairing. Nift’s markup directive can process template content and then invoke Markup++ for Markdown, AsciiDoc or reStructuredText, giving content-heavy sites one build command and one dependency graph.

Explore Nift →
Works with

Minify++

Markup++ produces human-readable web output; Minify++ can be a later release-stage optimization when compact output matters.

Explore Minify++ →
Works with

Jsonic++

Markup++ handles authored prose while Jsonic++ handles structured data. A documentation or content pipeline can use both kinds of input without conflating their responsibilities.

Explore Jsonic++ →
Access

Local tool, no my.* indirection.

Markup++ is primarily a CLI or embeddable native tool rather than a persistent web service. A my.* instance registry would add a choice where there is no running instance to choose.

It still belongs to Gantry Tools, appears in the project directory and can be exposed from a configurable my.gantry.cv launcher if somebody wants quick access to its website or documentation.

Why my.* is reserved for running applications →
Good fit

Where Markup++ earns its place.

Documentation sites

Let authors write in the format they prefer while Nift controls the shared site shell.

Standalone conversion

Convert a document without adopting a site generator.

Native applications

Embed document conversion into another C++ program through one consistent interface.

Project website

Explore Markup++.

Project-specific installation, commands and release details live on the project site.

Open Markup++ ↗