Force Wave Dashタグの投稿
波ダッシュ矯正プラグイン Force Wave Dash 1.0.0 リリース
UTF-8 エンコーディングにまつわる波ダッシュ問題を解決するプラグイン「Force Wave Dash」のバージョン 1.0.0 をリリースします。変更点は以下の通りです。
- 配布サイトを公式プラグインディレクトリーに変更しました。
- カテゴリー、タグ、ブログロールを作成・編集したときに全角チルダを変換するようにしました。
- ブログタイトル、ブログ説明 (スローガン) を表示するときに全角チルダを変換するようにしました。
- mb_ereg_replace() の代わりに preg_replace() を “u” 修飾子付きで使うようにしました。
- MySQL 4.1 以降において、投稿を作成、編集するときの変換で文字化けしないようにしました。
- 全角チルダ以外に、ハイフン系の文字や一部の通貨記号も変換するようにしました。
去年の年末にベータ版を出していましたが、不具合がなさそうなので正式版に移行しました。今回から、wordpress.org の公式プラグインディレクトリーでの配布とします。JSeries の方は、日本語での説明ページとして残しますが、ファイルのダウンロード先は wordpress.org となります。これにより、SourceForge.jp でのダウンロードランキングは落ちることになるでしょう。ただし、このプラグインの影響は軽微でしょうが;-)

Force Wave Dash 1.0.0 ベータ版(その1)
波ダッシュ矯正プラグイン「Force Wave Dash」の次期バージョン 1.0.0 のベータ版その1を配布開始いたします。
- 配布サイトを公式プラグインディレクトリーに変更します。(予定)
- カテゴリー、タグ、ブログロールを作成・編集したときに全角チルダを変換するようにしました。
- ブログタイトル、ブログ説明 (スローガン) を表示するときに全角チルダを変換するようにしました。
- mb_ereg_replace() の代わりに preg_replace を “u” 修飾子付きで使うようにしました。
- MySQL 4.1 以降において、投稿を作成、編集するときの変換で文字化けしないようにしました。
※1.0.0 ベータ版は、ログインユーザーに対して、表示時の全角チルダ→波ダッシュ変換においてWAVE DASH “〜” (U+301C) ではなく WAVY DASH “〰” (U+3030) に置き換えます。これはデバッグ目的のためです。
→正式版をリリースしました。
前バージョン 0.81 から1年10か月ぶりとなります。WordPress 2.7+MySQL 5.1 ではうまく動いてなかったようですが、なかなか手をつけられず、やっとのことで更新することができました。カテゴリーやタグの作成・編集時も波ダッシュを強制することができます。ぜひともお試しください。データベースの中身を一括変換する仕組みも用意したいですね。

Yuriko.Net で使用しているプラグイン
Masayan さんところで「もし今、WordPressのプラグインフォルダに10個のプラグインしか追加できないとしたら、最低限何を入れますか?」というトラックバック企画が行なわれていますので、乗っかってみましょう。当サイトで使用しているプラグインは、一応自己紹介に書いてある通りならば「7つ」(Akismet, WP-Multibyte-Patch 除く) ですが、実はそこから微妙に増えていて12個になってしまいました。
ということで、そこから優先度の低いものを削ると以下の通りでしょうか。
- Edit Comments XT (Wöhrer 氏作)
- 非ログインユーザーがコメント投稿した場合でも、ユーザー自身が一定時間だけ編集可能とする。
- EventCal (自作・未公開)
- サイドバーのイベントカレンダー。日本の祝日対応
- Force Wave Dash (自作)
- Windows 環境で入力した「全角チルダ」を「波ダッシュ」に補正。
- Ktai Entry (自作)
- メール投稿 (モブログ)
- Ktai Style (自作)
- 携帯電話対応。軽量なページを表示・簡易的な管理機構を提供。
- Reject Short Comments (自作)
- スパムコメント/トラックバック対策。短いコメントやトラックバックを拒否。
- Weather Journal (自作)
- 日付の横に自分で入力したお天気を表示。
- WordPress.com Stats (Skelton 氏作)
- WordPress.com のアクセス統計機能を自分のサイトで使えるようにする。
- Ynet Permalink (自作・未公開)
- 以前の Yuriko.Net におけるパーマリンク体系 (/arc/YYYY/mm/ddX) を実現。
旅行記の方では位置情報と地図が必須なので、拙作のKtai Location および Lightweight Google Maps が追加になります。そのかわり、Ynet Permalink は不要になるため、都合10個に収まります。
同じく拙作の JSeries Notifier ですが、自サイトでは常に最新版が入っているので使う必要がありません。また、サイドバーでアーカイブを年ごとに折り畳む処理は、テーマファイルの functions.php で自作関数 (未公開) を書いているため「プラグインの個数」の制約にはひっかかりません スパム軽減プラグインのNonce! Please も、テーマの comments.php や functions.php に押し込めることが可能なので、必須プラグインからは外れます。
WordPress 導入以前の Yuriko.Net の見た目・機能を実現するための自作単機能プラグインが多く、他人さんのプラグインは非常に少ないです。これは、「既存のプラグインに満足できるものが少ない」「他人のコードが信用できない」「自分でプラグインを作るのが楽しい」という理由もあります。2番目の理由は結構深刻で、セキュリティーに無頓着なプラグインが結構あるんですよね……。以前、旅行記では「Plug’n Play Google Map」を使っていましたが、地点数が増えると PHP メモリー不足になることと、XSS 脆弱性があったことで、「人気があるプラグインでも信用ならない」ことが分かってしまいました。作者にセキュリティーホールを報告しても梨のつぶてで、これが「自分でプラグインを書く」きっかけとなり、他人のプラグインを入れるのは慎重になりました。
といっても、Edit Comments XT, WordPress.com Stats については、セキュリティーホールがないことのチェックはサボっていますが
[追記] しまった。旅行記の方では「Change Thumbnail Max Side Length」も必須でした (WordPress コア改造で逃げるか、テーマの functions.php に移設する手もありますが)。そのままだと11個になってしまうので、WordPress.com Stats を外すことにします。

波ダッシュ矯正プラグイン Force Wave Dash 0.81 リリース
4か月ぶりに、波ダッシュ矯正プラグイン「Force Wave Dash」のバージョン 0.81 をリリースします。変更点は以下の通りです。
- ページタイトル、カテゴリー名、タグ名にある全角チルダも波ダッシュに置換するようにしました。ただし、カテゴリー名、タグ名は、表示時のみ処理で、管理画面での入力時は処理されません。このため、データベースには全角チルダのまま保存されます。
- 波ダッシュが2つ連続したときは、いわゆる強波ダッシュ「〰」(U+3030) に置換するようにしました。
今回、波ダッシュ2つ連続していれば「〰」(強波ダッシュ; WAVY DASH; U+3030) にする機能を装備しました。実は Ktai Style でも対応を組み込んであって、ドコモ、WILLCOM、イー・モバイル音声端末の場合、絵文字165番に置換されます。

WordPress 向け波ダッシュ矯正プラグイン Force Wave Dash 0.80 リリース
予告通り、波ダッシュ矯正プラグイン「Force Wave Dash」のバージョン 0.80 をリリースします。プラグインの詳細は配布サイトをご覧ください。変更点は以下の通りです。
- 投稿の抜粋・コメント投稿者・コメント本文にある全角チルダも波ダッシュに置換するようにしました。
- 検索文字列に全角チルダがある場合、波ダッシュに変換して検索するようにしました。
- プラグイン本体を Jedit や TeraPad などのテキストエディタで開いても壊れないように、コードの書き方を工夫しました。
本プラグインはWindows と Macintosh を両用している人には必須と言えるでしょう。ぜひインストールしてみてください。本当は、すべての Windows ユーザーにインストールして頂きたいのですが、Windows しか使ってない人の場合、「全角チルダ」ラブラブでも問題ないわけで、そうも言えないんですよね……。
[追記] 今後のバージョンアップとしては、カテゴリー名、カテゴリーの説明、登録ユーザー名も対象にすること、データベースに残っている全角チルダを一挙に波ダッシュに置換する機能をつけること、波ダッシュ2つ連続していれば「〰」(強波ダッシュ; WAVY DASH; U+3030) にする機能 (これは半分お遊び) を考えています。カテゴリーとユーザー名を対象にすればほぼ完璧でしょう。WAVY DASH は表示できない端末が多そうなので、やめた方がいいかもしれません

今後の開発計画
今後のプラグイン開発計画を書いておきます。Ktai Style はだいたいの機能実装が終わったので、当面はバグ修正やセキュリティー対応のみとし、大きな機能追加は先送りとします。近日中に Force Wave Dash のリリースを予定しています。波ダッシュへの矯正対象をコメントタイトル・コメント本文にも拡大し、ソースの書き方も工夫したものです。バージョン番号は 0.80 を予定していますが、1.00 としてもいいかもしれません。
wp-mta も、バージョン 0.32 (未公開) ができてますが、3か月以上使ってて安定しているので、そのまま公開予定です。
そして、放置気味になっている Lightweight Google Maps の修正も検討しています。同一地点に複数の位置情報がある場合、現状では、マーカーが重なってしまって一番上のものしか使えないのですが、タブを使って1つのウィンドウに複数情報を表示させることを検討しています。また、マーカーを打った順番が分かりにくいので、マーカーの色をアニメーションさせて順番を示すようなことも考えています。
あとは、カレンダーの下にスケジュールを出すプラグイン (非公開プラグイン) の修正もあります。休日に色を付ける機能がバグっている (11月23日の色が付いてない) ので、ヒマをみて修正してみます。WordPress からスケジュールを入れるインターフェースを作って一般公開するかもしれません。

WordPress プラグイン Force Wave Dash 0.73 リリース
WordPress 用プラグイン「Force Wave Dash」のバージョン 0.73 をリリースしました。ダウンロードはリンク先の配布サイトから行えます。
今回は、PHP の内部コードが UTF-8 以外に設定されている場合でも動作するよう改良しています。具体的には mb_regex_encoding('UTF-8');
を実行させるようにしています。
そろそろバージョン 1.00 にしたいのですが、波ダッシュを UTF-8 のマルチバイト文字として記述している点を改良するまでお預けの予定です。現状では、エディターによって文字化けしてプラグインが破壊されやすいために、\x301c のような実体参照で記述したいのですが、どうもうまく動いてくれません……。最悪、現状のままバージョン 1.00 にするかも。

WordPress プラグイン Ktai Location 0.97 と Force Wave Dash 0.72 リリース
WordPress 用プラグイン「Ktai Location」のバージョン 0.97 および「Force Wave Dash」のバージョン 0.72 をリリースしました。ダウンロードはリンク先の配布サイトから行えます。
前者は、携帯電話等の位置情報を WordPress ウェブログに簡単に取り込む機能を追加します。後者は、「波ダッシュ問題」を解決するプラグインです。詳細な説明は配布サイトを参照してください。
今回のバージョンはともに、「Ktai Location は WordPress 2.1.2 でバグる?」「Ktai Location は ME 版だけバグる?」のバグを修正したものです。原因は、プラグインで投稿本文を修正した際、投稿キャッシュを更新していなかったからでした。プラグインが投稿本文を読み取るのは get_post()
関数を使っていますが、内部的に投稿キャッシュを使っています。投稿キャッシュを更新しなかったことで、後で実行されたプラグイン (Force Wave Dash) が古い本文 (==位置情報 URL を消す前) を参照してしまったのでした。
本文をいじってデーターベースに登録するとき、同時に投稿キャッシュもアップデートすることで、問題なく動作するようになりました。

WordPress プラグイン Force Wave Dash
UTF-8 なウェブログにつきまとう「波ダッシュ問題」を解決するプラグインを作ってみました。その名も「Force Wave Dash」です。新規投稿時、記事の編集時、記事を画面に表示するとき、「全角チルダ」を「波ダッシュ」に変換します。ふだん Windows バリバリに使っていて全角チルダに嫌悪感のない人には無縁のプラグインです;-)
仕様上、プラグイン導入前から存在する記事については、いったん編集しないことには全角チルダが残ってしまいます。一括変換する機能をつけるかどうか検討してみます。
ダウンロード
SHA1 digest: 9c6ce62aba50c3ceda120ab8fe1fb99e00d48406
かなり実験的かつ、好みの問題が大きいプラグインなので、当分はこのサイトで配布とします。