summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kodama.kitenet.net>2008-03-21 15:12:15 -0400
committerJoey Hess <joey@kodama.kitenet.net>2008-03-21 15:12:15 -0400
commitca8852b434dae02b271ba2a1dddadfdf56ea3320 (patch)
treebee601e18e83d396c1fd705cb62b856d29c0dce9
parent17dc5df1f5d1068ea0d18bc0bd1c75dc9ebeb65a (diff)
external: Work around XML RPC's lack of support for null by passing a special sentinal value.
-rw-r--r--debian/changelog2
-rw-r--r--doc/plugins/write/external.mdwn13
2 files changed, 15 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog
index 2169f310d..1b046b20c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -59,6 +59,8 @@ ikiwiki (2.41) UNRELEASED; urgency=low
* inline: Crazy optimisation to work around slow markdown.
* Precompile pagespecs, about 10% overall speedup.
* Changed to a binary index file, written using Storable, for speed.
+ * external: Work around XML RPC's lack of support for null by passing
+ a special sentinal value.
-- martin f. krafft <madduck@debian.org> Sun, 02 Mar 2008 17:46:38 +0100
diff --git a/doc/plugins/write/external.mdwn b/doc/plugins/write/external.mdwn
index 4492cd0da..bda34b771 100644
--- a/doc/plugins/write/external.mdwn
+++ b/doc/plugins/write/external.mdwn
@@ -79,6 +79,19 @@ Other languages might not find it so easy. If not, it might be a good idea
to convert these named parameters into something more natural for the
language as part of their XML RPC interface.
+## undef
+
+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.
+
+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"
+with a value of an empty string. External plugins that need to communicate
+null values to or from ikiwiki will have to translate between undef and
+the sentinal.
+
## Function injection
Some parts of ikiwiki are extensible by adding functions. For example, the