While most of the generated fossil output is valid xhtml, there are still several places that aren't.
These include not using & instead of a plain & when generating URLs in href attributes, using <br> and <hr> instead of <br /> and <hr />, using &nbsp; instead of &#160; and finally the occasional <img> instead of <img />.
The attached patch corrects these issues so that fossil can return valid application/xhtml+xml content.
<hr /><i>dmitry added on 2011-09-08 23:11:38 UTC:</i><br />
Please note that pages generated by Fossil has HTML5 doctype. HTML5 allows unclosed single tags such as <br>.
<hr /><i>jan.nijtmans added on 2012-11-06 09:05:14 UTC:</i><br />
Most of this patch just changes &nbsp; to &#160; which is just the same in html (not in xhmtl). The main part of the remaining has to do with the link
generation using the function style_submenu_element(): This function should generate links with all &'s escaped as &amp;'s, but it doesn't.
<p>
Wouldn't it be better to modify style_submenu_element() such that it escapes all &'s to &amp;? Then those (minor) html5 violations are fixed all at once.
<hr /><i>jan.nijtmans added on 2012-11-08 09:51:47 UTC:</i><br />
Suggested fix committed to branch "ticket-5ff2043c96".
I put many pages, such as "timeline" to the validator.w3.org, and
it reduced dramatically the number of errors. The current "timeline"
page dropped from 85 to only 4 errors. That's better than
changing many &'s to &amp;'s in the source code, as this
patch does. Changing only the href() and style_submenu_element()
functions has much more effect.
<hr /><i>jan.nijtmans added on 2012-11-08 10:31:49 UTC:</i><br />
<pre>Note that xhtml errors can result in real bugs. For
example have a look at the report list:
[http://www.fossil-scm.org/fossil/reportlist]
When logged in, this page contains links [copy] after each
report. This link works fine on Firefox, but it doesn't work
on Internet Explorer, and this time IE is not to blame ;-)
The suggested patch makes the [copy] link on
the reportlist page work on both Firefox and Internet Explorer.
The reason is that the link has the form:
http://www.fossil-scm.org/fossil/rptedit?rn=1&copy=1
But Internet Explorer interprets that as:
http://www.fossil-scm.org/fossil/rptedit?rn=1©=1
as &copy is short for the copyright sign (the ';'
is not mandatory in html5).
See: [http://www.w3.org/TR/html5/named-character-references.html#named-character-references],
and note that a "copy" named character reference exists without a final ';'.
</pre>
|