CommonMark
CommonMark is a Markdown dialect aimed at unifying the various, often divergent, Markdown dialects by providing an unambiguous syntax specification. It also includes a suite of comprehensive tests to validate implementations.
Time will tell whether this attempt is ultimately successful.
However, CommonMark stands out as a well-specified Markdown dialect, unlike most (if not all) other dialects. Other software implementations, such as 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.
Zettelstore supports the latest CommonMark specification version 0.31.2 (2024-01-28). If possible, Zettelstore will adapt to newer versions as they become available.
To provide CommonMark support, Zettelstore uses currently the Goldmark implementation, which passes all CommonMark validation tests. Effectively, both Markdown and CommonMark can be considered superset languages of HTML.
Internally, CommonMark is translated into Sz Encoding. Most aspects of Sz encoding can be represented in Zettelmarkup. However, Sz encoding supports HTML content only at the block level through literal text with a generic attribute set to html Therefore, most uses of HTML within a CommonMark zettel are not translated as expected.
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.