はてなのシンタックスハイライト記法がいい感じなので、これと似たようなのをtxqzで実装しようといろいろ模索した。はてなのこの機能はGeoff Richards / Text::VimColorを使っているのだろうけれども、これと同じようなのをPHPから利用できないか。
ではてなQ経由でdp.SyntaxHighlighterとGeSHi、あとPEARのText_Highlighter。
最初のはJavaScriptで変換。よくほかのブログにも使われているライブラリ。でも、ソースコードをpre要素でなくtextarea要素として指定するのはどうもなぁ。なんかなぁ。あと、行番号を明示するためとはいえ、textareaに書いたソースをol-liに変えるのもなぁ。ソースコードって整形済みテキストであって順序つきリストじゃないでしょ? あまりにも宗教的価値観に偏りすぎ?
2番目のはPHPで変換。ほかのライブラリはハイライトをつける箇所を<span class="hl-identifier">みたいにクラス属性つきspan要素としてマークアップしているのだけれども、こいつは<span style="color: #66cc66">みたいにstyle属性つきspan要素としてマークアップする。うーん、その姿勢はどうかなぁ。サイレンとマジョリティを考慮して、これは当然だよね。
PEARのハイライトモジュールもol-liに展開。ぬー
ほしかった機能は、<pre><code class="pre"> とかでマークアップされているソースコードの、適当な部分をclassつきspanに置換してくれるシンプルなもの。でも、それを満たすものは今回見つけられなかった。ていうかVimColor - source code highlightであらかじめ変換してからPOSTすればいいか。
結局google-code-prettify - Google Codeをこのサイト向けに改造することで対処しました。