GNU bug report logs -
#71685
[PATCH] fix shr rendering in tables without tbody
Previous Next
Reported by: JD Smith <jdtsmith <at> gmail.com>
Date: Thu, 20 Jun 2024 19:16:01 UTC
Severity: normal
Tags: patch
Fixed in version 30.1
Done: Stefan Kangas <stefankangas <at> gmail.com>
Bug is archived. No further changes may be made.
Full log
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
It is very common for HTML tables to include a header (<thead>) and/or footer (<tfoot>) without using <tbody>. Modern browsers simply supply an implicit <tbody>..</tbody> around all the unparented rows in a table. `shr' does not handle this common case correctly. Below is an example with <thead> but not <tbody>. It prints the header, but then subsumes it again inside the derived body, printing the header again in a single cell.
The relevant function which should handle this is `shr--fix-tbody'. The included patch to this function simply avoids including `thead` and `tfoot` children in the implicit body.
(let ((shr-table-vertical-line ?|)
(shr-table-horizontal-line ?-))
(shr-insert-document
(with-temp-buffer
(insert "<table>
<thead><tr><th>A</th><th>B</th></tr></thead>
<tr><td>1</td><td>2</td></tr>
<tr><td>3</td><td>4</td></tr>
</table>")
(libxml-parse-html-region))))
---------
| --- -- |
||A |B | |
| --- -- |
||AB | |
| --- -- |
||1 |2 | |
| --- -- |
||3 |4 | |
| --- -- |
---------
[shr_fix_tbody.patch (application/octet-stream, attachment)]
This bug report was last modified 1 year and 33 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.