txqz memo

ソースコードの色づけ

はてなのシンタックスハイライト記法がいい感じなので、これと似たようなのをtxqzで実装しようといろいろ模索した。はてなのこの機能はGeoff Richards / Text::VimColorを使っているのだろうけれども、これと同じようなのをPHPから利用できないか。

はてなQ経由でdp.SyntaxHighlighterGeSHi、あと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をこのサイト向けに改造することで対処しました。