[jekyll] Markdownのコードブロックをhighlightタグに変換するプラグイン

jekyllでソースコードを掲載するとき、 highlightタグを使用する人が多いと思うんだけど、 {% highlight ruby %}...{% endhighlight %}とか書くのがめんどすぎるので、Markdownのコードブロックをhighlightタグに変換してくれるプラグインを書きました。

ソースコード

md-code-block-highlight.rb

module Jekyll
  module Convertible
    alias :origin_render_liquid :render_liquid
    def render_liquid(content, payload, info)
      content.gsub!(/(?:^|\n)```(\w*)\n(.*?\n)```\n/m) do |text|
        $1.empty? ? text : "\n{% highlight #{$1} %}\n#{$2}{% endhighlight %}"
      end
      origin_render_liquid(content, payload, info)
    end
  end
end

説明

これで

```ruby
puts "Hello, World!"
```

とか書くと内部でhighlightタグに変換してくれますsmile

追記(2013-06-26)

プログラムに一部誤りがあったので修正しました。

blog comments powered by Disqus