A mark-up-to-doc converter or static document generator is software that generates a document from a markup language text.
A document generation system is a term that excludes websites.
A content publishing system would include both documents and websites.
Markup-to-doc tools:
- Typesetting system
- Document converter
- Static code generator
- Paged-media publishing engine
- Publishing system
Typesetting system
- LaTeX
- Typst
LaTeX
LaTeX uses the TeX typesetting programming language plus LaTeX macros.
You can read this post about LaTeX.
Typst
Typst is a modernized version of LaTeX.
It uses its own markdown-based typesetting language.
Document converter
Markup-to-doc converters featured on this post:
- Pandoc
- Asciidoctor
Markup language converters may be used to write a document once and then export to different formats.
Pandoc
Pandoc converts from different file formats (for example, it converts from LaTeX to EPUB, that is XHTML-based.
It is FOSS.
The document conversion functionality of Quarto publishing system is built on top of Pandoc.
Asciidoctor
Asciidoctor converts AsciiDoc source into HTML, DocBook and other formats.
Static site generator
A static code generator (SSG) generates a multi-page website.
You can read this post about SSG.
Paged-media publishing engine
- mdBook
- HonKit
- PrinceXML
- WeasyPrint
- Pages.js
- Antenna House Formatter
mdBook
mdBook uses Markdown to create books.
It’s more lightweight than Quarto.
It was originally created for the book “The Rust Programming Language”.
It is used mainly on Software Engineering and DevOps.
HonKit
Honkit creates books from Markdown.
It is a community-driven fork of GitBook, before it became SaaS.
It is mostly used for legacy GitBook environments.
PrinceXML
Prince or PrinceXML uses HTML as the markup language and CSS for document layout.
It is proprietary software.
WeasyPrint
WeasyPrint uses HTML as markup language and CSS Paged Media for document layout.
It is FOSS.
It is a standalone solution.
It is written in Python.
Paged.js
Paged.js uses HTML as markup language and CSS Paged Media for document layout.
It is FOSS under a MIT license.
Depends on the web browser; it works via browser print.
It is written in JavaScript.
Antenna House Formatter
Antenna House Formatter uses XML as markup language and XSL-FO for document format.
Publishing system
A publish system may include authoring, processing and distribution, so they are more than just SSG.
- Scientific and computational publishing
- Jupyter Book
- Quarto
- R Markdown
- Flowershow
Jupyter Book
Jupyter allows to create a book from a Jupyter Notebook (.ipynb) file.
Quarto
Quarto is a FOSS scientific and technical publishing system. It uses Quarto Markdown, that is a variant of the Pandoc Markdown markup language. It uses YAML for metadata.
Quarto is built on top of Pandoc for document conversion.
It allows code execution.
It would cover from authoring to conversion.
It is used mainly on Data Science, Academia, and Research.
R Markdown
Flowershow
Flowershow can be considered a digital garden publishing system.
It is based on Hugo.