# check for added or removed pages
foreach my $file (@files) {
my $page=pagename($file);
+ if (exists $pagesources{$page} && $pagesources{$page} ne $file) {
+ # the page has changed its type
+ $forcerebuild{$page}=1;
+ }
$pagesources{$page}=$file;
if (! $pagemtime{$page}) {
if (isinternal($page)) {
* Split out error messages from editpage.tmpl into several separate
templates.
* attachment: Do not escape _ when determining attachment filenames.
+ * Rebuild pages that change their type. (Gabriel McManus)
-- Joey Hess <joeyh@debian.org> Mon, 21 Jul 2008 11:35:46 -0400
--Gabriel.
[github]: http://github.com/gmcmanus/ikiwiki/
+
+> Thanks for coming up with a patch, but overriding
+> `Text::Markdown::_EncodeEmailAddress` gets into its internals more than
+> I'm comfortable with.
+>
+> It would probably be best to add an option to [[cpan Text;:Markdown]] to
+> let the email address munging be disabled. --[[Joey]]
(or vice versa).
The same problem occurs if both "a" and "a.mdwn" exist in the wiki.
+
+> Thank you for looking into it!
+>
+> On the use of forcerebuild, I think it's acceptable; plugins that unset
+> it would break other plugins that set it, too.
+>
+> [[cherry-picked|done]] --[[Joey]]
If a file in the srcdir is removed, exposing a file in the underlaydir,
-ikiwiki will not notice the change and rebuild it until the file in the
-underlaydir gets a mtime newer than the mtime the removed file had.
-
-Relatedly, if there are two files with different extensions that build a
-page with the same name, in a directory, ikiwiki will update the page
-whenever either changes, using the changed one as the source. But if that
-most recently changed one is removed, it won't rebuild the page using the
-older one as the source.
+ikiwiki will notice the removal and delete the page from the destdir. The
+page from the underlay will not be built. (However, it will be if the wiki
+gets rebuilt.)