Add __END_CONFIG__ token to remaining gavinc plugins.
[matthijs/upstream/blosxom-plugins.git] / gavinc / storytags
index 148a48f5c2d70dc24d048efec69b527231c334f1..1665dbf5fb11e39074cf901a0210844b4d1133a0 100644 (file)
@@ -1,6 +1,6 @@
 # Blosxom Plugin: storytags
 # Author(s): Gavin Carr <gavin@openfusion.com.au>
-# Version: 0.001000
+# Version: 0.002000
 # Documentation: See the bottom of this file or type: perldoc storytags
 # Requires: tags
 # Follows: tags
@@ -12,7 +12,7 @@ use strict;
 # Uncomment next line to enable debug output (don't uncomment debug() lines)
 #use Blosxom::Debug debug_level => 1;
 
-use vars qw($taglist);
+use vars qw($taglist @taglist);
 
 # --- Configuration variables -----
 
@@ -21,6 +21,7 @@ my $prefix = 'Tags: ';
 my $suffix = '. ';
 
 # ---------------------------------
+# __END_CONFIG__
 
 $taglist = '';
 
@@ -31,24 +32,26 @@ sub story {
     my ($pkg, $path, $filename, $story_ref, $title_ref, $body_ref) = @_;
 
     return 1 unless $tags::tag_cache 
-                 && ref $tags::tag_cache 
-                 && keys %{ $tags::tag_cache };
+             && ref $tags::tag_cache 
+             && keys %{ $tags::tag_cache };
     return 1 unless defined $tags::tag_cache->{"$path/$filename"};
 
-    $taglist = _format_taglist($tags::tag_cache->{"$path/$filename"}->{tags});
+    @taglist = ();
+    @taglist = sort { lc $a cmp lc $b } split /\s*,\s*/, 
+      $tags::tag_cache->{"$path/$filename"}->{tags}
+        if defined $tags::tag_cache->{"$path/$filename"}->{tags};
+    $taglist = _format_taglist( \@taglist );
 
     return 1;
 }
 
 sub _format_taglist {
     my ($tags) = @_;
-    $tags = '' unless defined $tags;
-    my @tags = sort { lc $a cmp lc $b } split /\s*,\s*/, $tags;
-    return '' unless @tags;
+    return '' unless @$tags;
     return $prefix
            . join(', ', 
                map { qq(<a href="$blosxom::url/tags/$_" rel="tag">$_</a>) }
-               @tags
+               @$tags
            )
            . $suffix;
 }
@@ -60,14 +63,17 @@ __END__
 =head1 NAME
 
 storytags - blosxom plugin to format a per-story $storytags::taglist string
+and @storytags::taglist array of tags
 
 =head1 DESCRIPTION
 
 L<storytags> is a blosxom plugin to format a per-story $storytags::taglist 
-string. The string is a comma-separated list of the tags defined for the
-story, prefixed by $storytags::prefix, and suffixed by $storytags::suffix.
-If no tags are defined, then $taglist will be the empty string '' (i.e. no
-prefix and suffix are added).
+string, and a @storytags::taglist array of tags. The $taglist is a 
+comma-separated list of the tags defined for the story, prefixed by 
+$storytags::prefix, and suffixed by $storytags::suffix. If no tags are 
+defined, then $taglist will be the empty string '' (i.e. no prefix and 
+suffix are added). @taglist is a simple array of the tags for the story,
+and an empty array if none are set.
 
 The default values for $prefix and $suffix are 'Tags: ' and '. ' 
 respectively, so a typical $taglist might look like: