(((meta ((content . "CommonMark") (name . "title"))) (meta ((content . "manual") (name . "role"))) (meta ((content . "#manual #markdown #zettelstore") (name . "tags"))) (meta ((content . "zmk") (name . "syntax"))) (meta ((content . "00001006000000 00001007031200 00001008000000 00001008010000 00001012053800 00001012920513") (name . "back"))) (meta ((content . "00001006000000 00001007000000 00001007031200 00001008000000 00001008010000 00001012053800 00001012920513") (name . "backward"))) (meta ((content . "1") (name . "box-number"))) (meta ((content . "(c) 2020-present by Detlef Stern ") (name . "copyright"))) (meta ((content . "20220113183435") (name . "created"))) (meta ((content . "00001007000000 00001007050000 00001012920516") (name . "forward"))) (meta ((content . "en") (name . "lang"))) (meta ((content . "EUPL-1.2-or-later") (name . "license"))) (meta ((content . "20251117183134") (name . "modified"))) (meta ((content . "20251117183134") (name . "published"))) (meta ((content . "https://commonmark.org/") (name . "url"))) (meta ((content . "public") (name . "visibility")))) (p (a ((href . "https://commonmark.org/") (rel . "external")) "CommonMark") " is a Markdown dialect aimed at " (a ((href . "https://xkcd.com/927/") (rel . "external")) "unifying") " the various, often divergent, Markdown dialects by providing an unambiguous syntax specification." " " "It also includes a suite of comprehensive tests to validate implementations.") (p "Time will tell whether this attempt is ultimately successful.") (p "However, CommonMark stands out as a well-specified Markdown dialect, unlike most (if not all) other dialects." " " "Other software implementations, such as " (a ((href . "https://github.github.com/gfm/") (rel . "external")) "GitHub Flavored Markdown") " (GFM), adopt CommonMark to some extent, but they also provide proprietary extensions." " " "This makes it harder to switch to another CommonMark implementation if needed." " " "Additionally, some implementations are based on older versions of the CommonMark specification.") (p "Zettelstore supports the latest CommonMark " (a ((href . "https://spec.commonmark.org/0.31.2/") (rel . "external")) "specification version 0.31.2 (2024-01-28)") "." " " "If possible, Zettelstore will adapt to newer versions as they become available.") (p "To provide CommonMark support, Zettelstore uses currently the " (a ((href . "https://github.com/yuin/goldmark") (rel . "external")) "Goldmark") " implementation, which passes all CommonMark validation tests." " " "Effectively, both Markdown and CommonMark can be considered superset languages of HTML.") (p "Internally, CommonMark is translated into " (a ((href . "00001012920516")) "Sz Encoding") "." " " "Most aspects of Sz encoding can be represented in " (a ((href . "00001007000000")) "Zettelmarkup") "." " " "However, Sz encoding supports HTML content only at the block level through " (a ((href . "00001007040200#literal-text")) "literal text") " with a " (a ((href . "00001007050000")) "generic attribute") " set to " (code "html") " " "Therefore, most uses of HTML within a CommonMark zettel are not translated as expected.") (p "As a result, Zettelstore does not fully pass the CommonMark test suite." " " "However, with the exception of inline HTML, no CommonMark language element fails to be encoded as HTML." " " "In most cases, these differences are not visible to users but can only be identified by comparing the generated HTML output."))