こりゃ、ほたえな

種々雑多なことを書き捨てていく予定です。UTF-8 対応と聞いて、はてなダイアリーからの移行を考えてますが、はてなブログはまだまだ完成までの道は遠いようです。

<table>内の改行が<br />に変換される不具合

前回エントリでは、<table>タグを使用しました。

はてなブログには「表組み記法」というものがあり、"|"で始まる行を原稿に書いて保存すると、表示したとき自動的に<table>タグに展開されるようになっていて、簡単にテーブルが表現できます。しかし、原稿上のある行がテーブルの一部であるかいなかは各行単位で解釈されるため、セル内容が複数行にわたる場合は、この記法を利用することができません。

そこで前回は、手書きで<table>タグを使用したのですが、はてなブログにはその処理に不具合があります。

<table>タグの内側で、<tr><th><td>タグの外側に改行があると、すべて<br />に変換されてしまうので、HTMLの仕様により、テーブルの直前に不要の空行が挿入されてしまいます。

以下のような原稿をポストすると、

<table>
  <tr><th>表頭</th></tr>
  <tr><td>セル内容</td></tr>
</table>

以下のように展開されてしまいます。

<p>
  <table><br />
    <tr><th>表頭</th></tr><br />
    <tr><td>セル内容</td></tr><br />
  </table>
</p>

明らかに不本意な変換です。テーブル全体を<p>タグでくくるのも、ちょっと美しくないなあ、と思います。

<br />タグへの変換を回避するため、以下のように<tr>タグ等を閉じずに改行してみたらどうかと試してみましたが、さらにひどい事態になりました。

<table><tr
><th>表頭</th></tr><tr
><td>セル内容</td></tr
></table>

改善を望みます。できれば、表組み記法で、複数行のセル内容に対応していただくと、いっそう助かります。