X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c96d672810ae524aedf9ffff08dcca773cd9a876..b0f5f37317242721765d463ad7785b995caee490:/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn?ds=inline diff --git a/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn index 9b3e015a5..492a32b36 100644 --- a/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn +++ b/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn @@ -15,16 +15,47 @@ ManojSrivastava > I think you could now implement "toplvl" using [[conditionals|/plugins/conditional]]: > -> \[[if test="destpage(/index)" then="""...""" else="""..."""]] +> \[[!if test="destpage(/index)" then="""...""" else="""..."""]] > > --[[JoshTriplett]] +> > Right. But how about some more complex stuff, for example, from my varioki settings below? --ManojSrivastava + > Here's a dump of the file Manoj sent me, for reference. > > My take on this is that simple plugins can do the same sort of things, this is > kind of wanting to avoid the plugin mechanism and just use templates and > stuff in the config file. Not too thrilled about that. --[[Joey]] +> > OK. How do you implement something like category I have in my varioki +> > settings? As a user, I can just add new stuff to my config and my template; +> > with a plugin I'll have to write a plugin, and install it in the ikiwiki plugin +> > directory, which is not very easy for a plain ol' user. Not everyone is the +> > sysadmin of their own machines with access to system dirs. --ManojSrivastava + +
+ varioki => {'motto' => '"Manoj\'s musings"', + 'arrayvar' => '[0, 1, 2, 3]', + 'hashvar' => '{1, 1, 2, 2}', + 'toplvl' => 'sub {return $page eq "index"}', + 'isblog' => 'sub {return $page =~ m,blog/.*,}', + 'category' => 'sub { return " " unless $page=~ m,^blog/,; my $p=""; my $i="<a href=\"$config{url}/blog\">Top::</a>"; my @a=split ("/",$page); shift @a; pop @a; foreach my $dir (@a) { $p.=$dir; $i.="<a href=\"$config{url}/tag/$p\">$dir</a<::"; $p.="/"; }; return $i }', + 'date' => 'sub { return POSIX::strftime("%d", gmtime((stat(srcfile($pagesources{$page})))[9])); }', + 'year' => 'sub { return POSIX::strftime("%Y", gmtime((stat(srcfile($pagesources{$page})))[9])); }', + 'month' => 'sub { return POSIX::strftime("%B", gmtime((stat(srcfile($pagesources{$page})))[9])); }', + 'day' => 'sub { return POSIX::strftime("%A", gmtime((stat(srcfile($pagesources{$page})))[9])); }', + }, ++ +> > I'd argue in favour of this plugin; it's true that a simple plugin can be +> > used to set a template variable, but that makes it necessary to write a new +> > plugin for every variable (or set of variables) that are needed. In that +> > kind of situation, I don't think bypassing the plugin mechanism is a bad +> > thing, unless an ever-growing collection of plugins to set one or two +> > variables is a good thing. +> > +> > --[[bma]] + ----
@@ -232,4 +263,4 @@ ManojSrivastava +-[[tag patch]] +[[!tag patch]]