diff options
-rw-r--r-- | IkiWiki/Plugin/listpreprocessors.pm | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/IkiWiki/Plugin/listpreprocessors.pm b/IkiWiki/Plugin/listpreprocessors.pm index ae5e1a7c4..ca58ef1a1 100644 --- a/IkiWiki/Plugin/listpreprocessors.pm +++ b/IkiWiki/Plugin/listpreprocessors.pm @@ -21,37 +21,41 @@ sub getsetup () { #{{{ }, preprocessor_description_dir => { type => "string", - description => "The ikiwiki directory that contains plugin descriptions.", + description => "directory in srcdir that contains preprocessor descriptions", + example => "ikiwiki/plugin", safe => 1, rebuild => 1, }, } #}}} -my @fullPluginList; -my @earlyPluginList; -my $pluginString; +my @fulllist; +my @earlylist; +my $pluginstring; sub checkconfig () { #{{{ - if (!defined $config{plugin_description_dir}) { - $config{plugin_description_dir} = "ikiwiki/plugin/"; - } + if (! defined $config{preprocessor_description_dir}) { + $config{preprocessor_description_dir} = "ikiwiki/plugin"; + } + else { + $config{preprocessor_description_dir}=~s/\/+$//; + } - @earlyPluginList = sort( keys %{ $IkiWiki::hooks{preprocess} } ); + @earlylist = sort( keys %{ $IkiWiki::hooks{preprocess} } ); } #}}} sub needsbuild (@) { #{{{ my $needsbuild=shift; - @fullPluginList = sort( keys %{ $IkiWiki::hooks{preprocess} } ); - $pluginString = join (' ', @earlyPluginList) . " : ". join (' ', @fullPluginList); + @fulllist = sort( keys %{ $IkiWiki::hooks{preprocess} } ); + $pluginstring = join (' ', @earlylist) . " : ". join (' ', @fulllist); foreach my $page (keys %pagestate) { if (exists $pagestate{$page}{listpreprocessors}{shown}) { - if ($pagestate{$page}{listpreprocessors}{shown} ne $pluginString) { + if ($pagestate{$page}{listpreprocessors}{shown} ne $pluginstring) { push @$needsbuild, $pagesources{$page}; } if (exists $pagesources{$page} && - grep { $_ eq $pagesources{$page} } @$needsbuild) { + grep { $_ eq $pagesources{$page} } @$needsbuild) { # remove state, will be re-added if # the [[!listpreprocessors]] is still there during the # rebuild @@ -64,21 +68,23 @@ sub needsbuild (@) { #{{{ sub preprocess (@) { #{{{ my %params=@_; - $pagestate{$params{destpage}}{listpreprocessors}{shown}=$pluginString; + $pagestate{$params{destpage}}{listpreprocessors}{shown}=$pluginstring; my @pluginlist; if (defined $params{generated}) { - @pluginlist = @fullPluginList; - } else { - @pluginlist = @earlyPluginList; + @pluginlist = @fulllist; + } + else { + @pluginlist = @earlylist; } my $result = '<ul class="listpreprocessors">'; foreach my $plugin (@pluginlist) { $result .= '<li class="listpreprocessors">'; - $result .= htmllink($params{page}, $params{destpage}, IkiWiki::linkpage($config{plugin_description_dir} . $plugin)); + $result .= htmllink($params{page}, $params{destpage}, + IkiWiki::linkpage($config{preprocessor_description_dir}."/".$plugin)); $result .= '</li>'; } |