サイト全体を XML データをもとにして XSL 変換したほうが楽っぽいなぁ。辞書とか、ヘッダ・フッタとかの共通部分を完全に一箇所にまとめられるし、XSLT っつうちゃんと仕様の決まってるやつをテンプレートとして使うから他人が構造を見ても (まずないけど) 理解しやすいし。

とりあえずそれっぽい XML データを変換する XSLT を書いてみた。んでも XML データがどうしても脳内 DTD なわけで……ただ単に簡略化した XHTML のほうがいいだろうか。でも h 要素使ってるテンプレ側で h1 要素を固定した場合、データに直接 h1, h2 と書いてしまうと面倒くさいので。し……どうやって変換すればいいだろう。っていっても現状 PHP にクエリ突っ込むような形しかないけど……

  1. トップ
  2. web
  3. サイト全体を XML + XSLT ?

どくりょ。どっちも面白いでぃすよ。

涼宮シリーズは何か妙に面白い。割と安心して読めるしねぇ。てか主人公の名前は意地でも出さない気ですか。

  1. トップ
  2. book
  3. mew mew / 成田良悟, 涼宮ハルヒの消失 / 谷川流

ネームスペース関連でめんどくさいことが……。共通化した XSL ファイルの中で本文を変換したりとか、共通部分を出力するテンプレートとか書いているのだけれど、デフォルトネームスペースの違うほかのフレーバーファイルでそれをインクルードして、その共通化されたテンプレートを適用すると、ネームスペースが新たにコピーされてしまう。本文を出力しているやつはかなりアドホックな対応<xsl:text disable-output-escaping="yes">&lt;</xsl:text> のようなのを書いて直接タグ作ってやるっちゅうローテクな方法。で見ないことにしてきたけれど、abbr 要素簡略化やらにそのアドホックな方法を適用すると非常に醜い。

共通化した XSL ファイルでデフォルトネームスペースをなくせばいいかと思いきや、それでも xmlns="" という属性が付いてしまう。どうしたらよいやら……

フレーバーごとに別の共通 XSL ファイルを作るのが(全く同じことを繰り返すのでスマートではないが)一番単純明快だよなぁ。それ以外に今のところ解決方法を思い浮かばない。ただ、Atom のように、ちゃんとネームスペースを宣言した中で呼び出す限りは問題ないので、RSS のフレーバーだけ同じことを書き直すことになる。うーむ。

とりあえず RSS のやつだけほぼ同じのをコピペRSS の場合は footnote の出力を変えなきゃいけないから、まぁいいかもしれない。どっちにしろ同じのを何度も書くのは好きじゃないけど……

  1. トップ
  2. web
  3. Namespace の問題

W3CDTF のようにタイムゾーンを表記した日付表示を見たときちょっと悩んだことがある。はて、この日付は UTC +09:00 されたものなんだろうか、それとも -09:00 すると UTC になるということなんだろうか、と。書いててバカバカしいすぎる……どっちも同じことですけどね! 俺の脳みそは処理できないんですよ! 文章にしてみると自分でもいかにバカかっつのがよくわかるんですが、頭で考えてるとカオスってきます。数字に弱いっつうか、なんていうか……頭わるっorz

関係ないんですけど、UTC って Coordinated Universal Time ですよね? なんで CUT じゃないんですか。切るからですか? Universal Time, Coordinated だったりしますか?

  1. トップ
  2. web
  3. 若人の W3CDTF についての悩み

isbn:N-NNNN-NNNN-N より urn:isbn:N-NNNN-NNNN-N ですよね。そうですよね。じゃあ ASIN の簡略化はどうするよ? っていう。そうか、ASIN の簡略化なんてしなけりゃOKだ。

テスト:mew mew

  1. トップ
  2. web
  3. URN ISBN isbn:?

tDiary やめてこっちへ。とりあえず /nulog/ でアクセスされたときは、/d/latest に飛ばしてます。

これからやろうと思うことを適当に書いておく。

  • lftp を使った ftp ミラーリングと便利機能 を見ながら、ローカルで編集してる日記をツーストロークぐらいで xyzzy から転送したい。(lisp の FTP クライアントは怖くて使いたくないので……)
  • もうちょいマシな CSS 書く。
  • 暑い。
open -u uid,pass lowreal.net
lcd /virtual/lowreal/public_html/null.lowreal.net/d/data
cd /public_html/null.lowreal.net/d/data
mirror -R -i '^[0-9]{6}\.xml$'
exit

のような lftp 用のスクリプトファイルを用意して

(defun lftp-mirror()
(interactive)
(save-buffer-dialog)
(execute-shell-command "lftp -f /virtual/lowreal/taglibro.lftp"))
(global-set-key '(#\C-c #\C-c) 'lftp-mirror)

を、.xyzzy に追記。C-c C-c でうぷろーど。素敵。

  1. トップ
  2. web
  3. Taglibro! への移行

xmllint っていうツール使うと、改行やらインデントのない XML を綺麗にできる。このツールどこで入れたか知らないけど(というか cygwin からでしかないけど)自分の環境では既に入ってた。たぶん libxml2 を入れれば勝手に入ると思う。

これはちゃんと実装されているので安心して使えるかとー。例えばテキストノード内ではインデントしないとか、そんな感じ。

xmllint --format input-filename > output-filename

  1. トップ
  2. web
  3. xmllint による XML の再インデント