I’m opposed to adding a declaration tag to CommonMark documents. While HTML is a suitable format for machines and developers, Markdown was designed as a writing format for human beings who are not necessarily developers. As the Markdown philosophy states, readability is emphasised above all else. “A Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions.”
I’ll address each what I see as the three main arguments in original post in turn:
The harm done is that it adds extra visual noise to the document which is not meaningful to a typical human reader. The overall aesthetic of Markdown is harmed when we add syntax intended solely for machines.
The web service could flag old posts in a database table as the legacy format and render them accordingly. This would reduce the need to add a versioning switch syntax to CommonMark in a lot of cases.
I hope that future versions of CommonMark do not break backward compatibility; any releases after 1.0 should be minor fixes and should degrade gracefully. If the goal of CommonMark is to solve the problem of multiple inconsistent implementations of Markdown then changing the spec would be creating yet another flavour of Markdown.
Extensions might create inconsistencies between documents though. In the case of extensions extra care should be made so that there is a graceful fall back to core CommonMark, preserving the semantic meaning of the extension. I’ll provide two extension examples:
~~strikethrough text~~
with the extension enabled generates the following HTML:
<s>strikethrough text</s>
and without the extension generates:
<p>~~strikethrough text~~</p>
…which still looks like strikethrough; no major harm done. Another example is the proposed definition list syntax:
Species
: Human
which generates:
<dl>
<dt>Species</dt>
<dd>Human</dd>
</dl>
and without the extension generates:
<p>Species: Human</p>
Not a bad fallback either. There will be some extensions that don’t degrade as gracefully. So long as the meaning remains apparent this is an appropriate solution.