Markup languages ๐
A markup language is a system for annotating a document in a way that is visually distinguishable from the content. It is used only to format the text, so that when the document is processed for display, the markup language does not appear.
The idea and terminology evolved from the โmarking upโ of paper manuscripts, which is traditionally written with a red pen or blue pencil on authorsโ manuscripts. This typically includes both content corrections (such as spelling, punctuation, or movement of content), and also typographic instructions.
In digital media, this โblue pencil instruction textโ was replaced by tags which ideally indicate what the parts of the document are, rather than details of how they might be shown. This lets authors avoid formatting every instance of the same kind of thing redundantly (and possibly inconsistently).
Examples of instructions are:
- make a heading larger
- emphasize text (italic or bold)
- underline, or strike-through text
- create ordered, or unordered lists
- add inline links
- display inline images, or videos
Types
- Presentational markup: used by traditional word-processing systems
- Procedural markup: instructions for programs to process the text. Examples include: troff, TeX, LaTeX, and PostScript.
- Descriptive markup: used to label parts of the document for what they are, rather than how they should be processed. Examples include: LaTeX, HTML, SVG, XML.
- Lightweight markup languages: small and largely unstandardized markup languages
Lightweight markup languages
The most interesting to me, in historical order:
- reStructuredText โ the oldest readable lightweight markup language. Used primarily in Python for technical documentation.
- AsciiDoc โ old and readable, used for documentation, e-books. Initially written in Python.
- Textile โ used for writing articles, forum posts, documentation, and any other type of written content. Originally written in PHP.
- Org-mode โ file format and Emacs mode designed for notes, planning, authoring, and executing code in various programming languages.
- Markdown โ widely used in blogging, instant messaging, online forums, collaborative software, documentation pages, and readme files.
- Creole โ for wikis, to simplify the transfer of content between different wiki engines.
- GitHub Flavored Markdown โ Markdown with extra features. Not that lightweight really.
ยต markup languages
http://archieml.org
ArchieML makes it easy to write and edit structured text on deadline that could be rendered in web pages. Tag text as data, without having to type a lot of special characters. Similar with YAML.
http://criticmarkup.com
CriticMarkup, made for authors and editors to track changes to documents in plain text. Highlight insertions, deletions, substitutions and comments.
https://gemini.circumlunar.space/docs/gemtext.gmi
Gemtext is a limited subset of Markdown.
https://github.com/idyll-lang/idyll
Idyll: interactive narratives for the web. Create explorable explanations, write data-driven stories, and add interactivity to blogs.
https://github.com/jgm/djot
A light markup syntax inspired from Commonmark. Itโs more than commonmark, with support for definition lists, footnotes, tables, several new kinds of inline formatting
https://github.com/jotaen/xit
plain-text file format for todos and check lists
https://github.com/markdoc/markdoc
Powerful, flexible, Markdown-based authoring framework
https://github.com/markmap/markmap
Visualize your Markdown as mindmaps
https://github.com/mermaid-js/mermaid
Mermaid: diagramming and charting tool with Markdown-inspired text definitions and a renderer to create and modify complex diagrams, written in Javascript.
https://github.com/nyousefi/Fountain
Fountain is a simple markup syntax that allows screenplays to be written, edited, and shared in plain, human-readable text
https://github.com/terrastruct/d2
D2 is a modern diagram scripting language that turns text to diagrams
https://github.com/typst/typst
Markup-based typesetting system that is designed to be as powerful as LaTeX while being much easier to learn and use.
https://github.com/vhyrro/neorg
Org-mode markup in NeoVIM using LUA
https://pointillistic.com/ren
Ren is a lightweight data-exchange text format. Programming language independent, with familiar conventions.
https://rmarkdown.rstudio.com
R Markdown documents are fully reproducible. Weave together narrative text and code to produce elegantly formatted output. Use multiple languages including R, Python, and SQL.
https://srackham.github.io/rimu/reference.html
Rimu is a readable-text to HTML markup language inspired by AsciiDoc and Markdown.
https://xit.jotaen.net
xit! is a plain-text file format for todos and check lists
Markdown editors
Thereโs a ton of them, this is just a short list:
- http://falcon.star-lord.me
- https://boostnote.io
- https://caret.io
- https://fsnot.es โ macOS and iOS
- https://getupnote.com
- https://github.com/brrd/abricotine โ ๐
- https://github.com/dvcrn/markright โ ๐
- https://github.com/gsantner/markor โ Android only
- https://github.com/Moeditor/Moeditor โ ๐
- https://github.com/n457/Uncolored โ ๐
- https://ia.net/writer โ Mac and Windows only
- https://nota.md โ succesor of Caret
- https://notable.app
- https://standardnotes.com
- https://typora.io
- https://zettlr.com
Awesome
- https://github.com/croqaz/awesome-markup
- https://github.com/bodiam/awesome-asciidoc
- https://github.com/mundimark/awesome-markdown
- https://github.com/BubuAnabelas/awesome-markdown
Links
- https://wikipedia.org/wiki/Comparison_of_documentation_generators
- https://wikipedia.org/wiki/Comparison_of_document-markup_languages
- https://wikipedia.org/wiki/General-purpose_markup_language
- https://wikipedia.org/wiki/Lightweight_markup_language
- https://wikipedia.org/wiki/List_of_document_markup_languages
- https://wikipedia.org/wiki/List_of_markup_languages
- https://wikipedia.org/wiki/Markup_language
- https://wikipedia.org/wiki/Page_description_language