diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index ab3ccd7ae..90058199c 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -319,6 +319,10 @@ sub refresh () { #{{{ # 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)) { diff --git a/debian/changelog b/debian/changelog index a0d526f88..cfe168825 100644 --- a/debian/changelog +++ b/debian/changelog @@ -22,6 +22,7 @@ ikiwiki (2.55) UNRELEASED; urgency=low * 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 Mon, 21 Jul 2008 11:35:46 -0400 diff --git a/doc/bugs/htmlscrubber_undoes_email_obfuscation_by_Text::Markdown.mdwn b/doc/bugs/htmlscrubber_undoes_email_obfuscation_by_Text::Markdown.mdwn index b010a02b3..f193efc0c 100644 --- a/doc/bugs/htmlscrubber_undoes_email_obfuscation_by_Text::Markdown.mdwn +++ b/doc/bugs/htmlscrubber_undoes_email_obfuscation_by_Text::Markdown.mdwn @@ -28,3 +28,10 @@ The relevant commits are on the master branch of [my "fork" of ikiwiki on Github --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]] diff --git a/doc/bugs/page_is_not_rebuilt_if_it_changes_extension.mdwn b/doc/bugs/page_is_not_rebuilt_if_it_changes_extension.mdwn index d5719744e..e47be8d28 100644 --- a/doc/bugs/page_is_not_rebuilt_if_it_changes_extension.mdwn +++ b/doc/bugs/page_is_not_rebuilt_if_it_changes_extension.mdwn @@ -18,3 +18,10 @@ ikiwiki fails when trying to create a directory "a" where there is a file "a" (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]] diff --git a/doc/bugs/underlaydir_file_expose.mdwn b/doc/bugs/underlaydir_file_expose.mdwn index b8e84969c..c827c6dd8 100644 --- a/doc/bugs/underlaydir_file_expose.mdwn +++ b/doc/bugs/underlaydir_file_expose.mdwn @@ -1,9 +1,4 @@ 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.)