I Prefer RST to Markdown (2024)
Power vs. simplicity and use cases
- Many see reStructuredText (reST) as clearly more powerful: built-in ToCs, indices, cross‑refs, glossary, requirements tooling (e.g. Sphinx‑Needs), automatic link fixing on reorg, multi‑format output (HTML, PDF, EPUB). Favored for books, large doc sets, and complex technical docs (e.g. MAME docs).
- Others argue Markdown is “powerful enough” for large, non‑trivial systems and is widely used in production docs. Most real‑world setups add site‑specific extensions or shortcodes, but 90%+ of content is still plain Markdown.
- Some say Markdown is ideal for quick notes, READMEs, comments, and short pages; reST (or LaTeX/DocBook) is better once documents get long or structurally complex.
Syntax ergonomics and aesthetics
- reST syntax (directives with
.., required indentation, odd link forms, underline headers, complex tables,::literal rules) is often described as ugly, over‑clever, or “groffy”. - Defenders say it’s consistent once you accept directives as a general mechanism, and that “ugliness” is a valid reason not to use a tool if it causes friction.
- Markdown is praised as easy to remember, close to plain text, and ubiquitous in tools (GitHub, editors, chat). This familiarity is a major practical advantage.
Specification, parsing, and extensions
- Markdown’s original underspecification led to many incompatible parsers and weird edge cases (HTML blocks, nesting, underscores/asterisks). Some say these almost never matter; others report frequent silent formatting or content loss.
- reST has one canonical Python implementation: this gives consistent behavior but ties you to a single language stack.
- Some argue Markdown being hard to extend is beneficial: it stays minimal and avoids fragmentation, encouraging people to keep docs simple.
Internationalization and language model
- reST’s word‑boundary and whitespace assumptions make inline markup awkward in languages without reliable space-separated words (Korean, Japanese, Chinese, scriptio continua in general). Workarounds exist but are clumsy.
- Markdown handles such languages better but still has quirks around emphasis delimiters.
Tooling and alternatives
- Tooling strongly favors Markdown; reST has decent Sphinx support but weak WYSIWYG/editor ecosystem; some reST extensions lag maintenance.
- AsciiDoc is widely seen as a “best of both worlds” syntax but hampered by tooling and adoption.
- Other contenders mentioned: Org mode (great but niche), Djot (Markdown-like but more regular, still immature), Typst (nice for typesetting, not yet mainstream), MyST (Sphinx directives with Markdown), and simply writing HTML directly.