X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/22df49a2bf92302d4c6e25a04e9c7589a93844a9..299bb8bef3811b16d29a0e8ebb2c292c8dd11020:/doc/plugins/write.mdwn?ds=sidebyside diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 24da94dd5..93c6d1d5c 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -64,12 +64,25 @@ with the rest of the page. Beyond PreProcessorDirectives, Other types of hooks that can be used by plugins include: +## getopt + + IkiWiki::hook(type => "getopt", id => "foo", call => \&getopt); + +This allows for plugins to perform their own processing of command-line +options and so add options to the ikiwiki command line. It's called during +command line processing, with @ARGV full of any options that ikiwiki was +not able to process on its own. The function should process any options it +can, removing them from @ARGV, and probably recording the configuration +settings in %IkiWiki::config. It should take care not to abort if it sees +an option it cannot process, and should just skip over those options and +leave them in @ARGV. + ## checkconfig IkiWiki::hook(type => "checkconfig", id => "foo", call => \&checkconfig); -This is useful if the plugin needs to check for, or modify ikiwiki's -configuration. It's called early in the ikiwiki startup process. The +This is useful if the plugin needs to check for or modify ikiwiki's +configuration. It's called early in the startup process. The function is passed no values. It's ok for the function to call IkiWiki::error if something isn't configured right. @@ -94,12 +107,13 @@ languages to ikiwiki. IkiWiki::hook(type => "pagetemplate", id => "foo", call => \&pagetemplate); -Each time a page is rendered, a [[template|templates]] is filled out. -This hook allows modifying that template. The function is passed named -parameters. The "page" and "destpage" parameters are the same as for a -preprocess hook. The "template" parameter is a `HTML::Template` object that -is the template that will be used to generate the page. The function -can manipulate that template object. +Each time a page (or part of a blog page, or an rss feed) is rendered, a +[[template|templates]] is filled out. This hook allows modifying that +template. The function is passed named parameters. The "page" and +"destpage" parameters are the same as for a preprocess hook. The "template" +parameter is a `HTML::Template` object that is the template that will be +used to generate the page. The function can manipulate that template +object. The most common thing to do is probably to call $template->param() to add a new custom parameter to the template. Note that in order to be robust, @@ -172,12 +186,15 @@ use the following hashes, using a page name as the key: # A note on generating html links Many plugins need to generate html links and add them to a page. This is -done by using the htmllink() function in ikiwiki. The usual way to call -htmlllink is: `htmllink($page, $page, $link)` +done by using the `IkiWiki::htmllink` function. The usual way to call +htmlllink is: + + htmllink($page, $page, $link) Why is $page repeated? Because if a page is inlined inside another, and a link is placed on it, the right way to make that link is actually: -`htmllink($page, $destpage, $link)` + + htmllink($page, $destpage, $link) Here $destpage is the inlining page. A destpage parameter is passed to some of the hook functions above; the ones that are not passed it are not used