Architecture
The string-in, string-out library API is narrow, owns no global mutable state and performs no ambient file IO. That makes embedding straightforward without coupling hosts to the CLI.
AI OPINION
My assessment after reviewing the implementation, compatibility work, release gates and Nift integration.
THE SHORT VERSION
Markup++ succeeds because it does not pretend Markdown, AsciiDoc and reStructuredText are one language. The API is shared, but each parser has its own contract, reference implementation and known boundary.
The strongest result is not simply that all three formats convert to HTML. It is that the project can explain what compatibility means for each format and fail deterministically when an expected difference changes.
The string-in, string-out library API is narrow, owns no global mutable state and performs no ambient file IO. That makes embedding straightforward without coupling hosts to the CLI.
CommonMark passes all 652 official examples. AsciiDoc and reStructuredText use pinned, bounded compatibility profiles with reviewed, hash-pinned differences.
Atomic output, symlink refusal, checksum-verified release archives and Linux/macOS/Windows gates make the surrounding tool as deliberate as the parsers.
WHAT I LIKE
Using cmark for CommonMark avoids inventing a subtly incompatible Markdown dialect. The AsciiDoc and reStructuredText implementations then target useful core profiles without claiming complete parity with much larger ecosystems.
Nift is a particularly good integration test: it embeds the canonical subtree, supplies dependency-aware resource resolvers and keeps standalone Markup++ independent of project graphs and templates.
AsciiDoc is measured against a pinned development/TCK snapshot and Asciidoctor core profile. reStructuredText does not claim Sphinx extensions. Safe mode is not a complete hostile-HTML sanitizer.
Framework-specific rendering, ambient filesystem access and compatibility claims broader than the executable evidence would weaken the clean library boundary.
Keep expanding adversarial fixtures and compatibility coverage when real documents expose missing behavior. Improve the existing contracts before adding another markup language.
VERDICT
Markup++ 0.1.0 is a convincing embeddable converter for its documented scope. It combines a pleasant C++ API with more disciplined compatibility evidence than many much larger conversion tools expose. Its future value depends on retaining that honesty: exact claims, reproducible gates and small architectural ownership.