X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/27c1595cec8606f44d2ec33989daca70cab7d22f..ae4dccc1beffa5bd03bf6284f476bbf83d5e6fe5:/doc/plugins/write/external.mdwn?ds=sidebyside diff --git a/doc/plugins/write/external.mdwn b/doc/plugins/write/external.mdwn index ca30dd229..e699e43e1 100644 --- a/doc/plugins/write/external.mdwn +++ b/doc/plugins/write/external.mdwn @@ -8,6 +8,8 @@ written in perl, but is intended to be an example of how to write an external plugin in your favorite programming language. Wow us at how much easier you can do the same thing in your favorite language. ;-) +[[toc ]] + ## How external plugins use XML RPC While XML RPC is typically used over http, ikiwiki doesn't do that. @@ -78,6 +80,9 @@ example, make an RPC call to `inject`. Pass it named parameters "name" and "Ikiwiki::rcs_update" and "call" is the RPC call ikiwiki will make whenever that function is run. +If the RPC call is memoizable, you can also pass a "memoize" parameter, set +to 1. + ## Limitations of XML RPC Since XML RPC can't pass around references to objects, it can't be used @@ -112,7 +117,8 @@ number of calls. Injecting a replacement for a commonly called ikiwiki function could result in a lot more RPC calls than expected and slow eveything down. `pagetitle`, for instance, is called about 100 times -per page build. +per page build. Whenever possible, you should tell ikiwiki to memoize +injected functions. In general, use common sense, and your external plugin will probably perform ok.