all about blosxom
Table of Contents
SourceForge?.netで開発が続けられているBlosxom v2について。
現在blosxomはSourceForge.netにおいてグループで開発されています。ライセンスは引き続きMITライセンスのままです。特に機能上で大きな変更をするわけでは無く、バグの修正などに留まっているようです。
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}) {
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 <html><head><link rel="alternate" type="type="application/rss+xml" title="RSS" href="$url/index.rss" /><title>$blog_title $path_info_da $path_info_mo $path_info_yr</title></head><body><center><font size="+3">$blog_title</font><br />$path_info_da $path_info_mo $path_info_yr</center><p />
< html story <p><a name="$fn"><b>$title</b></a><br />$body<br /><br />posted at: $ti | path: <a href="$url$path">$path</a> | <a href="$url/$yr/$mo_num/$da#$fn">permanent link to this entry</a></p>\n
< html date <h3>$dw, $da $mo $yr</h3>\n
< html foot <p /><center><a href="http://www.blosxom.com/"><img src="http://www.blosxom.com/images/pb_blosxom.gif" border="0" /></a></body></html>
---
>
> html head <html>
> html head <head>
> html head <link rel="alternate" type="type="application/rss+xml" title="RSS" href="$url/index.rss" />
> html head <title>$blog_title $path_info_da $path_info_mo $path_info_yr
> html head </title>
> html head </head>
> html head <body>
> html head <center>
> html head <font size="+3">$blog_title</font><br />
> html head $path_info_da $path_info_mo $path_info_yr
> html head </center>
> html head <p />
>
> html story <p>
> html story <a name="$fn"><b>$title</b></a><br />
> html story $body<br />
> html story <br />
> html story posted at: $ti | path: <a href="$url$path">$path </a> | <a href="$url/$yr/$mo_num/$da#$fn">permanent link to this entry</a>
> html story </p>
>
> html date <h3>$dw, $da $mo $yr</h3>
>
> html foot
> html foot <p />
> html foot <center>
> html foot <a href="http://www.blosxom.com/"><img src="http://www.blosxom.com/images/pb_blosxom.gif" border="0" /></a>
> html foot </center>
> html foot </body>
> html foot </html>
>
443,446c490,512
< rss head <?xml version="1.0"?>\n<!-- name="generator" content="blosxom/$version" -->\n<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">\n\n<rss version="0.91">\n <channel>\n <title>$blog_title $path_info_da $path_info_mo $path_info_yr</title>\n <link>$url</link>\n <description>$blog_description</description>\n <language>$blog_language</language>\n
< rss story <item>\n <title>$title</title>\n <link>$url/$yr/$mo_num/$da#$fn</link>\n <description>$body</description>\n </item>\n
< rss date \n
< rss foot </channel>\n</rss>
---
>
> rss head <?xml version="1.0"?>
> rss head <!-- name="generator" content="blosxom/$version" -->
> rss head <!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
> rss head
> rss head <rss version="0.91">
> rss head <channel>
> rss head <title>$blog_title $path_info_da $path_info_mo $path_info_yr</title>
> rss head <link>$url</link>
> rss head <description>$blog_description</description>
> rss head <language>$blog_language</language>
>
> rss story <item>
> rss story <title>$title</title>
> rss story <link>$url/$yr/$mo_num/$da#$fn</link>
> rss story <description>$body</description>
> rss story </item>
>
> rss date
>
> rss foot </channel>
> rss foot </rss>
>
448,451c514,526
< error head <html><body><p><font color="red">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.</font>\n\n
< error story <p><b>$title</b><br />$body <a href="$url/$yr/$mo_num/$da#fn.$default_flavour">#</a></p>\n
< error date <h3>$dw, $da $mo $yr</h3>\n
< error foot </body></html>
---
>
> error head <html>
> error head <body>
> error head <p><font color="red">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.</font>
>
>
> error story <p><b>$title</b><br />
> error story $body <a href="$url/$yr/$mo_num/$da#fn.$default_flavour">#</a></p>
>
> error date <h3>$dw, $da $mo $yr</h3>
>
> error foot </body>
> error foot </html>
Last-Modified: 2006-11-21T18:34:31+09:00