Skip to content
Margo v0.0.24

Margo

Publish one Markdown source in the format your project needs.

Margo compiles ordinary Markdown into one semantic document, then projects it to HTML, linked sites, PDFs, or experimental decks. Pick the boundary that matches who owns composition and delivery.

Margo mascot preparing a document

One source, several projections

Complete Mermaid source: flowchart LR source[Markdown source] --> check{Check compatibility} check -->|pass| render[Compile and render once] check -->|findings| revise[Revise source] revise --> check render --> html[Standalone HTML] render --> site[Static site] render --> pdf[PDF or deck]Scroll diagram horizontally to inspect all labels.
Mermaid source for One source, several projections
flowchart LR
    source[Markdown source] --> check{Check compatibility}
    check -->|pass| render[Compile and render once]
    check -->|findings| revise[Revise source]
    revise --> check
    render --> html[Standalone HTML]
    render --> site[Static site]
    render --> pdf[PDF or deck]
Flowchart connecting Markdown source, Check compatibility, Compile and render once, Revise source, and 3 more nodes.

Compile once, then choose the projection. The host still owns its frame, metadata, assets, routes, and publication destination.

A quick tour of the outputs

Markdown table
OutputBest forTypical command
HTMLOne browser-ready documentmargo html guide.md --output guide.html
SiteLinked pages with validated routesmargo site ./docs --output-dir ./dist
PDFA paginated documentmargo pdf guide.md --output guide.pdf
DeckExperimental presentation projectionmargo deck talk.md --format html --output talk.html

Run margo serve ./docs --open while editing. It provides loopback preview and live reload; it is not a production server.

Markdown stays expressive

Headings, links, tables, code, images, Mermaid, and optional Goshtoso charts stay in Markdown. This illustrative output mix makes the projection choices visible; the exact-data table keeps every value available without interaction:

Exact pie values
SeriesSectorValueShare
Illustrative output mixHTML4040.0%
Illustrative output mixSite3030.0%
Illustrative output mixPDF2020.0%
Illustrative output mixDeck1010.0%
Illustrative output mix
SeriesCategorySampleValue
HTML40
Site30
PDF20
Deck10

Static SVG remains the default. This example loads the local interactive runtime, and PDF output can still include the exact chart data for print readers. The landing page is an HTML/site projection; margo deck uses static charts in both deck formats and documents that boundary in its chart guide.

Trust boundaries stay visible

Checks report invalid links, images, policy fields, heading structure, and engine requirements with a stable diagnostic and a next action. Raw HTML and iframe embeds require host policy; a document cannot grant itself capabilities. Offline builds keep assets local, while deployment and release remain separate lifecycle actions.

Is Margo a fit?

Good fit

  • Teams keeping Markdown in Git while publishing several projections.
  • Go applications that need a compiler with host-owned navigation and assets.
  • Documentation sites that value deterministic, inspectable output.

Not a fit

  • A hosted CMS, collaborative editor, or production web server.
  • A workflow that needs Margo to download browsers or deploy generated files.
  • A presentation system that requires a stable deck contract today; deck output remains experimental.

Choose your next step