The final `</div>` in [`recentchanges.tmpl`][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][validate] for more details. [tmpl]: http://git.ikiwiki.info/?p=ikiwiki;a=blob_plain;f=templates/recentchanges.tmpl;hb=HEAD [validate]: http://validator.w3.org/check?uri=http://ikiwiki.info/recentchanges/ - - - 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](http://jblevins.org/) - - - 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]]