X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/ee63ca440d5b46a34e90241411273da975af8ed9..2b716c47a7caa90338430d407fea2a0d07550429:/doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn 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 426e169ef..d292a1184 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,7 +15,7 @@ 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]] @@ -33,13 +33,19 @@ ManojSrivastava > > 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 +>>> It seems worth mentioning here that the `libdir` configuration parameter +>>> lets you install additional plugins in a user-controlled directory +>>> (*libdir*`/IkiWiki/Plugin`), avoiding needing root; indeed, a full local +>>> ikiwiki installation without any involvement from the sysadmin is +>>> [[possible|tips/DreamHost]]. --[[smcv]] +
                 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="Top::"; my @a=split ("/",$page); shift @a; pop @a; foreach my $dir (@a) { $p.=$dir; $i.="$dir::"; $p.="/"; }; return $i }',
+                        '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])); }',
@@ -47,6 +53,15 @@ ManojSrivastava
                       },
 
+> > 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]] + ----
@@ -148,9 +163,9 @@ ManojSrivastava
 +=cut
 +
 +
-+sub import { #{{{
++sub import {
 +	hook(type => "pagetemplate", id => "varioki", call => \&pagetemplate);
-+} # }}}
++}
 +
 +
 +=pod
@@ -166,7 +181,7 @@ ManojSrivastava
 +
 +=cut
 +
-+sub pagetemplate (@) { #{{{
++sub pagetemplate (@) {
 +	my %params=@_;
 +	my $page=$params{page};
 +	my $template=$params{template};
@@ -198,7 +213,7 @@ ManojSrivastava
 +             $template->param("$var" =>"$value");
 +           }
 +        }
-+} # }}}
++}
 +
 +1;
 +
@@ -254,4 +269,4 @@ ManojSrivastava
 +
 
-[[tag patch]] +[[!tag patch]]