footnote:id, colons and jquery

David Chambers david.chambers.05 at
Wed Jan 23 21:48:03 EST 2013

I sometimes find colons useful. Here's an example:

<li class="c10n-file document ext:pdf">resume.pdf</li>

Using "ext:pdf" rather than "ext-pdf" makes it clearer that this class name
acts as a key–value pair. Sure, I could use `data-extension="pdf"` here
instead, but selector engines are optimized for finding elements by class

In the case of CSS, all that's required is a backslash to escape the colon:

.c10n .c10n-file.document.ext\:pdf {
background-image: url(assets/fugue/document-pdf-text.png);

In my view it's fine to include colons in ids, but I'm not strongly opposed
to the *pragmatism not idealism* stance.


On 23 January 2013 17:12, Michel Fortin <michel.fortin at> wrote:

> Le 23-janv.-2013 à 14:29, Waylan Limberg <waylan at> a écrit :


> > I just received a [bug report] for Python-Markdown complaining that

> > colons are used in the ids of footnotes. For reference, we [output]

> > the same format at PHP Markdown Extra. The general complaint is that

> > the colon in the id attribute (`id="fnref:1"`) causes jquery to choke

> > when referencing that id from javascript because jquery uses colons to

> > indicate pseudo elements (as does CSS). As expected, jquery supports

> > escaping the colon - which eliminates the problem - except that

> > apparently the escaping causes a performance hit.

> >

> > My initial reaction is to say that this is jquery's problem, but what

> > do you think? Should the various implementations that support

> > footnotes all change to not use colons? I couldn't help but note that

> > Gruber's unreleased implementation (what he uses on

> > appears to use dashes instead.

> >

> > Any thoughts?


> Interestingly, I've been looking at updating the output for footnotes in

> PHP Markdown, although not the id attribute.

> <>


> My guess is that Jquery has an optimization for the common pattern

> "#nocolon" and that putting an escape forces it to take the slow path. Take

> his example and add a class name (making the selector "#nocolon.anyclass"),

> or put an ancestor (as in "body #nocolon") and you'll get equal speed

> everywhere.


> --

> Michel Fortin

> michel.fortin at



> _______________________________________________

> Markdown-Discuss mailing list

> Markdown-Discuss at



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Markdown-Discuss mailing list