2009-06-19

一日のはじまり

AM9:07。さて、職場に着いた。今日もつまらない一日が始まるお。今日はいったい何をしようかな。se関係の整理が途中だったから、とりあえずそれを片付けるかな。その後はbとかlとかをいじろうかな。

2009-06-15

W3C、日本語組版の要件文書を公開

素晴らしい。何が素晴らしいって、英語版や英訳の用語集があることですよ。命名の参考にさせていただきます。詰め組はtsumegumiらしい。追い込み処理は line adjustment by inter-character space expansion。いや、そうだけどさ、長いよ……。

あれ、JIS X 4051に繰り返し記号なんてクラスあったっけ? あー、微妙に文字クラスが増えてるっぽい。

2009-06-10

UIデザイン変更

UIデザイン変更で画像切り出し、スタイル指定やり直し。俺涙目。

それもこれもUIライブラリが糞いから悪いんだ。KSSLはCSS+HTMLの悪いところを受け継いでるよね。

まあ、でも悪いところばっかりではないけど。絶対指定だけでは得られないある程度の柔軟性とかは助かる場面が無いわけではない。そういう良いところを残したまま、もっとシンプルで、それでいて妙な制限が少ない方法があれば良いんだけど……。

2009-06-07

新しい傘

京王アートマンへ行ったら、傘の特設コーナーがあった。

今使っている傘は数年前に職場近くのファミリーマートで買ったもので、色は水色、半径は60cm、値段は500円~1000円くらい。現在、骨が一本折れていて、ワンタッチ解放機構の引っかかりが甘く、放っておくと勝手に開いてしまう。コンビニに置いてあった中では一番大きいものを選んだのだが、使ってみるとどうしても体のあちこちが濡れてしまい難儀していた。

というわけで、コーナーに置いてある傘のうち、一番大きい80cmサイズのものを試しに開いてみた。……で、でかい。こんなにでかくていいのか。まるでビーチで使うパラソルをさして歩くような感覚だ(大げさ)。人混みの中で使うと鬱陶しがられるかもしれない(気にしすぎ)。もっとも通勤経路上に人混みなんて無いけどね。

他の75cmや70cmのでも十分大きそうなんだけど、ものは試しと言うことで、結局半径80cmの傘を買った。

今度雨が降ったら早速使ってみよう。どのくらい濡れないか楽しみだ。

2009-06-05

リストの文書構造

liの子要素に%inlineが書ける理由は何かで書いたとおり、htmlではliの下に直接インライン要素を書くことが出来る。

xhtml2ではどうなってるんだろう、とワーキングドラフトを見てみたのだが、やはり(PCDATA|Flow)*と書いてある(あれ、Flow(というかText)自体にはPCDATAが含まれていないのか)。たぶんこれは、liで囲んでいるという時点でインライン要素にはp要素と同じくらい十分な意味づけがされていると考えているのではないか。

DocBookはどうだったっけ、と調べてみたのだが、こちらはlistitemの下にはある程度大きな要素しか書けないようだ。いろんなところの例を見ても、<listitem><para>りんご</para></listitem>みたいに項目ごといちいちparaで囲ってある。これは、listitemは純粋にコンテナの要素としての構造のみを表していて、項目の中身については何も意味づけしないという立場を取っているのではないか。

で、この間からなんでこんなことで悩んでいるのかというと、次のようなWiki記法(軽量マークアップ言語)を解析して内部的な文書モデル(オブジェクト構造)を構築するとき、リストの一行目をParagraphの中に入れるかどうかが問題になるからだ。

次のはリストの例です。
-項目1です。
 改行''後''です。
 -入れ子の項目
 -入れ子の項目
 入れ子の後です。
 
 項目1の最後。上の行には先頭に1文字空白が入ってます。
-項目2です。

とりあえずParagraphに入れておいて、html出力するときにListItemの下にParagraphが一つだけならばpで囲まないで出力する、というような手もあるかも。別にすべてpで囲むのがそんなに悪いって分けでもないし。liの下にpを入れると、スタイル上無駄に間隔が空いてしまうことがあるけど、スタイルシートで調整すればいいし。

というわけで、上の例は次のように解釈することにする。

Document
  Paragraph
    ParagraphLine
      Text("次のはリストの例です。")
  UnorderedList
    ListItem
      Paragraph
        ParagraphLine
          Text("項目1です。")
        ParagraphLine
          Text("改行")
          Emphasis
            Text("後")
          Text("です。")
      UnorderedList
        ListItem
          Paragraph
            ParagraphLine
              Text("入れ子の項目")
        ListItem
          Paragraph
            ParagraphLine
              Text("入れ子の項目")
      Paragraph
        ParagraphLine
          Text("入れ子の後です。")
      Paragraph
        ParagraphLine
          Text("項目1の最後。上の行には先頭に1文字空白が入ってます。")
    ListItem
      Paragraph
        ParagraphLine
          Text("項目2です。")

ListItemの下にはTextやEmphasisが直接入ることはない。