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

BBS-サポート掲示板/222

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

 URLの自動リンク - ぜ (2004年05月05日 16時51分31秒)

はじめて投稿します。http://fswiki.poi.jp/wiki.cgi?page=%a5%b5%a5%dd%a1%bc%a5%c8%b7%c7%bc%a8%c8%c4 (※1)のような、wiki 系の長いURLをそのまま貼付けるとき、

  • ページからはみ出さない程度に URL を短くしたい
  • %... の部分が日本語で表示できたらわかりやすい

と思っています。可能でしたら、下のようなロジックを検討していただけないでしょうか?

Wiki::HTMLParser.pm で

sub url_anchor {
	my $self = shift;
	my $url  = shift;
	my $name = shift;
	
	if($name eq ""){
-		$name = $url;
+		$name = &Util::escapeHTML( jcode( &Util::url_decode( $url ) )->euc );
+		my $len = length($name);
+		if( $len > $url_max_length ){
+		  $name = substr( $name, 0, $url_max_length-15 ) . "..." . substr($name, $len-10, $len);
+		}
	}

定数 $url_max_length には 60~80 の適当な数字を設定しておけばいいと思います。

※1のURLの場合は、

<a href ="http://fswiki.poi.jp/wiki.cgi?page=%a5%b5%a5%dd%a1%bc%a5%c8%b7%c7%bc%a8%c8%c4">http://fswiki.poi.jp/wiki.cgi?page=サポート掲示板</ a>

のようなコードに整形されて、次のような表示になると思います。


  • URL に日本語は使用できないので、この表示内容はURLとして間違いです。ブラウザによってはつーか大半のブラウザではウマくURLエンコードしてくれるので意図したページへリンクしますけど。面倒でも、日本語 wiki ページ名へのリンクは、別名の表記方法を使って短くすべきではしょうか。 - gyo (2004年05月06日 00時02分39秒)
  • 折角のパッチですけど、採用すべきではないと思います。文字コードによっては意図しないリンク先になったりしますし。FSwiki に限れば EUC-JP に統一されてるので問題になりにくいですけどね。 - gyo (2004年05月06日 00時13分16秒)
  • ご意見ありがとうございます。この案では、実際のブラウジングに使われるURL(<a href ="..." の中身)は改変していないので、gyo さんの懸念されるようなことは生じないと思います。 - ぜ (2004年05月06日 03時23分28秒)
  • 例えば、WikipediaではUTF8で日本語(やその他の言語)がエンコードされています。このように、リンク先の%...の部分が何でエンコードされているかは、URLだけでは判定できないはずです。従って、こういうページに短い表示でリンクを張るためには、InterWikiなり別名リンクなりを使わざるを得ないのではないかと。 - BJM(と) (2004年05月06日 05時11分57秒)
  • ご意見ありがとうございます。もちろん、リンク先の%...の部分が何でエンコードされているかは URL からはわかりませんし、文字コードは Jcode の自動判定に任せてしまっています。(文字列が短い場合は誤判定もあるかもしれません) - ぜ (2004年05月06日 08時04分49秒)
  • もちろん、記入者がInterWikiや別名リンクを理解している場合は、そちらを積極活用すれば良いと思います。この仕組みは、InterWiki/別名リンクを知らない初心者や編集の手間を惜しむ中級者が、「ブラウザのアドレスバーに出ている URL を直接貼付けたとき」に役立つと考えています。 - ぜ (2004年05月06日 08時16分32秒)
  • 対初心者ということですので。URLとして間違っている表記を見せて慣れさせてしまい変な概念を植え込んでしまうよりは、敢えてそのままにしておいて別名表記を覚えるモチベーションにさせるほうがよほど正しいスタンスだと思うんですが。しつこいですがブラウザのアドレスバーに出ているのが正しいURLです。 - gyo (2004年05月07日 11時09分48秒)
  • めんどくさがり中級ユーザーの立場から一言。たとえば『http://fswiki.poi.jp/wiki.cgi (サポート掲示板)』というのような表示(サイトのURL+ページ名)をするなら、誤解は与えにくいですかね? - 名無しさん (2004年05月07日 13時13分00秒)
  • 文字列部分をMD5あたりでエンコードしたらいかがでしょうか?衝突する可能性は天文学的数字だと思います。 - 名無しさん (2004年06月16日 15時25分29秒)
お名前: コメント:

最終更新時間:2010年01月07日 07時58分18秒