BlosxomAtSourceForge ---------------------------------------- SourceForge.netで開発が続けられているBlosxom v2について。 現在&link(blosxom,http://www.blosxom.com/)は&link(SourceForge.netにおいてグループで開発されています,http://sourceforge.net/projects/blosxom/)。ライセンスは引き続きMITライセンスのままです。特に機能上で大きな変更をするわけでは無く、バグの修正などに留まっているようです。 * v2.0.1 (2005-11-27) - RSSフィードのXMLエスケープにおけるバグを修正した - プラグイン・ディレクトリにあるエディタのバックアップファイルなどを無視するようにした - 静的生成において$path_infoが正確な値になるようにした ** v2とv2.0.1の差分 ---( 5,6c5,7 < # Version: 2.0 < # Home/Docs/Licensing: http://www.raelity.org/apps/blosxom/ --- > # Version: 2.0.1 > # Home/Docs/Licensing: http://www.blosxom.com/ > # Development/Downloads: http://sourceforge.net/projects/blosxom 149a151 > next if ($plugin =~ /~$/); # Ignore emacs backups 168c170 < # Define default find subroutine --- > # Define default entries subroutine 239d240 < $path_info = $p; 249,252c250,260 < print $fh_w < $indexes{$path} == 1 < ? &generate('static', $p, '', $flavour, $content_type) < : &generate('static', '', $p, $flavour, $content_type); --- > if ($indexes{$path} == 1) { > # category > $path_info = $p; > print $fh_w &generate('static', $p, '', $flavour, $content_type); > } else { > # date > local ($path_info_yr,$path_info_mo,$path_info_da, $path_info) = > split /\//, $p, 4; > unless (defined $path_info) {$path_info = ""}; > print $fh_w &generate('static', '', $p, $flavour, $content_type); > } 378c386 < if ($content_type =~ m{\Wxml$}) { --- > if ($content_type =~ m{\bxml\b}) { ---) * v2.0.2 (2006-07-16) - 静的生成において正しい拡張子を$path_infoが示すように修正した - 静的生成におけるエントリ・ファイルのフィルタのバグを修正した - 読みやすいように改行を許容するためと空のテンプレートを許容するためにDATAセクションにあるテンプレートのパース方法を変更した - SSIを利用している場合のCGI::url()のバグに対策を試みた ** v2.0.1とv2.0.2の差分 ---( 5c5 < # Version: 2.0.1 --- > # Version: 2.0.2 79c79 < $version = "2.0"; --- > $version = "2.0.2"; 87,88c87,97 < $url ||= url(); < $url =~ s/^included:/http:/; # Fix for Server Side Includes (SSI) --- > $url ||= url(-path_info => 1); > $url =~ s/^included:/http:/ if $ENV{SERVER_PROTOCOL} eq 'INCLUDED'; > > # NOTE: Since v3.12, it looks as if CGI.pm misbehaves for SSIs and > # always appends path_info to the url. To fix this, we always > # request an url with path_info, and always remove it from the end of the > # string. > my $pi_len = length $ENV{PATH_INFO}; > my $might_be_pi = substr($url, -$pi_len); > substr($url, -length $ENV{PATH_INFO}) = '' if $might_be_pi eq $ENV{PATH_INFO}; > 137c146,153 < return join '', ($template{$flavour}{$chunk} || $template{error}{$chunk} || ''); --- > # Check for definedness, since flavour can be the empty string > if (defined $template{$flavour}{$chunk}) { > return $template{$flavour}{$chunk}; > } elsif (defined $template{error}{$chunk}) { > return $template{error}{$chunk} > } else { > return ''; > } 142,143c158,159 < last if /^(__END__)?$/; < my($ct, $comp, $txt) = /^(\S+)\s(\S+)\s(.*)$/; --- > last if /^(__END__)$/; > my($ct, $comp, $txt) = /^(\S+)\s(\S+)(?:\s(.*))?$/ or next; 145c161 < $template{$ct}{$comp} = $txt; --- > $template{$ct}{$comp} .= $txt . "\n"; 224,227c240 < %files = %$files; %indexes = %$indexes; %others = ref $others ? %$others : (); < < # Plugins: Filter < foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('filter') and $entries = $plugin->filter(\%files, \%others) } --- > %indexes = %$indexes; 253c266,268 < print $fh_w &generate('static', $p, '', $flavour, $content_type); --- > # individual story > $path_info =~ s!\.$file_extension$!\.$flavour!; > print $fh_w &generate('static', $path_info, '', $flavour, $content_type); 283a299,303 > %files = %$files; %others = ref $others ? %$others : (); > > # Plugins: Filter > foreach my $plugin ( @plugins ) { $plugins{$plugin} > 0 and $plugin->can('filter') and $entries = $plugin->filter(\%files, \%others) } > 438,441c458,488 < html head $blog_title $path_info_da $path_info_mo $path_info_yr
$blog_title
$path_info_da $path_info_mo $path_info_yr

< html story

$title
$body

posted at: $ti | path: $path | permanent link to this entry

\n < html date

$dw, $da $mo $yr

\n < html foot

--- > > html head > html head > html head > html head $blog_title $path_info_da $path_info_mo $path_info_yr > html head > html head > html head > html head
> html head $blog_title
> html head $path_info_da $path_info_mo $path_info_yr > html head
> html head

> > html story

> html story $title
> html story $body
> html story
> html story posted at: $ti | path: $path | permanent link to this entry > html story

> > html date

$dw, $da $mo $yr

> > html foot > html foot

> html foot

> html foot > html foot
> html foot > html foot > 443,446c490,512 < rss head \n\n\n\n\n \n $blog_title $path_info_da $path_info_mo $path_info_yr\n $url\n $blog_description\n $blog_language\n < rss story \n $title\n $url/$yr/$mo_num/$da#$fn\n $body\n \n < rss date \n < rss foot \n --- > > rss head > rss head > rss head > rss head > rss head > rss head > rss head $blog_title $path_info_da $path_info_mo $path_info_yr > rss head $url > rss head $blog_description > rss head $blog_language > > rss story > rss story $title > rss story $url/$yr/$mo_num/$da#$fn > rss story $body > rss story > > rss date > > rss foot > rss foot > 448,451c514,526 < error head

Error: I'm afraid this is the first I've heard of a "$flavour" flavoured Blosxom. Try dropping the "/+$flavour" bit from the end of the URL.\n\n < error story

$title
$body #

\n < error date

$dw, $da $mo $yr

\n < error foot --- > > error head > error head > error head

Error: I'm afraid this is the first I've heard of a "$flavour" flavoured Blosxom. Try dropping the "/+$flavour" bit from the end of the URL. > > > error story

$title
> error story $body #

> > error date

$dw, $da $mo $yr

> > error foot > error foot ---) ---------------------------------------- Last-Modified: 2006-11-21T18:34:31+09:00