背景
ブログシステム構築などでコードのシンタックスハイライトをしたいときに方法はいくつかありますが,ここではQiitaで試したいくつかの手段の比較をしてみます.
候補
Gist添付
概要
コード部分をGistに投稿し,読み込むときにサイトでgistのembed jsを展開する.
pros
- お手軽
cons
- コードを検索できない
- コードごとにGistを読みにいくため重い
どちらも工夫すれば一応解決可能ではあるけれど,素直じゃない
JavaScriptのハイライトライブラリ
概要
- syntaxhighlighter
-
SHJS - Syntax Highlighting in JavaScript
など.
コード部分を特定のタグで囲み,JSファイルを読み込むとハイライトされる.
pros
- とにかくお手軽
cons
- 処理が重い
- Qiitaのように1ページに多数のコードブロックが存在する場合,ハイライトにかかる時間が少し気になる
- リロードごとに毎回ハイライト処理が走ることになる
pygments
概要
Pythonで書かれたシンタックスハイライタ.pygmentizeコマンドで実行できる.
rubyライブラリがあり(albino, pygments.rb),GitHubでも使われている.
pros
- 対応言語が多い
- 言語の自動判定機能
cons
- セットアップが面倒
- pythonのインストールが必要…
結論
pythonのインストールが必要ですが,Qiitaではpygmentsを採用しました.今のところは不便に感じることはないです.
とにかく簡単にハイライトしたいということならJSライブラリが良いと思います.