はてなのスタイル改造中

■当日記のスタイルシートを改造中に困った自動生成cite要素

当日記のスタイルシートを触っております。ちょっと困った事態になりました。 手書きで作る blockquote要素において cite属性とtitle属性を記述すると、「はてなダイアリー」では、block要素のcite属性が取り払われ、cite要素が生成され、さらにそこに含まれたa要素が自動生成されるのです。

cite要素が不要の場合や、自力で編集したい場合には、ちょっと邪魔かもしれません。この自動生成をオミット出来るオプションがあるのかどうか探しているのですが、見当たりません。

書籍からの引用で、isbnを blockquote要素の cite属性に設定し title属性も設定すると、 a要素が自動的に作られるわけですが、もちろん、IEでは、この a要素はリンク切れとなります。例えば、href属性で、"urn:isbn:0553803719" となってしまうからです。これには困ってしまいました。ユーザビリティー面で、はてなコミュニティーの強豪さん達は困らないのでしょうか。不思議です。こういう自動生成は手書きの場合には停止できるオプションをもらえないかしら。blockquote要素を自動生成する機能がありますが、そちらだけでやって欲しかったなぁと。

ひとつ例をあげます。


<blockquote cite="urn:isbn:0553803719" 
title="Foundation : Bantam Dell Pub Group&amp;#xA;urn:isbn:0553803719">
<p>Violence is the last refuge of the incompetent.<br>
Hardin, Salvor</p>
</blockquote>

上のように記述すると以下のようにHTMLが生成されます。


<blockquote 
title="Foundation : Bantam Dell Pub Group&#xA;urn:isbn:0553803719">
<p>Violence is the last refuge of the incompetent.<br>
Hardin, Salvor</p>
<cite><a href="urn:isbn:0553803719">
Foundation : Bantam Dell Pub Group&#xA;urn:isbn:0553803719
</a></cite>
</blockquote>

上で、"Group" の直後の表現が微妙ですが、これは本当にそうなっています。正しい実装なのかどうかは私は未調査です。XSS対策の影響なのかなぁ。みなさん、気にならないのでしょうか。メモ帳などでHTML文書を書き下すときと、はてなダイアリー編集画面で記述するときとで、書き方が違ってきています。私は、編集後実際に表示された文書で確認をするように心がけようと思ってはいるのですが、ついつい面倒でして。&#x09;とか書くと、TABになってしまっているとかならスグニわかるのですけれどね。

■urn:isbn:なリンクをオンライン書店へのリンクに変換する!!

さて、cite要素の自動生成で損なわれているユーザビリティーを、とりあえず緊急避難で補完するため調べていたら、すばらしい bookmarklet を見つけました。

北村曉さんのurn:isbn:とJavaScript - 徒書をご覧ください。こちらで紹介されている、urn:isbn:なリンクをオンライン書店へのリンクに変換する実験をWindowsIE6で試しましたが、素晴らしいできばえです。bookmarkletをお気に入りに登録しておき、isbnへの参照があるページで、このbookmarkletで変身させると、色々なオンライン書店の該当書籍のページをたちどころに参照することが出来ます。もしも、私の日記が「はてなダイアリー」ではなかったら、書店別にjavascriptスクリプトを用意しておいて、プルダウンで選択可能な感じにしたいところです。はてなでモジュール化してもらうこともアリなのかもしれません。

北村さんの記事から勝手ながらamazonに特化したブックマークレットを引用させていただきます。(ほかの書店用もありますよ、原典を是非ごらんあれ。)

javascript:isbn2Amazon();function isbn2Amazon() { var links = document.getElementsByTagName('a'); var url = 'http://www.amazon.co.jp/exec/obidos/ASIN/'; for (var i = 0; i < links.length; i++) { var a = links[i].href; if ( a.match(/^urn:isbn:(.+)$/i) ) { a = RegExp.$1; a = a.replace(/-/g,''); a = url + a; } links[i].href = a; } }

ご注意:javascriptの内容を吟味した上で、bookmarklet としてお使いください。内容を理解しないで無条件にお気に入りにする習慣をつけますと、数あるクロスサイトスクリプティング脆弱性の中でも最凶最悪の罠にかかる恐れがあります。上のブックマークレットは大丈夫です、などど『私は』保障しますが、信じないように、お願いします。あなたの為に。

■火星の空は本当に真赤っか(まっかっか)なのか

以前ご紹介させて頂いた、続・火星の写真の色は情報操作されているをお書きになったきちさんのサイトでsf_muniさんのホームページを知りました。Spiritの写真の色いろいろOpportunityの写真の色いろいろのコンテンツは非常に示唆に富んでいます。NASA発表の画像資料を基に無修正のRGBにて火星の空などを再現しようとする試みです。ここにも凄い人がいました。

ちなみにgoogleで"mars color sundial" をキーにgroup検索をしてみますと、海外でも多くの人がNASA発表を疑問に思い論じているようです。

■MS04-004パッチ後のIEでのステータスバーの状況

Kamadaさんの日記2004年2月3日には、「アドレスバーの偽装はできなくなりましたが、ステータスバーに%00以降の文字が表示されないのはやはり仕様なのでしょう。」とあります。私もざっと確認したつもりでしたが見逃していました。難しいのかなぁ。ステータスバーは、やはりきちんとステータスを表示すべきです。

□スタイルはここまでで一服しておいて、HTMLの勉強しなくちゃ

スタイルシートをとりあえず直してみたものの借り物だらけです。あ、これはあそこと同じ、とか思う方、通ですね。「はてな」で用意したるスタイルのテーマがGPLだということですし、ちょっと調べものが増えていく一方ですね。最初は、邪魔な自動生成cite要素をdisplayしない条件も探そうと思ったのですが何か筋悪なような。メジャーブラウザばかり相手にしているとこうなる見本>私の醜態。スタイルはおいておいて、まず取り掛かるべき、はてなダイアリーにおいて自分が編集する部分だけでも正しくHTMLで記述できるかの追求、全然わかっていません。自動で補填されると難しいかも。じゃぁ、逃げ道は?