ぎょーむ日誌 2003-12-11
2003 年 12 月 11 日 (木)
-
0730 起床.
ねむい.
朝飯.
コーヒー.
0850 自宅発.
晴.
0900 研究室着.
-
一日中,
釧路大会関係の HTML ファイル生成の Perl プログラム作り.
作ってるのはテンプレイト指向とゆーか
再帰的マクロ展開型とゆーか,
そういうものだ.
-
例で説明してみよう.
あるペイジの構成は
マクロが混入している HTML ファイル
(といっても下の例はマクロばかりだけど)
で定義され,
###SET HOMEDIR . <!-- path to homedir -->
###SET FILENAME ###HOMEDIR###/aboutJES51
###SET CSS ###HOMEDIR###/index.css
###SET CODE iso-2022-jp
###SET TITLE About JES51
###SET CLASSBODY normal
###---------------------------------------------------------------------
###INCLUDE ###HOMEDIR###/part/commonhead.html
###INCLUDE ###HOMEDIR###/part/headbar.html
###SET FILE__SIDE ###INCLUDE ###HOMEDIR###/part/sidemenu.html
###SET FILE__MAIN ###INCLUDE ###HOMEDIR###/part/aboutJES51.html
###INCLUDE ###HOMEDIR###/part/with_sidemenu.html
###---------------------------------------------------------------------
###INCLUDE ###HOMEDIR###/part/commontail.html
このファイルを
generate.pl
(しかしこういういいかげんな命名がなかなかやめられんな)
に渡すと,
これだけなんだけど:
ここにあるマクロを順番にどんどん展開して
HTML ファイルを生成してくれるわけだ.
[生成された結果の一例]
着色とかは css でてきとーに決めてるだけで,
これが最終案ではない
(しかし誰も意見してくれなかったらこのままになるかも).
上端と左端はいろいろなペイジで共通する
(あるいは共通してなくてもよい),
ペイジ群たちを作ってくれるわけだ.
-
マクロといってもふたつしかない.
意味はだいたいわかるように,
###SET
で置換セットの定義,
###INCLUDE
でファイルの読み込む.
読みこんだファイルがマクロを含んでいたら,
それも再帰的にどんどん展開していく.
たとえば上の例だとレイアウトを決定する
###HOMEDIR###/part/with_sidemenu.html
(これは評価の最中に展開されて
./part/with_sidemenu.html
となる)
<div class="sidemenu">
###FILE__SIDE###
</div>
<div class="mainoftwo">
###FILE__MAIN###
</div>
<br class="clearboth">
この中に埋めこむべきファイルの
###FILE__SIDE###
と
###FILE__MAIN###
を含んでいて,
これを展開して評価すると埋めこむべきファイルが
###INCLUDE
される.
-
あとはファイル更新の時刻の置換とか.
-
プログラミングの途中で
1430 研究室発.
ヨドバシカメラと生協計算機部 (こっちはそうとうにしょぼい)
で ThinkPad をつらつらとながめる.
えーと,
私の ThinkPad240Z (Celeron 500MHz) はまあまあ元気なんですけど,
予算しょーかといいますかなんといいますか.
北海道にはまだまだ X40 とかは持ちこまれていないので
(たぶん来年の雪どけまで内地からの新機種供給は無理なのだろう),
X31 とかにしようかなぁ,
などと思ってみたり.
敵国鍵盤 version とかもあるしね.
いやはや.
-
生協旅行部で航空券うけとり.
支払金額 97,000 円.
職業的うそつき集団の中にあって,
ことさらに虚業的傾向のきつい私ともなると,
研究費なくてもなんとか商売になるんだけど,
こういう旅費が使えるってのはありがたいもんだとおもう.
1520 研究室もどる.
昼飯.
-
昼飯後も HTML ファイル生成マクロ解釈プログラム作成のつづき.
ひととーり動くようになったんで,
いろいろ生成してみる.
いいかんぢなんだが
……
-
今度はスタイルシート (CSS) の問題だ.
Mozilla 5.x 以降,
IE 5.x 以降ではそこそこの見ばえが到達できるようになった.
しかしながら,
だ.
今回もまたまたあの腐れた Netscape Navigator 4.x
が落ちやがる
……
すなわち期せずして言うところの
ぶらくら
を作ってしまったわけか.
-
いまどき NN4.x (4 ですよ 4!)
なんて使ってるやつはめったにいないだろうから
NN4.x 対策なんてどうでもいいぢゃん,
という指摘もあるかもしれない
……
一般論としてそれは正しいのだろう.
しかしながら,
生態学会釧路大会サイトをみるのは一般人ではなく,
生態学者だ !
……
Mac 使いが存在する公算が高く,
いつまでも古い MacOS (9 とか 8 とか 7 とか)
使ってる確率は無視できぬものであり,
それゆえに NN4.x が現役であり続けてる可能性も
……
さらに,
だ.
私が懸念するところによれば,
そういう人物は自分の行動の帰結において何かがうまくいかなかった際,
むしろ他を罰する必要を感じたりして,
たとえばお電話攻撃に走ったりするのではなかろーか,
と.
-
以上を要約するなら,
いまだにインターネットの有毒産業廃棄物とでもいうべき
NN4.x は無視できん.
たいへんたいへんたいへん残念ながら.
-
苦しい試行錯誤がつづく
……
そして正解は意外なところにあった.
こういう古い web browser は CSS をろくろく解釈できないだろう,
なる予断にもとづいて,
今回は呪われた table レイアウトなる技法を使っていた.
どうもこれがよろしくなかったよーで
……
改善案としては
<div>
(上の例で with_sidemenu.html
としてあげてるごとく)
と CSS の float
制御で,
NN4.x でもそこそこ「見れる」
ペイジができた.
-
いや,
もちろん NN4.x 専用のわけわからん処置は依然として必要ですよ.
<br clear="all">
とか CSS の
align: xxx
とか
……
-
ばてたけど,
HTML 生成機構とブラウザー依存「見てくれ」対策なる
最悪の難所は突破したかんぢだ
……
2350 研究室発.
2410 帰宅.
体重 71.4kg.
-
アタマのなかコードがぐるぐるまわって眠れん
……
2700 消灯.
-
[今日の素読]
-
[今日の食卓]
- 朝 (0740):
米麦 0.7 合.
卵焼き.
- 昼 (1530):
研究室お茶部屋.
生協のパン.
- 晩 (2430):
スパゲッティー.
明太子ソース.