# Blosxom Plugin: flavourpathinfo
# Author(s): Gavin Carr <gavin@openfusion.com.au>
-# Version: 0.002000
+# Version: 0.002002
# Documentation: 'perldoc flavourpathinfo'
+# Follows: extensionless
package flavourpathinfo;
# --- Configurable variables -----
-my $debug_level = 0;
+# None
# --------------------------------
-my $package = 'flavourpathinfo';
-sub debug {
- my ($level, @msg) = @_;
-
- if ($debug_level >= $level) {
- print STDERR "$package debug $level: @msg\n";
- }
-}
+# use Blosxom::Debug debug_level => 1;
sub start {
my $path_info = $blosxom::path_info;
- debug(1, "original path_info: $path_info");
- return 1 if -e "$blosxom::datadir/$path_info";
# Remove any trailing /
$path_info =~ s! /$ !!x;
+ my $path_file = $blosxom::path_info;
+ $path_file =~ s/\.\w+$/.$blosxom::file_extension/;
+ return 1 if -e "$blosxom::datadir/$path_info" || -f "$blosxom::datadir/$path_file";
+
+ # debug(1, "original path_info: $path_info");
+
# Check file/flavour variant
if ($path_info =~ m! ^ (.*) / ([^/]+) $ !x) {
my $flavour = $2;
my $path_info_new = "$1.$flavour";
my $path_file = "$1.$blosxom::file_extension";
- debug(2, "path_file: $path_file, path_info_new: $path_info_new");
+ # debug(2, "path_file: $path_file, path_info_new: $path_info_new");
if (-f "$blosxom::datadir/$path_file") {
- debug(1, "\$path_info_new exists - updating \$blosxom::path_info");
+ # debug(1, "\$path_info_new exists - updating \$blosxom::path_info");
$blosxom::path_info = $path_info_new;
$blosxom::flavour = $flavour;
$blosxom::path_info_yr = undef;
if ($path_info =~ m! ^ (?: (.*) / )? ([^/]+) $ !x) {
my $dir = $1 || '';
my $flavour = $2;
- debug(2, "dir: $dir, flavour: $flavour");
+ # debug(2, "dir: $dir, flavour: $flavour");
# Check there isn't an entry matching this
if (-f "$blosxom::datadir$dir/$flavour.$blosxom::file_extension") {
- debug(2, "entry $blosxom::datadir/$dir/$flavour.$blosxom::file_extension found - skipping");
+ # debug(2, "entry $blosxom::datadir/$dir/$flavour.$blosxom::file_extension found - skipping");
return 1;
}
# Check $dir is a directory (sanity check - overly aggressive?)
if ($dir && ! -d "$blosxom::datadir/$dir") {
- debug(2, "dir '$dir' is set but not a directory");
+ # debug(2, "dir '$dir' is set but not a directory");
return 1;
}
- debug(1, "dir '$dir' not set or exists and directory - setting \$blosxom::path_info");
+ # debug(1, "dir '$dir' not set or exists and directory - setting \$blosxom::path_info");
$blosxom::path_info = $dir;
$blosxom::flavour = $flavour;
$blosxom::path_info_yr = undef;
=head1 USAGE
-Should be loaded early as it manipulates $blosxom::path_info
-e.g. as 00flavourpathinfo.
+If used with the 'extensionless' plugin, it should be loaded
+*after* extensionless.
+
+But should be loaded early as it manipulates $blosxom::path_info
+e.g. as 02flavourpathinfo.
=head1 SEE ALSO