SyntaxHighlighterでPHPコード中のemptyが2重に出力されるのを修正
SyntaxHighligher 1.5.1ではPHPコード中の"empty"という文字列が2重に出力されてしまう.これはshBrushPhp.jsで"empty"という文字列がkeywordとfunctionの両方として定義されているためである.(参考: Google Code: php brush bug – empty() defined twice)
修正するにはshBrushPhp.js中に二つある"empty"という文字列のどちらかを削除すればよい.前の方の"empty"はfunctionとして定義,後の方の"empty"はkeywordとして定義しているので必要なほうを残す.
SyntaxHighlighter for Windows Live Writer 1.0.0を使っている場合,Windows Live Writerでの"Web レイアウト"表示や"Web プレビュー"表示でもこの問題が起きる.SyntaxHighlighter for Windows Live WriterではshBrushPhp.jsをdll中にリソースとして格納しているので,これを修正すればよい.
自分で修正するのが面倒な人のために,keywordとしての定義を消し,functionとしての定義だけを残したshBrushPhp.jsとSyntaxHighlighter.dllをダウンロードできるようにしておく.shBrushPhp.jsはBlogを公開しているWebサーバ上のものに上書きコピー,SyntaxHighlighter.dllは例えばWindows XPならば"C:\Documents and Settings\<YourAccount>\Local Settings\Application Data\SyntaxHighlighter"にあるのでそこに上書きコピーすればよい.