movabletype に変更して、自宅サイトのトップの記事サマリが実態にあわなくなった。
自動生成されている Atom 形式の RSS フィードを、マージするプログラムを作り、
その処理に、記事サマリを HTML 化したものを出力するように変更する。
#!/usr/bin/perl
use Jcode ;
use XML::TreePP ;
use XML::FeedPP ;
use POSIX qw( strftime ) ;
# 新規に生成するRSSフィード
$rss_atom = "/var/www/system/atom.xml" ;
# RSSフィードをHTML形式でも作成(トップページ用)
$rss_html = "/var/www/system/rss.html" ;
# RSSフィードを探すユーザ一覧
@local_rss_uid = ( "ユーザ名" ) ;
my $feed = XML::FeedPP::Atom->new();
$feed->merge( "/var/www/system/rss.xml" ) ;
# 自宅 MovableType の RSS Feed をマージ
foreach $uid ( @local_rss_uid ) {
if ( -f "/home/$uid/public_html/mt/atom.xml" ) {
$feed->merge( "/home/$uid/public_html/mt/atom.xml" ) ;
}
}
# RSS Feed に全体情報を設定
$feed->title( Jcode->new( "tsaitoh.net全体のRSSフィード" )->utf8 ) ;
$feed->pubDate( time() ) ;
# フィード一覧をHTMLで生成
open( HTML , ">$rss_html" ) ;
print HTML "<ul>\n" ;
foreach my $item ( sort( $feed->get_item() ) ) {
if ( $item->title() ne "" ) {
my $date = strftime( "%m/%d" ,
localtime( XML::FeedPP::Util::get_epoch( $item->pubDate() ) ) ) ;
print HTML "<li>$date <a href=\"".$item->link()."\" target=\"_top\">"
.Jcode->new( do htmlspecialchars( $item->title() ) )->euc ."</a></li>\n" ;
}
}
print HTML "</ul>\n" ;
close( HTML ) ;
$feed->to_file( $rss_atom ) ;