Blog

[WP] Crayon Syntax Highlighterでダブルクォートがデコードされないのを修正する

Crayon Syntax Highlighter プラグインでなぜか " がデコードされないので調べてみました。このエントリで対象にしたバージョンは 1.10 です。


Crayon


何が起こっているのか

Crayon Syntax Highlighter の タグエディタから入力した場合は、ダブルクォートを入力しても " にエンコードされずに、そのまま " として入力されます。 しかし、HTML コード中にダブルクォートやシングルクォートを書くのが何となく違和感があるので、" と書きたいのです。

MarsEdit でいつものように " と書いても展開されないのは、個人的にはちょっと困った仕様です

サポートでも同じような質問をされていますがクローズされていません
There’s a problem with the handling of the ” HTML entity. Either you choose to expand it in HTML attributes or not, this entity is displayed as such on posts (not expanded as “, as expected).



私と同じように " と書いてもダブルクォートにデコードされていません。

ソースを追いかけてみる

サポートに質問している彼も Quick Hack をしているので、私も Plugin のソースをトレースしてみました


DECODE を true に指定していると CrayonUtil::html_entity_decode を呼んでいるようです。CrayonUtil::html_entity_decode は PHP の標準関数である html_entity_decode を ENT_NOQUOTES というフラグで呼んでいるのでダブルクォートもシングルクォートも変換されないんですね。


意図的にこのような仕様にしている気もするのですが、HTML 中にダブルクォートやシングルクォートを直接書くことはないはずなので、思い切って書き換えてしまいました。


これで何とか思い通りの動きをしてくれるようになりました。
ただ、ソースを全て見きっている訳ではないので、同じ修正をする場合は、自己責任でお願いします。

WordPress 関連のエントリ


インストールや設定変更とデータ移行




プラグイン




バージョンアップ




カスタマイズ





Stinger 3関連





チューニング





MAMPを使ったバックアップサイトの構築





開発関連







最後まで読んでいただきありがとうございます。

follow us in feedly 左のアイコンをクリックして、このブログを Feedly に登録していただけると嬉しいです


Facebook ページでも情報を発信していますのでよろしかったら「いいね!」をお願いします

RSSリーダへの登録は こちら からどうぞ。

URL
TBURL

コメントを残す

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

フェイスブックでのコメント

Return Top