X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/584f3e3061e8983e4caa328d7bc16fdeba849654..bd5f94d2ac85d6fb5d60400345fe41b91f2d303c:/doc/plugins/write.mdwn diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index b4acb237d..7c28088de 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -3,7 +3,7 @@ written to extend ikiwiki in many ways. Despite the length of this page, it's not really hard. This page is a complete reference to everything a plugin might want to do. There is also a quick [[tutorial]]. -[[toc levels=2]] +[[!toc levels=2]] ## Types of plugins @@ -189,7 +189,7 @@ ikiwiki, like generating a page, or part of a blog page, or an rss feed, or a cgi. This hook allows modifying the variables available on those templates. The function is passed named parameters. The "page" and "destpage" parameters are the same as for a preprocess hook. The "template" -parameter is a [[cpan HTML::Template]] object that is the template that +parameter is a [[!cpan HTML::Template]] object that is the template that will be used to generate the page. The function can manipulate that template object. @@ -325,7 +325,7 @@ It can modify the content as desired, and should return the content. hook(type => "formbuilder_setup", id => "foo", call => \&formbuilder_setup); hook(type => "formbuilder", id => "foo", call => \&formbuilder); -These hooks allow tapping into the parts of ikiwiki that use [[cpan +These hooks allow tapping into the parts of ikiwiki that use [[!cpan CGI::FormBuilder]] to generate web forms. These hooks are passed named parameters: `cgi`, `session`, `form`, and `buttons`. These are, respectively, the `CGI` object, the user's `CGI::Session`, a `CGI::FormBuilder`, and a @@ -348,6 +348,15 @@ This hook is called whenever ikiwiki normally saves its state, just before the state is saved. The function can save other state, modify values before they're saved, etc. +## renamepage + + hook(type => "renamepage", id => "foo", call => \&renamepage); + +This hook is called by the [[plugins/rename]] plugin when it renames +something. The hook is passed named parameters: `page`, `oldpage`, +`newpage`, and `content`, and should try to modify the content to reflect +the name change. For example, by converting links to point to the new page. + ## Plugin interface To import the ikiwiki plugin interface: @@ -433,7 +442,7 @@ the entire wiki build and make the wiki unusable. #### `template($;@)` -Creates and returns a [[cpan HTML::Template]] object. The first parameter +Creates and returns a [[!cpan HTML::Template]] object. The first parameter is the name of the file in the template directory. The optional remaining parameters are passed to `HTML::Template->new`. @@ -573,12 +582,15 @@ time. This is the standard gettext function, although slightly optimised. -#### `urlto($$)` +#### `urlto($$;$)` Construct a relative url to the first parameter from the page named by the second. The first parameter can be either a page name, or some other destination file, as registered by `will_render`. +If the third parameter is passed and is true, an absolute url will be +constructed instead of the default relative url. + #### `targetpage($$)` Passed a page and an extension, returns the filename that page will be @@ -635,4 +647,5 @@ when imported, populate `$IkiWiki::Setup::raw_setup` with a reference to a hash containing all the config items. By the way, to parse a ikiwiki setup file, a program just needs to -do something like `use IkiWiki::Setup; my %setup=IkiWiki::Setup::load($filename)` +do something like: +`use IkiWiki::Setup; my %setup=IkiWiki::Setup::load($filename)`