((p (a (@ (href . "https://commonmark.org/") (rel . "external")) "CommonMark") " is a Markdown dialect, an " (a (@ (href . "https://xkcd.com/927/") (rel . "external")) "attempt") " to unify all the different, divergent dialects of Markdown by providing an unambiguous syntax specification for Markdown, together with a suite of comprehensive tests to validate implementation.") (p "Time will show, if this attempt is successful.") (p "However, CommonMark is a well specified Markdown dialect, in contrast to most (if not all) other dialects." " " "Other software adopts CommonMark somehow, notably " (a (@ (href . "https://github.github.com/gfm/") (rel . "external")) "GitHub Flavored Markdown") " (GFM)." " " "But they provide proprietary extensions, which makes it harder to change to another CommonMark implementation if needed." " " "Plus, they sometimes build on an older specification of CommonMark.") (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 when they are available.") (p "To provide CommonMark support, Zettelstore uses currently the " (a (@ (href . "https://github.com/yuin/goldmark") (rel . "external")) "Goldmark") " implementation, which passes all validation tests of CommonMark." " " "Effectively, Markdown and CommonMark are super-sets of HTML." " " "Internally, CommonMark is translated into " (a (@ (href . "00001007000000")) "Zettelmarkup") "." " " "Since Zettelmarkup supports HTML content only at the block level via " (a (@ (href . "00001007031200")) "Inline Zettel") ", most uses of HTML within a CommonMark zettel are not translated as expected." " " "Instead, inline level HTML is translated into " (a (@ (href . "00001007040200#literal-text")) "literal text") " with a " (a (@ (href . "00001007050000")) "generic attribute") " set to " (code "html") ".") (p "Therefore, Zettelstore itself will not pass the CommonMark test suite fully." " " "However, no CommonMark language element except inline HTML will fail to be encoded as HTML." " " "In most cases, the differences are not visible for a user, but only by comparing the generated HTML code."))