[Diary/2005/March]

Web上の小説や口語体 / 2005-03-15 (火)

p要素の中にブロック要素

Web上の小説のフォーマットについて,「行頭にマニュアルで全角スペース入れろ!」って叫ぶ人とディスカッションしたので,ちと調べてみた.
xhtml2.0では,p要素の中にブロック要素を突っ込むことが可能,という仕様になるらしい.

たとえば,こーひーをぶんなぐれ!の文書,実はきちんとした論理的なフォーマットに沿った記述をしていない.
brが頻発しているのであるな.
brは「強制」改行であり,通常の文章における「最低単位は段落(pで表記)であり,その中で改行は行われない」というフォーマットにおいては,基本的には使われないものとなっている.
ところが,こういう口語体的な文章(改行が頻発する)を書く場合には,段落をpとしてしまうとbrをいれなければならない.

Web上に載せる文章に口語体を持ち込むな,なんていわれるかもしれないけど,これは小説なんかにも関係してくる.
鈎括弧つきの会話は,その後で改行を行う,というフォーマットだと,このp要素が段落という意味を持たずに最小構成要素を表すだけのものでないと,表示の上でp要素に期待されている働きは実現できない.

この問題は,行頭字下げにも影響してきて,本来はスタイルファイル(xhtmlではスタイルシート?)で行われるべき行頭字下げが,全角スペース挿入という,あまりにも汚すぎる手段で実現されていることになる.
もちろん,青空文庫なんかは,イリーガルなのを承知で,読者の読みやすさを重視するために,そういう風にやっているわけだけどね.

なので…まぁ,口語体,小説などを扱う場合,xhtml2.0を使え,ってことになるのだろう.
pの中に,「行」というブロック要素を入れることが出来れば,論理的フォーマットの問題も,行頭字下げの問題も,解決してしまうことになる.
行を表すのはl(line)という要素にするってのが提案されているらしい.
これで,p(paragraph)要素の中に,引用部分を表すblockquote要素を突っ込むことも可能なわけだ.pの意味的にはこっちの方が正しい.
Features are as follows: の後にリストが続くような形でも,一つの段落の中に表記することが可能になる.
その他にも,セクションを表すsection要素を追加しろって意見もあるようで.

例えば,こーひーをぶんなぐれ!のitemのText要素 (rNote参照の事) の中身は,以下のようになる…のかな?

 <section title="朝日のデザイン変更">
  <h3>朝日のデザイン変更</h3>
  <p>
   <l>いつものように…</l>
   <l>なんか見にくいとの意見が,</l>
   <blockquote>
    <p><l>...なんであんなに真っ赤なの!? やっぱり朝日だから?</l></p>
   </blockquote>
   <l>という風に出ている.</l>
   <l>以下に朝日の真っ赤さ加減を非難する論調の特徴を箇条書する</l>
   <ul>
     <li>大陸支援してるんじゃないか?</li>
     ...
   </ul>
  </p>
 </section>

実は僕はちょっと前まで,こういうのが当然だろうと思って記述していたので,チェッカーからは怒られまくっていたり.

んで,こういう風にできるとなると,
小説であれば,会話は行頭字下げなし,その他の行は行頭字下げを行う,という表示も可能になる.
Webスペースにあるのは,もうきちんとしたフォーマットの文章だけじゃなく,日記や小説もあるのだから,こっちのが適しているのは考えるまでもない.
あとまぁ,xmlで書くメリットって,変換してスタイルファイル記述すれば簡単に印刷可能になるってのもあるけど.

まだ決まってない規格だけど,これは是非さっさと決めて使用できるようにしてもらいたいものだ,と思う.
あとまぁ,個人的な意見としては,句読点もメタ化してほしい,ってのがあるかもなぁ.

タイトル画像

やっぱh1がきちんと出てないとだめだろう,ってことで,タイトル画像をbackgroundにしてみたんだが…変だな.
なんで色合わないんだろ?
Firefoxだと上手くいってるんだが…IEとSafariでおかしいや.