/ / 最新

swk's log - Firefox で長いURLを折り返す

2006-09-16

* Firefox で長いURLを折り返す [tech][logging][firefox][bloglines] 5 users

ソースコードなどを blog などに貼りつけるときにどうするのがよいか,という話がちょっと前に話題になっていたりして,その論点の一つに「横に長すぎる場合」をどう扱うかが挙がっていたりするのだけど,実は似たような問題はほかにもある.連続するASCII 文字列である.

典型的には,長ーい URL 文字列を表示した場合に,枠からはみ出したり,枠自体がびろーんと伸びて見ずらくなったりする.といっても Firefox の場合だけなのだけど.

対策法がこちらによくまとまっている:

ざっくり要約すると,まず Firefox ユーザ側の立場としては,

一方,Firefox を使っているかどうかに関らず,ウェブサイトの運営側の立場としては,

  • 自分のところに来る Firefox ユーザ全員が url_breaker を使ってくれているとは期待できない
  • → 実は Greasemonkey 版の url_breaker は,ウェブページ側に仕込んでもうまくはたらくので,それを利用するとよい

ちょっとややこしいのは,url_breaker には「A要素のみを処理するもの」と「全文を処理するもの」という 2 系統があり,さらに「xpi版 (つまり普通の拡張機能)」と「Greasemonkey版」の 2 系統がある,のだが,それらが直交していない.えーと,こんな感じ?

A要素のみ処理 全文を処理
xpi url_breakerの Ver.0.2.2以降 同左 (オプション設定)
Greasemonkey url_breakerの Ver.0.2.1 url_breaker_plus


というわけで,実はしばらく前からウェブページ側に仕込んでみている. url_breaker_plus の方です.各 HTML ファイルの body 要素の一番最後辺りに,

<script src="/js/url_breaker_plus.user.js" type="text/javascript">
</script>

と入れる. url_breaker_plus.user.js はこちら.オリジナルのままだと開き括弧 {, {, [ の直後でも改行しちゃって(個人的に)気持ち悪いので,正規表現を以下のようにちょっと修正して使っている.

//      var regexp = new RegExp("([!-%'-/:=\\?@\\[-`\\{-~]|&amp;)");
      var regexp = new RegExp("([!-%'\\)-/:=\\?@\\\\-`\\|-~]|&amp;)");

さて,実は長い文字列が横に伸びちゃうのが一番うっとうしいと個人的に思っているのは bloglines なのけど,url_breaker の効果は有ったり無かったりでどうも挙動が謎である.bloglines の記事表示が table レイアウトなのが問題なのかも.

最終更新時間: 2009-01-04 15:31


Shingo W. Kagami - swk(at)kagami.org