master
Joey Hess 2010-02-12 15:41:19 -05:00
parent 4a7558539c
commit 7b07286a6f
1 changed files with 10 additions and 5 deletions

View File

@ -31,7 +31,7 @@ is accomplished by calling various hooks provided by plugins.
### compiler ### 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 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 then called to allow manipulation of the list of pages that need to be
built. built.
@ -48,10 +48,11 @@ page had previously produced are removed.
### cgi ### 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. 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, * 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. by calling the `auth` hooks, sees that she is not yet logged in.
* The `sessioncgi` hooks are then called, and one of them, * The `sessioncgi` hooks are then called, and one of them,
@ -61,7 +62,9 @@ an example.
Alice is not signed in. Alice is not signed in.
* The [[signinedit]] plugin then launches the signin process. A signin * The [[signinedit]] plugin then launches the signin process. A signin
page is built by calling the `formbuilder_setup` hook. 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 * The [[openid]] plugin's `formbuilder` hook sees that an openid was
entered in the signin form, and redirects to Alice's openid provider. entered in the signin form, and redirects to Alice's openid provider.
* Alice's openid provider calls back to ikiwiki. The [[openid]] plugin * Alice's openid provider calls back to ikiwiki. The [[openid]] plugin
@ -70,7 +73,9 @@ an example.
a page. a page.
* Now all the `canedit` hooks are happy. The [[editpage]] plugin calls * Now all the `canedit` hooks are happy. The [[editpage]] plugin calls
`formbuilder_setup` to display the page editing form. `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 * The [[editpage]] plugin's `formbuilder` hook sees that the Save button
was pressed, and calls the `checkcontent` and `editcontent` hooks. was pressed, and calls the `checkcontent` and `editcontent` hooks.
Then it saves the page to disk, and branches into the compiler part Then it saves the page to disk, and branches into the compiler part