### compiler
-As a compiler, starts by calling the `refresh` hook. Then it checks
+As a compiler, ikiwiki starts by calling the `refresh` hook. Then it checks
the wiki's source to find new or changed pages. The `needsbuild` hook is
then called to allow manipulation of the list of pages that need to be
built.
### cgi
-The flow between hooks when ikiwiki is run as a cgi is best illistrated by
+The flow between hooks when ikiwiki is run as a cgi is best illustrated by
an example.
-* *Alice browses to a page and clicks Edit.*
+Alice browses to a page and clicks Edit.
+
* Ikiwiki is run as a cgi. It assigns Alice a session cookie, and,
by calling the `auth` hooks, sees that she is not yet logged in.
* The `sessioncgi` hooks are then called, and one of them,
Alice is not signed in.
* The [[signinedit]] plugin then launches the signin process. A signin
page is built by calling the `formbuilder_setup` hook.
-* *Alice signs in with her openid.*
+
+Alice signs in with her openid.
+
* The [[openid]] plugin's `formbuilder` hook sees that an openid was
entered in the signin form, and redirects to Alice's openid provider.
* Alice's openid provider calls back to ikiwiki. The [[openid]] plugin
a page.
* Now all the `canedit` hooks are happy. The [[editpage]] plugin calls
`formbuilder_setup` to display the page editing form.
-* *Alice saves her change to the page.*
+
+Alice saves her change to the page.
+
* The [[editpage]] plugin's `formbuilder` hook sees that the Save button
was pressed, and calls the `checkcontent` and `editcontent` hooks.
Then it saves the page to disk, and branches into the compiler part
describing the option. There can also be an item named "plugin", which
describes the plugin as a whole. For example:
- return
+ return
plugin => {
description => "description of this plugin",
safe => 1,
page will be updated whenever anything matching the PageSpec is modified.
This can be overridden by passing a `deptype` value as the third parameter.
-#### `pagespec_match($$;@)`
+### `pagespec_match($$;@)`
Passed a page name, and [[ikiwiki/PageSpec]], returns a true value if the
[[ikiwiki/PageSpec]] matches the page.
If multiple types are specified, they are combined.
-#### `bestlink($$)`
+### `bestlink($$)`
Given a page and the text of a link on the page, determine which
existing page that link best points to. Prefers pages under a
goes down the directory tree to the base looking for matching
pages, as described in [[ikiwiki/SubPage/LinkingRules]].
-#### `htmllink($$$;@)`
+### `htmllink($$$;@)`
Many plugins need to generate html links and add them to a page. This is
done by using the `htmllink` function. The usual way to call
This is the standard gettext function, although slightly optimised.
+### `ngettext`
+
+This is the standard ngettext function, although slightly optimised.
+
### `urlto($$;$)`
Construct a relative url to the first parameter from the page named by the