Le 2015-07-09 à 0:30, Alan Hogan <cont...@alanhogan.com> a écrit : > Furthermore, auto-gen'd headers *will* break when the text of the header is > changed, which can be done for any number of innocuous reasons when we would > like the link to be preserved. (Cool URIs don’t change, right?) > > For that reason, I have always been a fan of the ID specification syntax that > pandoc, PHP Markdown Extra, maruku, kramdown, and a few others support: > > ## This is a header {#a-header} > > which compiles to: > > <h2 id="a-header">This is a header</h2> > > Look at that! Cleaner Markdown *and* cleaner output than inserting your own > <a> tag. And better, more future-proof section IDs than the auto-generated > variety. > > Sadly, I never get to use it, due to the regrettable and totally predictable > fact that so many Markdown converters ignore it. > > Not to pick on showdown, but look at its output: > <h2 id="thisisaheaderaheader">This is a header {#a-header}</h2>
Yeah, this is sad. I'll just point out that PHP Markdown Extra does support automatic generation of headers id as long as you provide it with a proper function to generate the id from the content of the header. For instance, you can configure the parser like this: $parser->header_id_func = function ($text) { return preg_replace('/[^a-z0-9]/', '-', strtolower($text)); }; I'm not providing this function out of the box for a few reasons: 1. any specific algorithm to generate the id to is going to make some people complain about non-compatibility with another implementation, and 2. it's quite hard to come with something that'll work well with non-english text. Just try it with accented characters and non-latin scripts and appreciate the nonsense. http://johnmacfarlane.net/babelmark2/?normalize=1&text=%23+English%0A%0A%23+Français%0A%0A%23+Español%0A%0A%23+čeština%0A%0A%23+Росси́я%0A%0A%23+日本%0A%0A%23+한국%0A%0A%23+العَرَبِيةُ%E2%80%8E%E2%80%8E%0A%0A%23+עברית Honestly, I find the {#a-header} approach better. -- Michel Fortin michel.for...@michelf.ca https://michelf.ca
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Markdown-Discuss mailing list Markdown-Discuss@six.pairlist.net https://pairlist6.pair.net/mailman/listinfo/markdown-discuss