]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/plugins/write/external.mdwn
* external: Add getargv and setargv methods to allow access to ikiwiki's
[ikiwiki.git] / doc / plugins / write / external.mdwn
index 0abc9b0a0d791eb3448dd11664d7b065101b88b6..2ee841e612d149dbddf3036f2474c5ff1803609c 100644 (file)
@@ -9,8 +9,7 @@ external plugin in your favorite programming language. Wow us at how much
 easier you can do the same thing in your favorite language. ;-)
 
 There's now a second external plugin, the [[rst]] plugin, written in
-python. (Could someone convert it into a python library that can be used by
-other plugins?)
+python. It uses a `proxy.py`, a helper library for ikiwiki python plugins.
 
 [[toc ]]
 
@@ -49,6 +48,14 @@ to access any such global hash. To get the "url" configuration value,
 call `getvar("config", "url")`. To set it, call 
 `setvar("config", "url", "http://example.com/)`.
 
+The `%pagestate` is a special hash with a more complex format. To access
+it, external plugins can use the `getstate` and `setstate` RPCs. To access
+stored state, call `getstate("page", "id", "key")`, and to store state,
+call `setstate("page", "id", "key", "value")`.
+
+To access ikiwiki's ARGV, call `getargv()`. To change its ARGV, call
+`setargv(value)`.
+
 ## Notes on function parameters
 
 The [[plugin_interface_documentation|write]] talks about functions that take
@@ -95,9 +102,6 @@ with functions that take or return such references. That means you can't
 FormBuilder perl objects), or use it to call `template()` (which returns a
 perl HTML::Template object).
 
-Also. the `getopt` hook doesn't work, as ARGV is not available to the external
-plugin.
-
 ## Performance issues
 
 Since each external plugin is a separate process, when ikiwiki is