Some elements of
HTML5 can be
safely supported by ikiwiki. There are several differences between HTML4 and
HTML5.
In the origin/html
branch, there is an old work in progress to make
ikiwiki use html 4 instead of xhtml. If that could be brought forward and
finished then the plan has been to switch ikiwiki over to doing html 4.
I don't think it makes sense to try to make it support both xhtml and
html, it would complicate the code for no benefit.
I think that is the best route toward supporting html 5 as well. Get
ikiwiki doing html 4 first and the changes needed to get to 5 from there
should be small. Probably just changing some doctypes and a few other
small changes which could be kept in a branch, or even shipped in ikiwiki
mainline as an alternate set of templates. Some of the changes, like
supporting new html 5 tags in the htmlscrubber, can be done in mainline.
(Like was already done for the html 5 video and audio tags.)
This approach seems much more maintainable going foward than rolling a
html 5 branch immediatly and trying to keep that continually up-to-date
with mainline ikiwiki that is still using xhtml. --[[Joey]]
TODO Still need to merge origin/html with my html5 branch.
HTML5 Validation and t/html.t
validator.nu is the authorative HTML5 validator,
however it is almost impossible to sanely introduce as a build dependency
because of its insane Java requirements. :( I test locally via
cURL, though Debian packages cannot be built
with a network dependency.
In the future, hopefully ikiwiki can test for valid HTML5 using Relax NG
schema using a Debian package tool
rnv.
Issues
Time element
The time element ideally needs the datatime= attribute set by a template variable with what HTML5 defines as a valid datetime string.
As a workaround I use in my setup file:
timeformat => '%Y-%m-%d',
Header
Many of the header <span>
s should be proper header elements
See [[todo/Option_to_make_title_an_h1__63__]] for why not. --[[Joey]]
The header element requires a h1-h6 child, in order to validate. Hence in my html5 page templates, I've marked up page title with a h1.