X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/25447bccae0439ea56da7a788482a4807c7c459d..3f3aab3793fb471f8a99ed12df1bbad7abdc3455:/doc/plugins/write.mdwn diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 335320394..1bd3b0f87 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -177,10 +177,15 @@ function is passed no values. hook(type => "needsbuild", id => "foo", call => \&needsbuild); -This allows a plugin to manipulate the list of files that need to be -built when the wiki is refreshed. The function is passed a reference to an -array of files that will be rebuilt, and can modify the array, either -adding or removing files from it. +This allows a plugin to observe or even manipulate the list of files that +need to be built when the wiki is refreshed. + +As its first parameter, the function is passed a reference to an array of +files that will be built. It should return an array reference that is a +modified version of its input. It can add or remove files from it. + +The second parameter passed to the function is a reference to an array of +files that have been deleted. ### scan @@ -194,17 +199,6 @@ them to `%links`. Present in IkiWiki 2.40 and later. The function is passed named parameters "page" and "content". Its return value is ignored. -### rescan - - hook(type => "rescan", id => "foo", call => \&scan); - -This hook is called after the scan hook has been run, as well as the -preprocess hook in scan mode. It is used to collect additional -metadata that depends on a first scan to have been performed already. - -The function is passed named parameters "page" and "content". Its return -value is ignored. - ### filter hook(type => "filter", id => "foo", call => \&filter); @@ -746,6 +740,8 @@ with no ".tmpl" extension. Template pages are normally looked for in the templates/ directory. If the page name starts with "/", a page elsewhere in the wiki can be used. +If the template is not found, or contains a syntax error, an error is thrown. + ### `template_depends($$;@)` Use this instead of `template()` if the content of a template is being @@ -1180,9 +1176,9 @@ sense to implement for all RCSs. It should examine the incoming changes, and do any sanity checks that are appropriate for the RCS to limit changes to safe file adds, -removes, and changes. If something bad is found, it should exit -nonzero, to abort the push. Otherwise, it should return a list of -files that were changed, in the form: +removes, and changes. If something bad is found, it should die, to abort +the push. Otherwise, it should return a list of files that were changed, +in the form: { file => # name of file that was changed @@ -1195,6 +1191,33 @@ files that were changed, in the form: The list will then be checked to make sure that each change is one that is allowed to be made via the web interface. +#### `rcs_preprevert($)` + +This is called by the revert web interface. It is passed a RCS-specific +change ID, and should determine what the effects would be of reverting +that change, and return the same data structure as `rcs_receive`. + +Like `rcs_receive`, it should do whatever sanity checks are appropriate +for the RCS to limit changes to safe changes, and die if a change would +be unsafe to revert. + +#### `rcs_revert(@)` + +This is called by the revert web interface. It is passed a named +parameter rev that is the RCS-specific change ID to revert. + +Addition named parameters: `message`, and `session` (optional). + +It should try to revert the specified rev, which includes committing +the reversion, and returns undef on _success_ and an error message +on failure. + +#### `rcs_showpatch(@)` + +This is passed a named parameter rev that is a RCS-specific +change ID. It should generate a diff-style patch showing the changes +made and return it. + ### PageSpec plugins It's also possible to write plugins that add new functions to