(zettel (meta (back "00001006000000 00001007031200 00001008000000 00001008010000 00001012053800 00001012920513") (backward "00001006000000 00001007000000 00001007031200 00001008000000 00001008010000 00001012053800 00001012920513") (box-number "1") (created "20220113183435") (forward "00001007000000 00001007050000 00001012920516") (modified "20251117183134") (published "20251117183134") (role "manual") (syntax "zmk") (tags "#manual #markdown #zettelstore") (title "CommonMark") (url "https://commonmark.org/")) (rights 4) (encoding "") (content "[[CommonMark|https://commonmark.org/]] is a Markdown dialect aimed at [[unifying|https://xkcd.com/927/]] the various, often divergent, Markdown dialects by providing an unambiguous syntax specification.\nIt also includes a suite of comprehensive tests to validate implementations.\n\nTime will tell whether this attempt is ultimately successful.\n\nHowever, CommonMark stands out as a well-specified Markdown dialect, unlike most (if not all) other dialects.\nOther software implementations, such as [[GitHub Flavored Markdown|https://github.github.com/gfm/]] (GFM), adopt CommonMark to some extent, but they also provide proprietary extensions.\nThis makes it harder to switch to another CommonMark implementation if needed.\nAdditionally, some implementations are based on older versions of the CommonMark specification.\n\nZettelstore supports the latest CommonMark [[specification version 0.31.2 (2024-01-28)|https://spec.commonmark.org/0.31.2/]].\nIf possible, Zettelstore will adapt to newer versions as they become available.\n\nTo provide CommonMark support, Zettelstore uses currently the [[Goldmark|https://github.com/yuin/goldmark]] implementation, which passes all CommonMark validation tests.\nEffectively, both Markdown and CommonMark can be considered superset languages of HTML.\n\nInternally, CommonMark is translated into [[Sz Encoding|00001012920516]].\nMost aspects of Sz encoding can be represented in [[Zettelmarkup|00001007000000]].\nHowever, Sz encoding supports HTML content only at the block level through [[literal text|00001007040200#literal-text]] with a [[generic attribute|00001007050000]] set to ``html``\nTherefore, most uses of HTML within a CommonMark zettel are not translated as expected.\n\nAs a result, Zettelstore does not fully pass the CommonMark test suite.\nHowever, with the exception of inline HTML, no CommonMark language element fails to be encoded as HTML.\nIn most cases, these differences are not visible to users but can only be identified by comparing the generated HTML output."))