2006/06/11 Sun [長年日記]
tdiaryをgoogle sitemapsに対応させてみる
グーグルサイトマップ用のXMLをジェネってくれるアプリをはてなブックマークで見つけたんだけど、静的に書き出されたファイルをローカルでスキャンして、作成されたものをFTPなりでアップするみたい。
ワザワザネットワーク経由でデータを取得して、XMLをローカルに吐き出し、それをアップするよりは全部ローカルでやった方が賢いだろうけど、とてもやる気にはならないな。せっかくCMSがあるのに。
tDiaryのプラグインを探してみたけど、それっぽい物が見つからず、makerss.rbをちょっといじればできるかなと思ったけど、makerss.rbのソースをみただけで目的の割には遠回りすぎる気がする。
結局ハックの出番、最初はTDiary::Configでdataフォルダ調べて、既存のIOクラスを拡張してちょちょいと思ったけど、思うのは楽だけどどう考えてもめんどくさい。
ので、データディレクトリベタ書きして、単純にヘッダからdateとlast modifiedを取ってきてグーグルサイトマップフォーマットのXMLを出力する事に。何事も単純に考えないと。
changefreqとpriorityはなんとも捕らえ所のない項目なので、実装せず。オプショナルだし。で、カテゴリとかも考えたけど、結局内容は同じなので、日毎エントリのアドレスだけでマップを作る事に。
で、完成。
後は、 https://www.google.com/webmasters/sitemaps/siteoverview で作成したサイトマップを登録して、巡回に来てくれるのを待つのみ。ようは放っとく。
拡張子がxmlでないと駄目ならアドレス書き換えか、googlesitemap.rbをgooglesitemap.xmlにリネームしてcgiハンドラでもつけようと考えてたんだけど、拡張子rbでも全く問題なく読みに来てくれました。とりあえずめでたし。
しかし、グーグルサイトマップのページは刺す様に重いな。
tdiaryでgoogle sitemapsのXMLを返すcgi
昨日(エントリーは今日ですが)作ったcgiです。tDiary2形式のデータに対応しています。(逆に言えばv1のPstoreIO形式には対応していません。多分問題ある人は殆ど居ないでしょう)
tar.gzip形式で圧縮されているので、適当なアーカイバで展開してください。
普通のCGIですので、アップロードしてhttpdでの実行権限をつけると動作しますが、tdiaryのデータパスと、url関係を設定する必要があります。
TDIARY_DATA_GLOB = "/home/users/tdiary_data/*/*.td2"
TDIARY_ADDR_FMT = "http://www.example.com/%s.html"
TDIARY_DATA_GLOBの/home/users/tdiary_dataの部分をtdiary.confの@data_pathと同じにしてください。
TDIARY_ADDR_FMTは自分のダイアリーの年月日の部分が%sになるようにします。printfのフォーマットが使えます。この日記ではmod_rewriteでアドレス書き換えをしていますが、標準のtdiaryだと以下のような感じになると思います。
TDIARY_ADDR_FMT = http://www.example.com/tdiary/?date=%s"
これで上手く動かなかったら、インタプリタを指定している行を変更してください。xrea等では/usr/bin/envが使えなくなっているようです。
あと、Google Sitemapsについての知識を一通り仕入れておく必要があるでしょう。グーグル サイトマップについて
その他の注意事項ですが、サイズ制限に対応していません。エントリーが5万個を超えていたり、生成されるmapが10Mbyteを超える場合に気を利かせるような作りにはなっていませんのであしからず。
MovableTypeのGoogle SiteMaps
tDiaryでGoogle Sitemapに対応したので、b.bulkitem.comで使っているMovableTypeでも対応する事に。
検索するとすぐに発見。
MovableTypeで Google Sitemapsを作成するを見てその通りにやれば完成。
ビッグマック
最近はマクドナルドに縁があるのか、ビッグマックを頂いた。なんでビッグマックなのかは不思議だけど、手持ちのクーポンが使えてセットじゃないハンバーガーはビッグマックだけだったらしい。
私は20年ぐらい前に一度だけビッグマックを食べた事があるんだけど、子供ながらに(子供だからビッグマックを選んだんだろうけど)「こんなでかいもの食うもんじゃないな」と思ったのを覚えている。
それ以来ビッグマックを買った事はない訳だけど、大人になってみるとそんなにでかい物でもない事に気づく。でもでかいよ。
食べてみるとやっぱりおいしかったけど、食べ難いので「こんなでかいもの食うもんじゃないな」という思いは変わらない。
- [PR] 夜は短し歩けよ乙女 の 森見登美彦
- [PR] 鹿男あをによし の 万城目学

