TinyMCEとWordPress本体のHTML自動整形機能を強引に潜り抜けるGoogle Syntax Highlighterを作ってみました。
機能(?)としては以下です。
- preタグ内の<を&#60;に変更
- preタグ内の>を&#62;に変更
- preタグ内の<:を&#60;に変更
- preタグ内の>:を&#62;に変更
- preタグ内の[を&#91;に変更
- preタグ内の]を&#93;に変更
- が対で数が一致していればpreタグの入れ子OK
- Google Syntax Highlighter 2.0.287を使用
- jsとcssが多すぎるので一まとめにして最小化
強引に自動整形機能を潜り抜けているため以下の注意点があります。
- エディタのHTMLモードでソースコードを記述したら一旦保存してください。保存する前にビジュアルモードにするとソースコードが崩れます。
- preタグを使用している場合、編集画面に遷移すると必ず「このページから移動します。よろしいですか?」とメッセージが表示されるようになります。(データベースからの読み込み時にも変換をしているため)
- preの入れ子をしている場合、preタグの中のpreタグがついになっていない場合、記事の最後までエンティティ化されます。
一週間以上使い込みをして異常が見当たらないので大丈夫と判断したのですが、念のためDBをバックアップして使ってください。
動作環境
PHP 5.2.6
WordPress 2.7.1
WordPressは最新版でなくても動くと思います。php4は不明です。
1.5.x系と使い方が変わっているので1.5.x系記述をサポートするためレガシーを含めるか悩んだのですが、現在は含めていません。
Google Syntax Highlighter for WordPress HF Edition(名前長いって!)配布ページからダウンロードしてください。