X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/1f7f5d5e0e21920c5f15290cd34594ad91077071..b96507ee3bc891becd9078ec7556daa29f2cf513:/doc/todo/tmplvars_plugin.mdwn

diff --git a/doc/todo/tmplvars_plugin.mdwn b/doc/todo/tmplvars_plugin.mdwn
index f7d06a579..2fe819682 100644
--- a/doc/todo/tmplvars_plugin.mdwn
+++ b/doc/todo/tmplvars_plugin.mdwn
@@ -2,6 +2,29 @@ A simple plugin to allow per-page customization of a template by passing paramat
 
 [[!tag patch]]
 
+> The implementation looks fine to me (assuming it works with current ikiwiki),
+> apart from the "XXX" already noted in the patch. The design could reasonably
+> be considered premature generalization, though - how often do you actually
+> need to define new tmplvars?
+>
+> As for the page/destpage/preview thing, it would be good if the preprocess
+> hook could distinguish between software-supplied and user-supplied
+> parameters (the [[plugins/tag]] plugin could benefit from this too). Perhaps
+> the IkiWiki core could be modified so that
+> `hook(type => "preprocess", splitparams => 1, ...)` would invoke preprocess
+> with { page => "foo", destpage => "bar", ... } as a special first argument,
+> and the user-supplied parameters as subsequent arguments? Then plugins like
+> tag could use:
+>
+>     my $ikiparams = shift;
+>     my %params = @_;
+>
+>     add_tags($ikiparams->{page}, keys %params);
+>
+> --[[smcv]]
+
+----
+
     #!/usr/bin/perl
     package IkiWiki::Plugin::tmplvars;
 
@@ -11,12 +34,12 @@ A simple plugin to allow per-page customization of a template by passing paramat
 
     my %tmplvars;
 
-    sub import { #{{{
+    sub import {
 	    hook(type => "preprocess", id => "tmplvars", call => \&preprocess);
 	    hook(type => "pagetemplate", id => "tmplvars", call => \&pagetemplate);
-    } # }}}
+    }
 
-    sub preprocess (@) { #{{{
+    sub preprocess (@) {
 	    my %params=@_;
 
 	    if ($params{page} eq $params{destpage}) {
@@ -34,9 +57,9 @@ A simple plugin to allow per-page customization of a template by passing paramat
 		    }
 	    }
     
-    } # }}}
+    }
     
-    sub pagetemplate (@) { #{{{
+    sub pagetemplate (@) {
             my %params=@_;
             my $template = $params{template};
 
@@ -47,6 +70,6 @@ A simple plugin to allow per-page customization of a template by passing paramat
             }
 
             return undef;
-    } # }}}
+    }
 
     1