From 055179cb4cc9b8bc9b204e1a9f83b1f59e13824e Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 8 Dec 2007 17:40:50 -0500 Subject: * Finally implemented a simple per-page data storage mechanism for plugins, via the %pagestate hash. * Use pagestate in meta to detect potential redir loops. --- doc/todo/plugin_data_storage.mdwn | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'doc/todo') diff --git a/doc/todo/plugin_data_storage.mdwn b/doc/todo/plugin_data_storage.mdwn index 7078a6ed3..21e925b5b 100644 --- a/doc/todo/plugin_data_storage.mdwn +++ b/doc/todo/plugin_data_storage.mdwn @@ -66,3 +66,29 @@ 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. + + +--- + +New design: + +`%Ikiwiki::state` is an exported hash that stores per-page state. +Set with `$state{$page}{id}{key}=$value`. The `id` is the same `id` passed +to `hook()`. + +This is stored in the index like: + +src=foo.mdwn dest=bar.mdwn id_key=value [...] + +The underscore ensures that there's no conflict with ikiwiki's own +state variables. (Note that `id` and `key` need to be encoded here.) + +Plugins are reponsible for deleting old state info, though ikiwiki will +handle deleting it if a page is removed. + +Ikiwiki needs to know when it can drop state for plugins that are no longer +enabled. This is done via `hook()` -- if a plugin registers a hook +ikiwiki knows it's still active, and preserves the state for the hook id. +If not, that state will be dropped. + +[[done]]!! Now to use it.. -- cgit v1.2.3 J0@fasolo.debian.org/unread?h=master'>diff
path: root/tags/57/01/E1ktbLE-000EZd-J0@fasolo.debian.org/unread
diff options
context:
space:
mode:
Diffstat (limited to 'tags/57/01/E1ktbLE-000EZd-J0@fasolo.debian.org/unread')
-rw-r--r--tags/57/01/E1ktbLE-000EZd-J0@fasolo.debian.org/unread0
1 files changed, 0 insertions, 0 deletions
110.reportbug@deb007.xnr.fr/unread0
-rw-r--r--tags/a5/82/1752460.qodudrqKRv@a52je/debian0
-rw-r--r--tags/a5/82/1752460.qodudrqKRv@a52je/inbox0
-rw-r--r--tags/a5/82/1752460.qodudrqKRv@a52je/old0
-rw-r--r--tags/a5/82/200408121242.41860.axelb@skolelinux.no/skolelinux0
-rw-r--r--tags/a5/82/20080502110437.88CFB11B970@xayide.jones.dk/jones0
-rw-r--r--tags/a5/82/20080502110437.88CFB11B970@xayide.jones.dk/sys0
-rw-r--r--tags/a5/82/20161218000220.140EB4ADA@lxp5.free-owl.de/sys0
-rw-r--r--tags/a5/82/20161218000220.140EB4ADA@lxp5.free-owl.de/unread0
-rw-r--r--tags/a5/82/20170204200341.364DD51CF@lxp5.free-owl.de/sys0
-rw-r--r--tags/a5/82/20170204200341.364DD51CF@lxp5.free-owl.de/unread0
-rw-r--r--tags/a5/82/20170215061509.9CAA51C70B@jawa.homebase.dk/hb0
-rw-r--r--tags/a5/82/20170215061509.9CAA51C70B@jawa.homebase.dk/sys0
-rw-r--r--tags/a5/82/20170215061509.9CAA51C70B@jawa.homebase.dk/unread0
-rw-r--r--tags/a5/82/20171230090002.5996C8C0C@lxp5.free-owl.de/sys0
-rw-r--r--tags/a5/82/20171230090002.5996C8C0C@lxp5.free-owl.de/unread0
-rw-r--r--tags/a5/82/20210830182445.167527-1-marijn.suijten@somainline.org/unread0
-rw-r--r--tags/a5/82/242851610904021029r2f0b6edbkaf251116b6647799@mail.gmail.com/sugar0
-rw-r--r--tags/a5/82/4671dd0c0802120756n664325d4u84b00ebf6f328a66@mail.gmail.com/debian0
-rw-r--r--tags/a5/82/479B378E.6060604@kaospilot.dk/hb0
-rw-r--r--tags/a5/82/479B378E.6060604@kaospilot.dk/kp0
-rw-r--r--tags/a5/82/49140e38-a2a8-dc24-0730-a73dd5820d84@miosweb.mooo.com/debian0
-rw-r--r--tags/a5/82/49140e38-a2a8-dc24-0730-a73dd5820d84@miosweb.mooo.com/signed0
-rw-r--r--tags/a5/82/49140e38-a2a8-dc24-0730-a73dd5820d84@miosweb.mooo.com/unread0
-rw-r--r--tags/a5/82/99d6902d8e4ed68de4c011d618344485552002ea.camel@puri.sm/unread0
-rw-r--r--tags/a5/82/CABrpZ2Zb7Lsj00ULxG2FXAk7oLZBt6JQXc1-a7_7coy_aE=eUQ@mail.gmail.com/debian0
-rw-r--r--tags/a5/82/CAJF45PQAs7gzNVcbmxHxvjLEDhxJxS9Y1u7p93AuYz30D4sJnQ@mail.gmail.com/debian0
-rw-r--r--tags/a5/82/CAJF45PQAs7gzNVcbmxHxvjLEDhxJxS9Y1u7p93AuYz30D4sJnQ@mail.gmail.com/freedom0
-rw-r--r--tags/a5/82/CAMPXz=r2x5GUkfWBzdT6Dde9D0hr9eA79R_nrP9dxUXbeFx08A@mail.gmail.com/debian0
-rw-r--r--tags/a5/82/CAMPXz=r2x5GUkfWBzdT6Dde9D0hr9eA79R_nrP9dxUXbeFx08A@mail.gmail.com/unread0
-rw-r--r--tags/a5/82/E1nu62C-0002j0-QD@respighi.debian.org/debian0
-rw-r--r--tags/a5/82/E1nu62C-0002j0-QD@respighi.debian.org/inbox0
-rw-r--r--tags/a5/82/E1nu62C-0002j0-QD@respighi.debian.org/killed0
-rw-r--r--tags/a5/82/E1nu62C-0002j0-QD@respighi.debian.org/unread0
-rw-r--r--tags/a5/82/handler.s.B1013189.16556290168069.transcript@bugs.debian.org/debian0
-rw-r--r--tags/a5/82/handler.s.B1013189.16556290168069.transcript@bugs.debian.org/inbox0
-rw-r--r--tags/a5/82/handler.s.B1013189.16556290168069.transcript@bugs.debian.org/killed0
-rw-r--r--tags/a5/82/handler.s.B1013189.16556290168069.transcript@bugs.debian.org/unread0
-rw-r--r--tags/a5/82/handler.s.U927653.161320883810416.transcript@bugs.debian.org/debian0
-rw-r--r--tags/a5/82/handler.s.U927653.161320883810416.transcript@bugs.debian.org/inbox0
-rw-r--r--tags/a5/82/handler.s.U927653.161320883810416.transcript@bugs.debian.org/killed0
-rw-r--r--tags/a5/82/handler.s.U927653.161320883810416.transcript@bugs.debian.org/unread0
-rw-r--r--tags/a5/82/mailman.55.1590370173.2097.kpt11@lists.homebase.dk/hb0
-rw-r--r--tags/a5/82/mailman.55.1590370173.2097.kpt11@lists.homebase.dk/inbox0
-rw-r--r--tags/a5/82/mailman.55.1590370173.2097.kpt11@lists.homebase.dk/killed0
-rw-r--r--tags/a5/82/mailman.55.1590370173.2097.kpt11@lists.homebase.dk/unread0
-rw-r--r--tags/a5/82/v04003a00b3700cf7962c@%5b195.249.194.207%5d/inbox0
-rw-r--r--tags/a5/82/v04003a00b3700cf7962c@%5b195.249.194.207%5d/old0
50 files changed, 0 insertions, 0 deletions