0726 版あたりから、Mozilla Firebird の仕様がかわったらしく、これまで使っていた Breeze というテーマが使えなくなってしまいました。なんとか使えるようにできないものかとあれこれしてみました。
Phoenix 情報局の掲示板へのもとひこさんの書き込み(Re:trunk Re:微妙な修正・・・? #745)で、どうも chrome.rdf をいじれば使えるようになるらしいことがわかったのすが、どこをどう書きかえれると使えるようになるのかわからずにいたんですが、サル並日記 (2003-07-27-Sun)へのもとひこさんのツッコミから、skinVersion を 1.5 に書き換えてやればいいらしいことがわかりました。
さっそくプロファイルディレクトリの chrome ディレクトリにある chrome.rdf を編集してみました。が、うまくいかない。うむむ、気を取り直してもう一度 chrome.rdf を見直してみると、該当箇所がいくつもあるではないですか。すべて書き換えてみたらうまくいきました。
こういうことは他の人には薦められることではないので、やってみられる方はあくまで自己責任でどうぞ。
ちなみに、私が Breeze を使っているのは、少しでも画面を広く使いたいのと、人間が地味なのでシンプルな画面が気に入っているからです。画面のカスタマイズもなるべく表示領域を多くする方向で行っています。
下の画像は、Aebrahim 氏ビルドの 0727 版に Breeze を適用させたものです。等倍画像 (約 28KB) へリンクしているので、興味のある方はどうぞ。
あまりブラウザで見る人もいないと思いますが、xsltの練習を兼ねて、対応したブラウザで見られるようにしてみました。
namazu のインデックス
2003-07-27
このサイトが置いてある鯖のサポートページを何気に見ていたら、実は namazu がインストール済みであることに気がつきました。これまでは、手元のマシンでインデックスを作って perl 版の namazu.cgi を使っていたのです。
したがって、インデックスが更新されるのは思い付いた時だけ、というわけでほとんど更新されていませんでした。:p) しかし、鯖に namazu が入っているのなら話しは別です。さっそく cron に、mknmz を登録しました。これで日に一度はインデックスが更新されることになりました。:-) 検索するような内容があるのかと問われれば、ちょっと困ってしまうのですが。:p)
アンチポップ (2003-07-25)の Hatena RSS Machine の素晴らしさに感動して、ぜひこの日記でも RSS を発信したいと思い、手軽に RSS を作る方法はないものかと、あれこれ検索してみました。
で、ありました、ありました。意外と身近な (?) ところに。我らが神崎先生が、RSS 生成スクリプトのサンプルなるリソースを公開しておられるではないですか! 早速見てみたところ、ほとんどそのままの形でうちんくの最新の日記、latest.html に適用できることがわかりました。以下、うちんくの日記用に書き換えたperlスクリプトです。
$item_title = "h3"; #タイトルとリンクを抜き出す要素
$item_descr = "p"; #説明文を抜き出す要素
$host = "http://diary.noasobi.net/";
#ソースからタイトル、リンク、説明文を抽出
while(<>){
if(m|<${item_title}.*?><a href="(.*?)">(.*?)</a>|){
$link[++$items] = $1;
$items_list .= qq( <rdf:li rdf:resource="$host$1"/>\n);
$title[$items] = $2;
$isItem = 1;
}elsif(m|<${item_descr}.*?>(.*?)</${item_descr}>| and $isItem){
$str = $1;
$str =~ s/<.*?>//g; #不要なマークアップを削除
$descr[$items] = $str;
$isItem = 0; #説明文は1要素だけにしておく
}
}
#以下、RSSの構文に従って出力
print <<EOF;
<?xml version="1.0" encoding="utf-8" ?>
<rdf:RDF
xmlns="http://purl.org/rss/1.0/"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xml:lang="ja">
<channel rdf:about="http://diary.noasobi.net/rss.rdf">
<title>朝顔日記 最近の記事</title>
<link>http://diary.noasobi.net/</link>
<description>のりの日々のあれこれを綴った朝顔日記の最近の記事</description>
<image rdf:resource="http://diary.noasobi.net/img/asagao-p.png"/>
<items>
<rdf:Seq>
$items_list
</rdf:Seq>
</items>
</channel>
EOF
for $i (1..$#link){
print <<EOF;
<item rdf:about="$host$link[$i]">
<title>$title[$i]</title>
<link>$host$link[$i]</link>
<description>$descr[$i]</description>
</item>
EOF
}
print "</rdf:RDF>\n";
これを rss.pl と名付けて、こんな感じで、latest.html に適用させてみました。
Perl rss.pl latest.html > rss.rdf
見事に、rss.rdf が出力されました。しかし、ここで問題発生。(w
日記は、Shift-JIS で書いているので、当然出力される RSS も文字コードは Shift-JIS です。これをなんとか utf-8 に変換しなければなりません。どうせ perl で生成させているんだから、perl で変換すればよかろうと思ってググってみたら、perljp - 日本語 Perl ガイドなるページを発見。さっそく変換してみる。が、うまくいかない。何故に? と考えることしばし。うちの perl は 5.6 で、件のページに書いてあるのは、5.8 によるものでした。:p)
気を取り直して ActivePerl 5.8.0 に入れ替えます。入れ替え後はうまく変換されるようになりました。:-) rss.pl の吐き出すファイル名をとりあえず、rss.sjis として、以下を実行。
perl -Mencoding=shiftjis,STDOUT,utf8 -pe1 < rss.sjis > rss.rdf
これだと一時ファイルができて、邪魔くさいので、パイプ処理することにして、最終的にはバッチファイルにしてみました。以下が、実行するだけで latest.html から utf-8 な rss.rdf を吐き出すバッチファイルです。
@echo off
Perl c:\web\noasobi\diary\rss\rss.pl c:\web\noasobi\diary\latest.html | Perl -Mencoding=shiftjis,STDOUT,utf8 -pe1 > c:\web\noasobi\diary\rss.rdf
まぁ、日記を書く度に手動で実行しないといけないところがアレですが、そもそも、最新の日記と月別の日記を作るのに、コピペという原始的な方法をとっているわけで、まぁ、そこらあたりも含めて、一発であれこれするというのは今後の課題とします。:p)
0724版の Mozilla Firebird で、拡張のインストールでクラッシュするというバグが報告されているそうだ。そういわれると拡張を入れてみたくなるのが人情というもの。:p) 早速、Mozilla Firebird Help: 拡張へ行って何かおもしろそうなものはないか探してみた。幾つか試してみましたが、えらい小物ぽいけども気に入ったもの二つをご紹介。
一つめは、GoUpというもの。よくある現在いるページのひとつ上の階層に移動する拡張です。この機能はべんりセットにも入っているし、手でやってもたいしたことないのですが、この拡張を入れると、alt+↑キーでそれが出来るようになります。キー割り当ても直感的で判りやすいので忘れることもないでしょう。:p)
さて、もうひとつ。これは渋いです。:p) Link Visitorという拡張です。何をするものかといえば、リンクの未読・既読の変更を可能にする拡張です。
スタイルシートを書いていて、linkカラーとvisitedカラーを決めるのにナビゲーションのどこかのページをあえて未読の状態にしておくことありませんか?これがあれば、もうそんなことは気にしなくても、既読を未読に変えることができます。ちょっと渋くて気の利いた拡張ではないですか。本当の使い方がそうなのかどうかは知らないんですが。:p)
それにしても、拡張を入れようとするとクラッシュするバグがあるのを忘れて、何度も玉砕しました。結局、Aebrahim氏私家ビルドの0723版に戻して入れたんですけどね。(汗