pandoc(1) most probably implements a central generic DOM for markup
conversion vs. a direct conversion between markup languages. The
difference being development requirements of \(\Theta(n)\)
vs. \(\Theta(n^2)\).
For each new markup language \(n\), a parser supporting
\(n-1\) renderers must be written for translating the new language
to all implemented languages. For \(n-1\) parsers a renderer must
be added for translating the implemented languages to the new
language.
Progression for number of nodes and total number of edges / 2:
For each new markup language one parser (markup -> DOM) and one
renderer (DOM -> markup) must be written to fully support translations
between all previously implemented languages and the new language.
Progression for number of nodes and total number of edges / 2: