Thanks for all the replies!
I will do the following:
* Not implement Github style fenced code blocks for the time being
* Implement support for setting the syntax highlighting language on the
delimiter line of fenced code blocks
* use class 'language-CODELANG' instead of 'lang' attr for highlighting
language (a backwards incompatible change)
-- Thomas
On 2012-08-31 16:17 +0200 Thomas Leitner wrote:
> Hi everybody,
>> there is a [pull request][1] on Github which, among other things,
> wants to add 1) support for Github flavored code style and 2) support
> for setting the highlighting language on the delimiter line of a
> fenced code block.
>> [1]: https://github.com/gettalong/kramdown/pull/15>> I also want to talk 3) about the current way of setting the
> highlighting language.
>>> ad 1) kramdown already has a fenced code block style:
>> ~~~
> some code here
> ~~~
>> Github flavored code blocks use a backtick instead:
>> ```
> some code here
> ```
>> I personally don't think that it is necessary or even good in this
> case to provide another syntax for fenced code blocks. Using the
> backtick currently only works on the Github website itself, as far as
> I know.
>> Also note that the kramdown (and php-markdown-extra and
> python-markdown) fenced code blocks *do* work on Github, too!
>> So, what do you think?
>>> ad 2) Providing the syntax highlighting language on the delimiter line
> is a rather nice idea and not only supported by Github but also by
> other markdown implementations (like python-markdown). It would look
> like this:
>> ~~~~~~ ruby
> class MyRuby
> end
> ~~~~~~~~~~~~
>> I would like to integrate this into kramdown -- does anyone have good
> reasons for not using this syntax?
>>> ad 3) The syntax highlighting language can currently be set by using
> an IAL to specify the attribute `lang`. However, the `lang` attribute
> in HTML elements is generally used for setting the natural language
> of the text inside an element...
>> I'm for removing this collision by following the HTML5 way of
> specifying the highlighting language, which is setting the class
> `language-CODELANG` on the `<code>` element.
>> This would mean that this kramdown document:
>> ~~~
> some code here
> ~~~
> {: .language-ruby .other attr="key"}
>> would be transformed to this HTML output (in case coderay was not
> used):
>> <pre attr="key" class="other"><code class="language-ruby">some
> code here </code></pre>
>> Note that the `language-ruby` class is set on the `<code>` element and
> not on the parent `<pre>` element!
>> This would be a backwards-incompatible change, what do you think?
>>> Best regards,
> Thomas