トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/294

ページの作成や編集にはユーザ登録が必要です。

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をそのままアンカー文字列としますが、この部分を変更します。具体的には、

  1. URLデコードを行なう
  2. その結果、元のURLと同じでない(デコードされた部分がある)場合は、Jcodeを用いてEUCに変換する
  3. それをアンカー文字列として、その後はオリジナルの url_anchor へ処理を引渡す

といった事を行なっています。

Wiki::HTMLParser::url_anchorは単にオーバーライドしているわけではなく、まず、元のメソッドを plugin::_ex_anchor_decode::Install::url_anchor に保存したあと無名関数で置き換え、その無名関数で元のメソッド(関数)を呼び出して処理を引き継いでいます。これにより、実質的な処理コードの変更を最小限に押えています。

 ライセンス

GPLとします。

 コメント

お名前: コメント:
Install.pm _ex_anchor_decode.zip

最終更新時間:2006年06月03日 00時52分39秒