bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#71685: [PATCH] fix shr rendering in tables without tbody


From: JD Smith
Subject: bug#71685: [PATCH] fix shr rendering in tables without tbody
Date: Thu, 20 Jun 2024 15:15:32 -0400

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 | |
| ---  --   |
 ---------  


Attachment: shr_fix_tbody.patch
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]