]> sipb.mit.edu Git - ikiwiki.git/blobdiff - doc/todo/plugin_data_storage.mdwn
* Add a calendar plugin, contributed by Manoj Srivastava.
[ikiwiki.git] / doc / todo / plugin_data_storage.mdwn
index 7d506333432e6687103df927666a2add5d829e59..7078a6ed35ce3f8d7bfdb3db46826b249240ebfa 100644 (file)
@@ -38,12 +38,16 @@ It may also be better to just punt on lists, and require plugins that need
 even lists to encode them. Especially since in many cases, `join(" ", @list)`
 will do. Er hmm, if I do that though, I'm actually back to a big global
 %page_data that plugins can just toss data into, arn't I? So maybe that's
-%the right approach after all, hmm..
+%the right approach after all, hmm.. Except that needing to decode/encode list
+data all the time when using it would quite suck, so no, let's not do that.
 
 Note that for the aggregate plugin to use this, it will need some changes:
 
 * guid data will need to be stored as part of the data for the page
-  that was aggregated from that guid
+  that was aggregated from that guid. Except, expired pages don't exit, but
+  still have guid data to store. Hmm. I suppose the guid data could be
+  considered to be associated with the page that contains the aggregate
+  directive then.
 * All feeds will need to be marked as removable in loadstate, and only
   unmarked if seen in preprocess. Then savestate will need to not only
   remove any feeds still marked as such, but do the unlinking of pages
@@ -54,3 +58,11 @@ If I do this, I might as well also:
 * Change the link= link= stuff to just links=link+link etc.
 * Change the delimiter from space to comma; commas are rare in index files,
   so less ugly escaped delimiters to deal with.
+
+--- 
+
+The [[plugins/calendar]] plugin could use plugin data storage to record
+which pages have a calendar for the current time. Then ensure they are
+rebuilt at least once a day. Currently, it needs a cron job to rebuild
+the *whole* wiki every day; with this enhancement, the cron job would only
+rebuild the few pages that really need it.