ソースコードなどを blog などに貼りつけるときにどうするのがよいか,という話がちょっと前に話題になっていたりして,その論点の一つに「横に長すぎる場合」をどう扱うかが挙がっていたりするのだけど,実は似たような問題はほかにもある.連続するASCII 文字列である.
典型的には,長ーい URL 文字列を表示した場合に,枠からはみ出したり,枠自体がびろーんと伸びて見ずらくなったりする.といっても Firefox の場合だけなのだけど.
対策法がこちらによくまとまっている:
ざっくり要約すると,まず Firefox ユーザ側の立場としては,
一方,Firefox を使っているかどうかに関らず,ウェブサイトの運営側の立場としては,
ちょっとややこしいのは,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("([!-%'-/:=\\?@\\[-`\\{-~]|&)"); var regexp = new RegExp("([!-%'\\)-/:=\\?@\\\\-`\\|-~]|&)");
さて,実は長い文字列が横に伸びちゃうのが一番うっとうしいと個人的に思っているのは bloglines なのけど,url_breaker の効果は有ったり無かったりでどうも挙動が謎である.bloglines の記事表示が table レイアウトなのが問題なのかも.
最終更新時間: 2009-01-04 15:31