]> scripts.mit.edu Git - www/ikiwiki.git/blobdiff - doc/todo/need_global_renamepage_hook.mdwn
rename hook issues
[www/ikiwiki.git] / doc / todo / need_global_renamepage_hook.mdwn
index b7aa44880cbfc53b1f45b0f7c348f4c651973164..62e91eee40a8f5bbe5ec291962786ba7fe6a57e4 100644 (file)
@@ -25,7 +25,7 @@ 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`
+As a 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.
@@ -40,3 +40,43 @@ My proposal is thus:
 
 I'm of course volunteering to implement this, or anything related that
 would solve my problem. Hmmm? --[[intrigeri]]
+
+> I think it would be better to have a different hook that is called for
+> renames, since the two hook actions are very different (unlike the
+> preprocess hook, which does a very similar thing in scan mode).
+> 
+> Just calling it `rename` seems like a reasonable name, by analogy with
+> the `delete` and `change` hooks.
+> 
+> It might make sense to rename `renamepage` to `renamelink` to make it
+> clearer what it does. (I'm not very worried about this breaking things, at
+> this point.) --[[Joey]]
+
+>> In my `po` branch, I renamed `renamepage` to `renamelink`, and
+>> created a `rename` hook that is passed a reference to `@torename`.
+>> --[[intrigeri]]
+
+>>> As Joey highlights it on [[plugins/contrib/po]], it's too late to
+>>> merge such a change, as the 3.x plugin API is released and should
+>>> not be broken. I will thus keep the existing `renamepage` as it
+>>> is, and call `rename` the global hook I need. --[[intrigeri]]
+
+>>>> Done in my `po` branch. --[[intrigeri]]
+
+I think I see a problem in the rename hook. The hook is called
+before the plugin adds any subpages to the set of pages to rename.
+So, if the user choses to rename subpages, po will not notice
+they are moving, and will not move their po files.
+Perhaps the hooks should be moved to come after subpages are added.
+This would, though, mean that if the hook somehow decides to add
+entirely other pages to the list, their subpages would not be
+automatically added.
+
+I also have some qualms about the design of the hook. In particular,
+passing the mutable array reference probably makes it impossible
+to use from external plugins. Instead it could return any additional
+rename hashes it wants to add. Or, if the ability to modify existing
+hashes is desired, it could return the full set of hashes.
+
+--[[Joey]]