diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-07-10 00:19:35 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-07-10 00:19:35 -0400 |
commit | 73c7c4ebf71ab7d2e91197250b5025a9b085098c (patch) | |
tree | 74ebf20ebf82361dfb81112c8e9c138983c65305 /doc/plugins | |
parent | aa1f0080a81ac253ae4ff8822132327ee29fe835 (diff) |
document setup plugins
Diffstat (limited to 'doc/plugins')
-rw-r--r-- | doc/plugins/write.mdwn | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 5def4c679..4fd102bfd 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -570,7 +570,9 @@ destination file, as registered by `will_render`. Passed a page and an extension, returns the filename that page will be rendered to. -## Internal use pages +## Miscellaneous + +### Internal use pages Sometimes it's useful to put pages in the wiki without the overhead of having them be rendered to individual html files. Such internal use pages @@ -583,7 +585,7 @@ either on them with extreme caution), and are not matched by regular PageSpecs glob patterns, but instead only by a special `internal()` [[ikiwiki/PageSpec]]. -## RCS plugins +### RCS plugins ikiwiki's support for [[revision_control_systems|rcs]] also uses pluggable perl modules. These are in the `IkiWiki::RCS` namespace, for example @@ -595,7 +597,7 @@ See IkiWiki::RCS::Stub for the full list of functions. It's ok if See [[RCS_details|rcs/details]] for some more info. -## PageSpec plugins +### PageSpec plugins It's also possible to write plugins that add new functions to [[PageSpecs|ikiwiki/PageSpec]]. Such a plugin should add a function to the @@ -605,3 +607,18 @@ two parameters: The name of the page being matched, and the thing to match against. It may also be passed additional, named parameters. It should return a IkiWiki::SuccessReason object if the match succeeds, or an IkiWiki::FailReason object if the match fails. + +### Setup plugins + +The ikiwiki setup file is loaded using a pluggable mechanism. If you +look at the top of [[ikiwiki.setup]], it starts with +'use IkiWiki::Setup::Standard', and the rest of the file is passed to +that module's import method. + +It's possible to write other modules in the `IkiWiki::Setup::` namespace that +can be used to configure ikiwiki in different ways. These modules should, +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)` |