From d10e62f955839a3232b1107b17cfa51568c8aee3 Mon Sep 17 00:00:00 2001 From: Louis Date: Thu, 17 Jul 2014 12:27:33 +0200 Subject: [PATCH] Question --- .../how_to_have_a_plugin_deteling_a_file.mdwn | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 doc/forum/how_to_have_a_plugin_deteling_a_file.mdwn diff --git a/doc/forum/how_to_have_a_plugin_deteling_a_file.mdwn b/doc/forum/how_to_have_a_plugin_deteling_a_file.mdwn new file mode 100644 index 000000000..ea29555e4 --- /dev/null +++ b/doc/forum/how_to_have_a_plugin_deteling_a_file.mdwn @@ -0,0 +1,18 @@ +[[!meta title="How to have a plugin delete a file?"]] + +When using the [[plugins/contrib/jscalendar]] plugin, it creates in the +[[plugins/transient]] directory some files (a bit like the +[[plugins/recentchanges]] plugin does). When the calendar that triggered +creation of this file is removed, I would like to remove the corresponding +page as well, but I cannot, because I get the following error. + + internal error: jscalendar/90cde8dfad6413813b324a15ae2d1d95041aedd69e7be36c02b0cd4a58c4af73.jscalendar cannot be found in or underlay + +My guess is that: + +* the page is stored, internally, in some list of pages to render (as it depends on the page containing the calendar that was just deleted); +* my plugin delete this page (using `IkiWiki::prune()` or `unlink()`, in the `rendered()` or `needsbuild()` hook); +* IkiWiki tries to render the page, but cannot (since I just deleted it), and throws the error. + +My question is: How can I tell IkiWiki that I *deleted* this page, and that it is no longer necessary to render it? Is there a hook in which I can safely do this? + -- 2.44.0