引用元表示のやり方

HTMLでまとまった引用文を表記するとき、blockquote要素が用いられます。例えば、http://www.example.com/というURLで「例文」というタイトルのページにある文章を引用するときには次のように書きます。

<blockquote cite="[]http://www.example.com/[]" title="例文">
<p>これが引用された文章です。</p>
</blockquote>

HTMLとしてはこれで引用元表記が完了したことになりますが、はてなダイアリーではこのように書くと親切にもさらに次のように変換してくれます*1(空白や改行は一部変更しています。)。

<blockquote cite="[]http://www.example.com/[]" title="例文">
<p>これが引用された文章です。</p>
<cite><a href="[]http://www.example.com/[]">例文</a></cite>
</blockquote>

つまり、blockquote要素内の末尾にcite要素が付加されるわけです((blockquote要素直下にインライン要素が出てくるのは気持ちが悪いので、p要素で囲んでほしいところですが、これは本題からはやや離れた話です。))。

この機能が追加された経緯については、http://d.hatena.ne.jp/hatenadiary/20030202#p4を参照下さい。

で、この機能に関する話題です。

はてなダイアリーの自動生成では、blockquote要素の中に、私が記述した引用元 URN がcite要素でマークアップされて挿入されてしまいます。これでは、引用元の記述に私が編集した文面がはいっていることになります。これは大変に不都合です。別の言葉で言えば仮に引用元に既に cite要素が存在していた場合、引用元筆記者が書いた cite要素なのか、私が書いた cite要素なのかが区別出来ません。

このことは私も気にはしていましたが、そのままにしていました。調べてみると、こんなページが。

今まで私はblockquote要素の内部にcite要素を書くやり方にしていました。そこに落ち着いたのは、引用の方法とか『詳解HTML&スタイルシート辞典』を見て真似ていたためでした。しかし今回調べてみて、外に書いた方がいいという議論に説得力があると感じました。

外に書くとすると、blockquote要素とcite要素をどうやって結びつけるかという問題が出てきます。あまりスマートではありませんが、div要素でまとめて囲っておくのが無難でしょうか。

ともあれ、そのあたりの自動生成機構は後からでも変更できると思うので、元テキストが正しくなっているように書くことを心がけておけば何とかなりそうな気がします。

ところで、私の場合urn:isbn:スキームは気にせず使っています。IEでクリックしても何も起こらないとかは、まあそのうち解決されるだろうという楽観的発想です。(ただし、はてな内では「isbn:」と書くのが推奨されているのでそちらに従うことが多いです。)

*1:はてなダイアリーで上のような表記を使う際には、前後を「>」「<」で囲って余分な段落が入らないようにする必要があります。省略記法ではこのような処理は行われません。