summaryrefslogtreecommitdiff
path: root/doc/bugs/RecentChanges_contains_invalid_XHTML.mdwn
blob: 302d7b60562cb4302548bed354a48d1ebd740b3e (plain)

The final </div> in recentchanges.tmpl gets wrapped in a <p> tag for some reason, resulting in the following invalid XHTML at the end of the [[RecentChanges]] page

<p></div></p>

Also, there is a problem with the <img> tags generated by the smiley plugin which end up wrapped in a <pre> tag in the inline diff output. <img> tags is not allowed within a <pre> block. Maybe the smiley plugin should be disabled on [[RecentChanges]]?

See the validator output for more details.


I'll add this here since it's related. I also noticed that the meta tags for redirected pages need to be closed in order to be valid XHTML:

<meta http-equiv="refresh" content="10; URL=../ikiwiki/pagespec/">

I'm noticing these problems because I'm serving ikiwiki-generated content as application/xhtml+xml (as opposed to text/html) in order to include inline MathML. Any invalid XHTML causes Firefox to halt all processing and throw an error. —Jason Blevins


Here is a simple patch for the refresh problem. I haven't figured out what's causing the recentchanges bug yet.

diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
index 8a9a538..0afe1c3 100644
--- a/IkiWiki/Plugin/meta.pm
+++ b/IkiWiki/Plugin/meta.pm
@@ -186,7 +186,7 @@ sub preprocess (@) { #{{{
 			$value=encode_entities($value);
 		}
 		my $delay=int(exists $params{delay} ? $params{delay} : 0);
-		my $redir="<meta http-equiv=\"refresh\" content=\"$delay; URL=$value\">";
+		my $redir="<meta http-equiv=\"refresh\" content=\"$delay; URL=$value\" />";
 		if (! $safe) {
 			$redir=scrub($redir);
 		}

--[[JasonBlevins]]

[[tag patch]]