Markup languages: contemplated, categorized, and criticized
04-06, 11:00–11:25 (Europe/Vienna), HS i2
Language: English

As part of my FOSS project in digital typesetting, I am interested in the depths of markup languages. How did markup languages emerge? How powerful and extensible shall they be? In this talk, I want to summarize my findings.


Markup languages like Markdown & MediaWiki are prevalent for software developers to specify formatted content. One might wonder whether all problems are solved because most software developer resort to “Markdown” when user-provided texts are written these days. But are they? At least once you discover the differences between Markdown dialects, you wonder whether Markdown is really a good choice.

In my investigations, I started with the simple question how to build a simple markup language parser. It turns out the simplicity in the parser is orthogonal to user friendliness. Simultaneously, I recognized how escaping mechanisms can - indeed - be designed simple and memorable. And they are too often forgotten. When I continued with the parsing topic, I recognized that markup languages do not at all serve the same purpose and need to be categorized. But this seems nontrivial. What is a “lightweight” markup language? What is a “document” markup language? And how can the simplicity of syntax be measured? What makes “XML” extensible? And what limits the adoption of markup languages besides Markdown?

In this talk, I want to revisit how SGML turned into XML, remember the good old bbcodes of board software from the 2000s, how Wiki syntaxes were popularized and vanished, and Github made Markdown a big player. Afterwards I will present my findings and propose how to solve related questions.

See also: slides (520.4 KB)

My passion is digital typesetting. Therefore I study Unicode, markup languages, the specifications of output formats like PDF, EPUB, and manpages as well as typesetting algorithms like line breaking and hyphenation. And I implement the associated algorithms in rust.

Besides that I am an Aikidoka, Esperantist, Go & python programmer.