diff options
author | intrigeri <intrigeri@boum.org> | 2008-11-13 04:32:02 +0100 |
---|---|---|
committer | intrigeri <intrigeri@boum.org> | 2008-11-13 04:38:48 +0100 |
commit | 408d483dc2938af527100f2201ceea0efb5019af (patch) | |
tree | 59e638c10ed2aa03e98cc7e759c15af2d057b68c | |
parent | 699aa79c2e2dbec02a38ba6ff32e9c861ee9f7be (diff) | |
download | ikiwiki-408d483dc2938af527100f2201ceea0efb5019af.tar ikiwiki-408d483dc2938af527100f2201ceea0efb5019af.tar.gz |
reported my need for a global renamepage hook
Signed-off-by: intrigeri <intrigeri@boum.org>
-rw-r--r-- | doc/todo/need_global_renamepage_hook.mdwn | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/todo/need_global_renamepage_hook.mdwn b/doc/todo/need_global_renamepage_hook.mdwn new file mode 100644 index 000000000..b7aa44880 --- /dev/null +++ b/doc/todo/need_global_renamepage_hook.mdwn @@ -0,0 +1,42 @@ +As documented in [[plugins/write]], the current `renamepage` hook is +heavily oriented towards updating links in pages' content: it is run +once per page linking to the renamed page. + +That's fine, but it can't be used to trigger more general actions on +page rename. E.g. it won't be run at all if the page being renamed is +an orphan one. + +This is a real issue for the [[plugins/contrib/po]] development: what +I'm about to achieve is: + +- when a master page is renamed, the plugin takes notice of it (using + the `rename` hook), and later renames the translation pages + accordingly (in the `change` hook) +- when a master page is deleted, the plugin deletes its translations + (using the `delete` hook) + +With the current `renamepage` hook behavior, combining these two goals +has an annoying drawback: a plugin can't notice an orphan master page +has been renamed, so instead of renaming (and preserving) its +translations, it considers the oldpage as deleted, and deletes its +translations. Game over. + +It may seem like a corner case, but I want to be very careful when +deleting files automatically in `srcdir`, which is not always under +version control. + +As an sad workaround, I can still disable any deletion in `srcdir` +when it is not under version control. But I think ikiwiki deserves +a global `renamepage` hook that would be run once per rename +operation. + +My proposal is thus: + +- keep the documented `renamepage` hook as it is +- use something inspired by the trick `preprocess` uses: when `hook` + is passed an optional "global" parameter, set to a true value, the + declared `renamepage` hook is run once per rename operation, and is + passed named parameters: `src`, `srcfile`, `dest` and `destfile`. + +I'm of course volunteering to implement this, or anything related that +would solve my problem. Hmmm? --[[intrigeri]] |