PopClipの拡張機能をカスタマイズしてみよう!PopClipの拡張機能「HTML Encode」でダブルクオーテションを変換しないようにする

  1. 公開日:2016/08/15
  2. 更新日:
  3. Mac
  4. 0
0
SHARES
B!

WordPressのテーマ開発、ブログの執筆作業を効率化する方法のまとめ – OTTAN.XYZでもご紹介している「PopClip」ですが、拡張機能を使用する事で、様々な用途に用いる事のできる、一回使うと離れられない便利ツールです。

https://ottan.xyz/efficiency-blog-736/

上記記事でもご紹介している通り、弊サイトでもWordPressの投稿記事内での<pre>タグ内に記述する文字列をHTMLエンティティに変換する際に使用しているのですが、一点問題がありました。それは、デフォルトで「ダブルクオテーション」もエスケープしてしまうこと。「ダブルクオテーション」は、HTMLの属性内では&quot;に変換する必要があるのですが、それ以外の平文においては特に変換する必要がありません。

また、「ダブルクオテーション」をHTMLエンティティに変換することにより、不必要な問題を抱えることにもなりかねません。例えば、Broken Link Checker — WordPress Pluginsで、URLのリンクチェックを行っている場合に、<pre>タグの中身もチェックするようにしているのですが、href属性の値の前後に付ける「ダブルクオーテション」までHTMLエンティティに変換されてしまい、URLに&が付与されていると勘違いされてしまうことがありました。

そこで、今回はこの拡張機能「HTML Encode」を少しだけ改修し、ダブルクオテーションは変換の対象に含めないようにしたいと思います。

PopClip
PopClip
Developer: デベロッパ:Pilotmoon Software
Price: ¥1,200

「HTML Encode」でダブルクオーテションを変換しない

「HTML Encode」をダウンロードし、インストールする前に、少し細工します。

拡張機能「HTML Encode」のダウンロード

拡張機能は以下のURLからダウンロード可能です。「HTML Encode」をダウンロードしてください。

https://pilotmoon.com/popclip/extensions/

拡張機能「HTML Encode」の修正

ダウンロードした拡張機能の拡張子は「popclipextz」ですが、拡張子を「zip」に変更します。

拡張子を「zip」に変更したら、解凍します。

拡張子が「popclipext」のファイルが解凍されます。

右クリックして、「パッケージの内容を表示」をクリックします。

拡張機能に含まれるリソースの一覧が表示されます。ファイルの内容を以下の通り修正します。

htmldecode.php

<?php
mb_internal_encoding("UTF-8");
$input=getenv('POPCLIP_TEXT');
echo html_entity_decode($input, ENT_COMPAT | ENT_HTML401, 'UTF-8');
?>

ENT_COMPATENT_NOQUOTESに変更します。

<?php
mb_internal_encoding("UTF-8");
$input=getenv('POPCLIP_TEXT');
echo html_entity_decode($input, ENT_NOQUOTES | ENT_HTML401, 'UTF-8');
?>

htmlencode.php

<?php
mb_internal_encoding("UTF-8");
$input=getenv('POPCLIP_TEXT');
echo htmlentities($input, ENT_COMPAT | ENT_HTML401, 'UTF-8');
?>

ENT_COMPATENT_NOQUOTESに変更します。

<?php
mb_internal_encoding("UTF-8");
$input=getenv('POPCLIP_TEXT');
echo htmlentities($input, ENT_NOQUOTES | ENT_HTML401, 'UTF-8');
?>
Config.plist
	<key>Extension Identifier</key>
	<string>com.pilotmoon.popclip.extension.htmlencode</string>

com.pilotmoonを任意の文字列に変更します。com.exampleなどでも良いです。com.pilotmoonは、PopClipの公式サイトで署名された拡張機能にのみ付与することができます。改修した場合は、署名された内容とハッシュ値が異なるため同一のIdentifier(識別子)を使用する事は出来ません。

	<key>Extension Identifier</key>
	<string>xyz.ottan.popclip.extension.htmlencode</string>

拡張機能「HTML Encode」のインストール

Finderで一つ前の画面に戻ります。拡張子が「popclipext」のファイルをダブルクリックします。

署名されていない旨の警告ダイアログが表示されます。「インストール」をクリックしてください。以上で、インストールは完了です。

まとめ

PopClipの拡張機能の作り方については、別途またまとめたいと思いますが、雰囲気だけでも伝わったのではないでしょうか。いろいろカスタマイズしてみてくださいね。

この記事が気に入ったらいいねしよう!
こちらの記事も読まれています
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
Top