CommonMark manual manual markdown zettelstore zmk 00001006000000 00001007031200 00001008000000 00001008010000 00001012920513 00001006000000 00001007000000 00001007031200 00001008000000 00001008010000 00001012920513 1 (c) 2020-present by Detlef Stern 20220113183435 00001004010000 00001007000000 00001012920500 00001012920510 en EUPL-1.2-or-later 20221018123145 20221018123145 https://commonmark.org/ public CommonMark is a Markdown dialect, an 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. Time will show, if this attempt is successful. However, CommonMark is a well specified Markdown dialect, in contrast to most (if not all) other dialects. Other software adopts CommonMark somehow, notably 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. Zettelstore supports the latest CommonMark specification version 0.30 (2021-06-19). If possible, Zettelstore will adapt to newer versions when they are available. To provide CommonMark support, Zettelstore uses currently the Goldmark implementation, which passes all validation tests of CommonMark. Internally, CommonMark is translated into some kind of super-set of Zettelmarkup, which additionally allows to use HTML code. Effectively, Markdown and CommonMark are itself super-sets of HTML. This Zettelmarkup super-set is later encoded, often into HTML. Because Zettelstore HTML encoding philosophy differs a little bit to that of CommonMark, Zettelstore itself will not pass the CommonMark test suite fully. However, no CommonMark language element will fail to be encoded as HTML. In most cases, the differences are not visible for an user, but only by comparing the generated HTML code. Be aware, depending on the value of the startup configuration key insecure-html, HTML code found within a CommonMark document or within the mentioned kind of super-set of Zettelmarkup will typically be ignored for security-related reasons.