Rdiscountからkramdownへmarkdownのparserを変更した

数式を扱うために前回の記事で、markdownをkramdownに変更したのですが、コードのシンタックスハイライトが効かなくなってしまいました。

kramdownのparserをGFMにしてやるとうまくいきました。

_config.yml

1
2
kramdown:
input: GFM

GFMを使わない場合は、プラグインがあるのでそちらでも対応できます。

kramdown-with-pygments

使い方ですが、pluginsディレクトリにkramdown_pygments.rbを置きます。
そして、_config.ymlのmarkdownを以下のように修正します。

1
markdown: KramdownPygments

また、parserにkramdownを使う場合はRdiscountとkramdownでcodeのmarkdownのフォーマットが違うのでgenerate時にエラーがでるかもしれません。

自分は以下のワンライナーで書き換えました。

1
2
find source/_posts -type f -name "*.markdown" | xargs sed -i '' -e 's/\`\`\`/\
~~~/g'

また、URLに自動でリンクを付与してくれる機能がRdiscountにはあったのですが、kramdownでは明示的に指定する必要があります。
Rdiscountのように自動的にリンクを付与するプラグインを作成しました。

使い方はkramdown_easy_link.rbplugins/ディレクトリに置いて、_config.ymlを以下のように修正します。

1
2
3
markdown: kramdown
kramdown:
input: KramdownEasyLink