Revisiting mime-types and file extensions
Thomas Nichols
nichols7 at googlemail.com
Thu Jun 21 06:07:33 EDT 2007
Michel Fortin wrote:
> Le 2007-06-20 à 5:51, Thomas Nichols a écrit :
>
>> Having a mime type of 'text/x-markdown' and a profile URI
>> declared by the author of the language grammar (e.g.
>> "http://maruku.org/0.5") seems an economical solution, and would follow
>> the pattern for [XML namespaces][xml-namespaces], Java JAXP feature
>> URIs[jaxp-features] and [OpenID identifiers][openid]
>
> All these need a unique identifier to work anywhere, ensuring that
> authors will create the unique identifier. Not the case with Markdown:
> anyone can create his own version without creating a corresponding
> unique identifier. If a downstream developer, someone else than the
> original author, needs an identifier and decide to create one, nothing
> ensure others will use the same identifier; and here goes the "unique"
> part of the identifier.
Yup, this is true - so maybe it would be good for the author of any new
Markdown-derivative syntax to specify an identifying URI (as you have
done below)? It most certainly should not be the _document_ authors who
create such URIs, and if it is a downstream _processor_ author, for
example Andrea Censi with Maruku, then he could define a new URI - perhaps
http://maruku.org/syntax#0.5
- and declare that it is a superset of the specs
http://michelf.com/ref/markdown-extra#v1.1
http://daringfireball.net/projects/markdown/syntax#1.0.1
(or whatever Mr Gruber would care to choose as a profile identifier).
>
> Beside, what does the identifier corresponds to anyway? A specific
> implementation? A particular syntax? One version of that
> implementation or that syntax or all of them? I can't really figure
> out right now: how many "unique" identifiers are needed and how are
> each going to be used?
A great reason for having formal language grammars! :-)
In the absence of such grammars, though, we have "the syntax supported
by Markdown.pl 1.01" or "the syntax as specified at
http://web.archive.org/web/20060530023711/http://daringfireball.net/projects/markdown/syntax
(in other words, John Gruber's syntax definition as at 30 May 2006). I'm
guessing that a new URI will typically be issued for a new version of a
spec, introducing features that are not handled (or - gasp - are handled
differently) in earlier versions.
As a CMS developer, when processing a document, I can examine the
mime-type (text/x-markdown) and look for a profile URI. I can then
select an appropriate processor for this profile, or warn the user if it
is not a profile that I recognize. All that is needed to get this to
work is for "downstream developers" of Markdown-derivative processors to
define their own URI and to declare which other profiles are supported.
I'd guess that in order to be considered a Markdown processor at all,
John Gruber's original profile should always be supported.
>
>
>> Any suggested changes to this? Michel, would you care to propose a URI
>> for Markdown Extra, should anyone decide they'd like to use one?
>
> I'm still not sure using URLs for this is worthy, but if someone wants
> a reference URL for Markdown Extra, I'd suggest using this:
>
> http://michelf.com/ref/markdown-extra
>
> I've put a small explanatory document at this address. If you need
> versioning, here is what I suggest:
>
> http://michelf.com/ref/markdown-extra#v1.0
> http://michelf.com/ref/markdown-extra#v1.1
>
> These are the two points at which PHP Markdown Extra changed its
> syntax specification (besides beta versions) to accomodate new features.
Excellent, thank you very much; using fragment identifiers for versions
works for me. Andrea, would you be happy with
http://maruku.org/syntax
http://maruku.org/syntax#0.5
as profiles? And John, as the instigator of this dance, would you care
to suggest a canonical profile URI? Or should it be just
http://daringfireball.net/projects/markdown/syntax
http://daringfireball.net/projects/markdown/syntax#1.0.1
?
As per the XML namespaces spec, we'll be relying upon exact string
matching to identify profiles.
Thanks to all who've worked on this.
Regards,
Thomas.
More information about the Markdown-Discuss
mailing list