URLリンクのアンカー文字列をURLデコードする_ex_anchor_decodeプラグイン
- 投稿者: typer
- カテゴリ: 新規
- 優先度: 低
- 状態: 提案
- 日時: 2006年06月03日 00時43分07秒
内容
fswikiでURLを書くと自動的にリンクが生成されますが、この時、アンカー文字列はURLがそのまま使われます。しかし、URLにURLエンコードされた文字が含まれいる場合は無用に長く、見栄えの良いものではありません。
そこで、URLエンコードされた文字が含まれている場合は、アンカー文字列として、それをデコードしたものを使用するように変更します。
例えば
を
の様にします。
インストール方法
_ex_anchor_decode.zip(600)をダウンロード後、展開してできた _ex_anchor_decode をpluginディレクトリに入れてください。
またはInstall.pm(552)(アーカイブにあるファイルと同一です)を plugin/_ex_anchor_decode に保存してください。
その後、環境設定にログインして、プラグイン設定で有効にすればOKです。
処理概要
ここでは、このプラグインが行なっている内部動作の解説です。興味のない方は読み飛ばしていただいて差し支えありません。
このプラグインはHTMLパーサである Wiki::HTMLParser の url_anchor を変更して実現しています。このメソッドは引数としてURLのみを受け取った場合にURLをそのままアンカー文字列としますが、この部分を変更します。具体的には、
- URLデコードを行なう
- その結果、元のURLと同じでない(デコードされた部分がある)場合は、Jcodeを用いてEUCに変換する
- それをアンカー文字列として、その後はオリジナルの url_anchor へ処理を引渡す
といった事を行なっています。
Wiki::HTMLParser::url_anchorは単にオーバーライドしているわけではなく、まず、元のメソッドを plugin::_ex_anchor_decode::Install::url_anchor に保存したあと無名関数で置き換え、その無名関数で元のメソッド(関数)を呼び出して処理を引き継いでいます。これにより、実質的な処理コードの変更を最小限に押えています。
ライセンス
GPLとします。
最終更新時間:2006年06月03日 00時52分39秒