From: spalax Date: Sun, 5 Jan 2014 14:19:31 +0000 (-0400) Subject: Question about inject function X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/39ebfd9491f314b08862ae6bbf538f74caea2039?ds=sidebyside Question about inject function --- diff --git a/doc/forum/inject__95__preprocess__95__tag.mdwn b/doc/forum/inject__95__preprocess__95__tag.mdwn new file mode 100644 index 000000000..fe824d840 --- /dev/null +++ b/doc/forum/inject__95__preprocess__95__tag.mdwn @@ -0,0 +1,50 @@ +[[!meta title="Cannot manage to *inject* *preprocess_tag*"]] + +Hello, +I am trying to write a plugin that changes the way the +[[ikiwiki/directive/tag]] [[ikiwiki/directive]] works, and I am trying to do so +by using the [[inject|plugins/write/#index81h3]] function. The piece of code +that should (if I understood well the `inject` function) do the trick is : + + sub import { + inject( + name => 'IkiWiki::Plugin::tag::preprocess_tag', + call => \&my_preprocess_tag + ); + } + +Howere, this does not change anything about the effect of the `tag` directive. + +I have tried some variants, like calling `inject` outside the `import` +function, or calling `IkiWiki::loadplugin("tag");` to ensure that the +[[plugins/tag]] is loaded, but none of these things work. Any idea? + +*Disclaimer:* although proficient in several languages, I am a beginner in Perl. + +Here is the full code of (a very early version of) my plugin. + + #! /usr/bin/perl + require 5.002; + package IkiWiki::Plugin::parenttag; + + use warnings; + use strict; + use IkiWiki 3.00; + + my $orig_preprocess_tag=\&preprocess_tag; + + sub import { + inject( + name => 'IkiWiki::Plugin::tag::preprocess_tag', + call => \&my_preprocess_tag + ); + } + + sub my_preprocess_tag(@) { + print "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nWorking!\n"; + return "TODO"; + } + + 1 + +-- [[Louis|spalax]]