朝顔日記

RSS Reader Panel を改造してみた

2003-11-25

Mozilla Firebird のToolkit API の変更(また widgets から bindings へ逆戻り)に伴って、最近のナイトリーで RSS Reader Panel が 取得したRSS の description をポップアップしなくなったので、ポップップするように改造してみた。

といっても、プロファイルの chrome ディレクトリにある rssreader.jar を解凍して、中にある popupex.xml の <binding id="popupex" extends="chrome://global/content/widgets/popup.xml#popup"> という箇所を、<binding id="popupex" extends="chrome://global/content/bindings/popup.xml#popup"> に書き換え、再度圧縮して戻してやっただけですが。

もし、最近のナイトリーで、拡張とかテーマがおかしいという方がおられましたら、自己責任で自分で書き換えてみるのも一興かも。:p)

「RSS Reader Panel を改造してみた」へコメントをつける

トラックバック

1: ホームページ作成/ホームページ作成上達術! (2006-08-16T06:09:25+09:00)
ページを作っていく上で、もっとも練らなければならないのは、「軸」である。どのようなページにするのか、ということを練りに練って作っていく。その後、軸に肉を付けていくかのごとく、コンテンツを増やしていく。出来上がるのは、とびっきりの美少女のフィギュアだ!そう、あとは眺めるだけ。
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/11/diary_031125a.html

宝の山は腐ってた

2003-11-24

雪が降り始めたので、今期最後のつもりでナメコ採りに行ってきました。

朝、家を出たのが6時半過ぎで少し早かったため途中の峠を越える林道は凍結しており、林道の下りでスリップして車が道にたいして直角に横向きになったり、かなり怖い思いをしつつ登山口まで辿り着きました。歩き出したあたりはさほどの雪ではなかったのですが、天気がよくだいぶ冷え込んだらしく霜柱が立っていました。積雪はたいしたことありません。

霜柱の画像

2合目を過ぎたあたりから、ほぼ登山道は雪に覆われるようになってきてやや積雪も増えてきましたが、目的のところまで行ってもさほど増えることはなく、一安心。あまり雪が深いと倒木を見つけるのが困難になるので。目的の沢の詰めから沢を下っていよいよ、ナメコ採りです。最初の倒木には、採った跡があり、採り残しもありましたが、すでに腐りかけていたのでパス。2つめの倒木にはなっていませんでした。ここまではほぼ予想通り。本命は3本目です。ここは以前にも大量に収穫があったところで、今回も大いに期待していました。

薮を掻き分け近寄ります。おお、生えています。が、これもすでに腐っています。しかし、本命は裏側。抱えられないくらいの巨大な倒木の裏側へ回ってみると、そこにはびっしりとナメコが生えているではありませんか!

ナメコが群生している画像

ものすごい量で、冷蔵庫をいっぱいにできるくらいあります。ここまでたくさん生えているのは私も初めて見ました。が、これも半ば腐りかけているではありませんか!

ついに、宝の山に巡りあったというのに、なんという事でしょう。もう1週間早く来るべきでした、といまさら言っても後の祭りです。:p)

ま、また来年があるので、今期はこれで終了です。一応、多少はかき集めて食べれるものも採ってきたんですけどね。

「宝の山は腐ってた」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/11/diary_031124b.html

ややこし更新システムを更新する

2003-11-24

昨日のxsltはどうもテスト不十分で駄目だったので書き換えました。今度もおかしいかもしれませんが、とりあえずいいように見えています。:p)

気を取り直して、続きです。

さて、ややこし更新システムには問題点があります。renketu.xsl と renketu.bat の中で、具体的なファイルを指定しているためにこのままでは毎月これらのファイルを書き換えなければなりません。それは面倒くさいのでこないだ、続・日記更新の半自動(?)化 で使ったのと同じように、perlスクリプトで、これらのファイルを毎度生成することにしました。


#!perl
@date = localtime(time);
$this_month=sprintf("%02d%02d",$date[5]-100,$date[4]+1);
$prev_month = sprintf("%02d%02d",$date[5]-100,$date[4]);

#renketu.xsl 生成
open(FILE,">renketu.xsl");
print FILE "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>\n";
print FILE "<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"\n";
print FILE "xmlns=\"http://www.w3.org/1999/xhtml\"\n";
print FILE "xmlns:x=\"http://www.w3.org/1999/xhtml\"\n";
print FILE "exclude-result-prefixes=\"x\" >\n";
print FILE "<xsl:output method=\"xml\" version=\"1.0\" encoding=\"Shift_JIS\"\n";
print FILE "indent=\"yes\"\n";
print FILE "omit-xml-declaration=\"no\"/>\n";
print FILE "<xsl:template match=\"/\">\n";
print FILE "<html>\n";
print FILE "<head>\n";
print FILE "<title>先月分と今月分</title>\n";
print FILE "</head>\n";
print FILE "<body>\n";
print FILE "<xsl:copy-of select=\"x:html/x:body/x:div/x:div\" />\n";
print FILE "<xsl:copy-of select=\"document('$this_month.html')/x:html/x:body/x:div/x:div\" />\n";
print FILE "</body>\n";
print FILE "</html>\n";
print FILE "</xsl:template>\n";
print FILE "</xsl:stylesheet>\n";
close(FILE);

#renketu.bat 生成
open(FILE,">renketu.bat");
print FILE "Msxsl -xe $prev_month.html renketu.xsl > renketu.htm\n";
print FILE "Msxsl renketu.htm sort.xsl > sort.htm\n";
print FILE "Msxsl sort.htm latest.xsl > latest.html\n";
close(FILE);

これを呼び出し、さらに renketu.bat を実行するのバッチファイルが、latest.bat で以下のような内容です。


@echo off
cd c:\web\noasobi\diary
Perl latest.pl
call renketu.bat

これで、日記を書くときは diary.bat を実行して、サーバから今月分のファイルをダウンしてきてエディタで開き、書き終わったら latest.bat を実行すると最新版の日記が出来上がり、rss.bat を実行すると、最新の日記から RSS を生成後、自動でサーバにアップしてくれるという自動化が完成したはずです。

私は、素の html をエディタで書くのは苦にならないというか、どちらかといえば趣味だし、CMSなどの各種ツールの独特の記法を覚えるのがいやなので、目指せ!はてな日記より簡単に更新できるシステムはこれで完成したということにしておきます。

というわけで、やっぱり似非Blog(何)で、行きます。:p)

「ややこし更新システムを更新する」へコメントをつける

この記事へのツッコミ

1: yuu (2003-11-27T20:35:22+09:00)
>各種CMTツールなんかの
CMTというのは何の略でしょうか。CMSじゃないですよね。
2: のり (2003-11-27T22:08:24+09:00)
CMSなToolという私の脳内造語ですた。(汗
直しておきます。ご指摘感謝。
3: のり (2003-11-27T22:13:54+09:00)
月別のファイルは直しましたが、最新版は次回更新時ということで。
この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/11/diary_031124a.html

ややこし更新システム

2003-11-23

ようやく、コピペしないで済むややこし更新システムができますた!

基本方針は、以前やりたいことで書いたようにコピペはしたくないし、最新版と保存版では現状と同じように記事の並び順を逆にしたいし、かつ、月初めでも、最新版の記事の数を一定数にしたいというもの。

そのためには、コピペは面倒で書いたように先月分と今月分の日記を連結して、それを逆順にソートしてそれから何日か分を抜き出すという作戦(?)を立てて、それをするための XSLT を作ってみました。以下、先月分と今月分を連結する renketu.xsl です。


<?xml version="1.0" encoding="Shift_JIS"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:x="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="x" >
<xsl:output method="xml" version="1.0" encoding="Shift_JIS"
omit-xml-declaration="no"/>
<xsl:template match="/">
<html>
<head>
<title>先月分と今月分</title>
</head>
<body>
<xsl:copy-of select="x:html/x:body/x:div/x:div" />
<xsl:copy-of select="document('0311.html')/x:html/x:body/x:div/x:div" />
</body>
</html>
</xsl:template>
</xsl:stylesheet>

この XSLT で出来たファイルを逆順に並べ替えるのが、sort.xsl


 <xsl:template match="/">
  <html>
   <head>
    <title>日付でソート</title>
   </head>
   <body>
    <xsl:apply-templates/>
   </body>
  </html>
 </xsl:template>
 <xsl:template match="x:html/x:body">
  <xsl:for-each select="x:div">
   <xsl:sort select="@id" order="descending"/>
   <div class="section" id="{@id}">
    <h2><a href="{x:h2/x:a/@href}"><xsl:value-of select="x:h2/x:a"/></a></h2>
    <xsl:apply-templates select="."/>
   </div>
  </xsl:for-each>
 </xsl:template>
 <xsl:template match="x:html/x:body/x:div">
  <xsl:for-each select="x:div">
   <xsl:sort select="@id" order="descending"/>
   <xsl:copy-of select="."/>
  </xsl:for-each>
 </xsl:template>

んで、並べ替えたものから、最新4日分を抜き出すのが、latest.xslで、これでいろいろ必要な部分を付け足しているんですが、肝心な部分はこんな感じ


<div class="content diary">
 <h1>いまだ似非Blog(何)</h1>
 <p id="start">これより本文</p>
 <xsl:variable name="first" select="1"></xsl:variable>
 <xsl:copy-of select="x:html/x:body/x:div[$first]"/>
 <xsl:variable name="second" select="2"></xsl:variable>
 <xsl:copy-of select="x:html/x:body/x:div[$second]"/>
 <xsl:variable name="third" select="3"></xsl:variable>
 <xsl:copy-of select="x:html/x:body/x:div[$third]"/>
 <xsl:variable name="fourth" select="4"></xsl:variable>
 <xsl:copy-of select="x:html/x:body/x:div[$fourth]"/>
</div>

で、これらを実行するためのバッチファイルが、renketu.bat


@echo off
Msxsl -xe 0310.html renketu.xsl > renketu.htm
Msxsl renketu.htm sort.xsl > sort.htm
Msxsl sort.htm latest.xsl > latest.html

最初の行で msxsl.exe を-xe オプション付きで起動しているのは、xhtml1.1を msxsl.exe に読ませると処理できない問題を回避するためと dtd 読まないので処理が早いから。

参考
MSXML で XHTML ファイルを読み込む際の注意点
Xalan-Java の DTD 取得行程にイライラ

これで、今月分のファイルに記事を書き、その後 renketu.bat を実行すれば、数秒のちには latest.html が生成され、とりあえずコピペはしなくないという目的は達成されたはずです。多分。:p)

が、ややこし更新システムは、まだ終わらない。(謎)

sort.xslを修正しました。2003-11-24

「ややこし更新システム」へコメントをつける

この記事の永続的 URI ならびに トラックバック ping URI
http://diary.noasobi.net/2003/11/diary_031123a.html