もっとコードハイライトしたい。
現状
config.ymlにて、
pygments: true
と書けば、HTML・EPUBのみPygmentsを使ったコードハイライトが行われる。Pygments本体(Python)に加えてPygments gem(RubyGems)のインストールが必要。
LaTeXは未対応(以前試してみたらうまく動かなかった)。
なお、コード内にインライン記法が来た場合は残念なことになるのに注意。(とはいえこれは制限事項にしてしまってもいいかも)
やりたいこと
- LaTeXでlistingsが使えるようにしたい
- LaTeXでPygmentsも使えるようにしたい(けど設定が大変そう? ちゃんと動くかどうかは不明)
- HTMLでもrouge gemくらいは使いたい https://github.com/jneen/rouge
- rougeはPygments互換だけどHTMLのみでLaTeXは対応してないらしい…
- その他HTML/EPUBだと他のhighlightingライブラリを使いたいという話はありそうなので対応できれば対応したい
- JS使うやつとかはどこまで便利なんだろう…
- KindleだとJS系は全部駄目そう
- JS使うやつとかはどこまで便利なんだろう…
実現方法
- config.ymlに
highlight:
属性を持たせて、どれを使うかを指定できるようにするのはどうか - ビルダごとに設定する必要があるので、階層化が必要なのでは?
highlight:
html:
pygments:
style: bw ## or `style: default` or nothing
latex:
listings
別の案:
highlight:
html:
engine: pygments
style: bw ## or `style: default` or nothing
latex:
engine: listings
すでにあるpygments
属性は互換性のため残しておいて、highlight:属性の値がない場合に{highlight: {html: pygments}}
と同様の意味を持つように解釈すれば良さそう