X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/f60f15704e1f98ceea023561c9e411b6fc3ac4ea..24168b993e65994d2996d02bfaa36fb80bb65ca7:/doc/plugins/write.mdwn?ds=sidebyside diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 726ace8d3..d62ab6e63 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -1,4 +1,4 @@ -Ikiwiki's plugin interface allows all kinds of useful [[plugins]] to be +lkiwiki's plugin interface allows all kinds of useful [[plugins]] to be 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]]. @@ -356,6 +356,22 @@ when the page is being previewed.) The function is passed named parameters: "page" and "content", and should return the formatted content. +### build_affected + + hook(type => "build_affected", id => "foo", call => \&build_affected); + +This hook is called after the directly changed pages have been built, +and can cause extra pages to be built. If links and backlinks were provided +by a plugin, this would be where that plugin would rebuild pages whose +backlinks have changed, for instance. The [[trail]] plugin uses this hook +to rebuild pages whose next or previous page has changed. + +The function should currently ignore its parameters. It returns a list with +an even number of items (a hash in list context), where the first item of +each pair is a page name to be rebuilt (if it was not already rebuilt), and +the second is a log message resembling +`building plugins/write because the phase of the moon has changed`. + ### delete hook(type => "delete", id => "foo", call => \&delete); @@ -580,6 +596,7 @@ describes the plugin as a whole. For example: * `description` is a short description of the option. * `link` is a link to further information about the option. This can either be a [[ikiwiki/WikiLink]], or an url. +* `htmldescription` is displayed instead of the description by websetup. * `advanced` can be set to true if the option is more suitable for advanced users. * `safe` should be false if the option should not be displayed in unsafe @@ -982,19 +999,22 @@ This is the standard gettext function, although slightly optimised. This is the standard ngettext 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 second parameter is `undef` (or not specified), the URL will be +Provide a second parameter whenever possible, since this leads to better +behaviour for the [[plugins/po]] plugin and `file:///` URLs. + +If the second parameter is not specified (or `undef`), the URL will be valid from any page on the wiki, or from the CGI; if possible it'll be a path starting with `/`, but an absolute URL will be used if the wiki and the CGI are on different domains. -If the third parameter is passed and is true, an absolute url will be -constructed instead of the default relative url. +If the third parameter is passed and is true, the url will be a fully +absolute url. This is useful when generating an url to publish elsewhere. ### `newpagefile($$)` @@ -1106,9 +1126,7 @@ to version control; the subdir can be added if so. Remove a file. The filename is relative to the root of the srcdir. Note that this should not commit the removal, it should only prepare for it -to be committed when `rcs_commit` (or `rcs_commit_staged`) is called. Note -that the new file may be in a new subdir that is not yet in version -control; the subdir can be added if so. +to be committed when `rcs_commit` (or `rcs_commit_staged`) is called. #### `rcs_rename($$)` @@ -1148,11 +1166,13 @@ The data structure returned for each change is: ], } -#### `rcs_diff($)` +#### `rcs_diff($;$)` + +The first parameter is the rev from `rcs_recentchanges`. +The optional second parameter is how many lines to return (default: all). -The parameter is the rev from `rcs_recentchanges`. Should return a list of lines of the diff (including \n) in list -context, and the whole diff in scalar context. +context, and a string containing the whole diff in scalar context. #### `rcs_getctime($)`