]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/write/external.mdwn
More info about the (possible) bug in the external plugin (RPC communication)
[git.ikiwiki.info.git] / doc / plugins / write / external.mdwn
index cffbed86c6544556c6ca919278c955e91339587d..a3fbe8a2cd0ade030ad38c01d042c596329bb089 100644 (file)
@@ -1,7 +1,7 @@
 External plugins are standalone, executable programs, that can be written
 in any language. When ikiwiki starts up, it runs the program, and
 External plugins are standalone, executable programs, that can be written
 in any language. When ikiwiki starts up, it runs the program, and
-communicates with it using [XML RPC][xmlrpc]. If you want to [[write]] an external
-plugin, read on..
+communicates with it using [XML RPC][xmlrpc]. If you want to [[write]] an
+external plugin, read on..
 
 [xmlrpc]: http://www.xmlrpc.com/
 
 
 [xmlrpc]: http://www.xmlrpc.com/
 
@@ -85,8 +85,8 @@ language as part of their XML RPC interface.
 
 XML RPC has a limitation that it does not have a way to pass
 undef/NULL/None. There is an extension to the protocol that supports this,
 
 XML RPC has a limitation that it does not have a way to pass
 undef/NULL/None. There is an extension to the protocol that supports this,
-but it is not yet available in the [[!cpan XML::RPC]] library used by
-ikiwiki.
+but it is not yet available in all versions of the [[!cpan XML::RPC]] library
+used by ikiwiki.
 
 Until the extension is available, ikiwiki allows undef to be communicated
 over XML RPC by passing a sentinal value, a hash with a single key "null"
 
 Until the extension is available, ikiwiki allows undef to be communicated
 over XML RPC by passing a sentinal value, a hash with a single key "null"
@@ -96,14 +96,13 @@ the sentinal.
 
 ## Function injection
 
 
 ## Function injection
 
-Some parts of ikiwiki are extensible by adding functions. For example, the
-RCS interface relies on plugins providing several IkiWiki::rcs_* functions.
+Some parts of ikiwiki are extensible by adding or overriding functions.
 It's actually possible to do this from an external plugin too. 
 
 It's actually possible to do this from an external plugin too. 
 
-To make your external plugin provide an `IkiWiki::rcs_update` function, for
+To make your external plugin override the `IkiWiki::formattime` function, for
 example, make an RPC call to `inject`. Pass it named parameters "name" and
 "call", where "name" is the name of the function to inject into perl (here
 example, make an RPC call to `inject`. Pass it named parameters "name" and
 "call", where "name" is the name of the function to inject into perl (here
-"Ikiwiki::rcs_update" and "call" is the RPC call ikiwiki will make whenever
+"Ikiwiki::formattime" 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
 that function is run.
 
 If the RPC call is memoizable, you can also pass a "memoize" parameter, set
@@ -134,7 +133,7 @@ large quantity of data conversion going on. In contrast, `preprocess` hooks
 are called generally rarely, and pass around minimal data.
 
 External plugins should avoid making RPC calls unnecessarily (ie, in a loop).
 are called generally rarely, and pass around minimal data.
 
 External plugins should avoid making RPC calls unnecessarily (ie, in a loop).
-Memorizing the results of appropriate RPC calls is one good way to minimize the
+Memoizing the results of appropriate RPC calls is one good way to minimize the
 number of calls.
 
 Injecting a replacement for a commonly called ikiwiki function
 number of calls.
 
 Injecting a replacement for a commonly called ikiwiki function