Wiki tables - semantic <thead> and <tfoot> tags
Petko Yotov <[email protected]> Fri, 20 Feb 2026 21:52:55 +0100
| Newsgroups | gmane.comp.web.wiki.pmwiki.user |
|---|---|
| Message-ID | <[email protected]> |
I plan to add automatic <thead> and <tfoot> elements to wiki tables for the next version. These are only applied if all cells in the top or bottom row(s) are <th> cells, either in simple tables with "||!" or with (:head:) table directives. Until now, PmWiki made tables without semantic <thead>, <tbody>, and <tfoot> elements, and browsers transformed this into one <tbody> element with all rows in it. This made tables more complex to style, sort, and filter, and recipes needed to add their own code to create the headers and footers. The new feature considers the top rows that "contain only <th> cells" a header, and moves them into a semantic <thead> element. There may be zero or more such rows. Same for the bottom rows of the table that contain only <th> cells, these rows go into a semantic <tfoot> element which will not be hidden when sorting or filtering. If a row has both <th> and <td> cells, or only <td> cells, it will not be moved to a header or footer. This will done by the PmWiki core JavaScript utilities on page load. It is an adaptation of the Sortable tables code (which already did this for sortable tables), will now be available to all tables that match the conditions. Any custom JavaScript event listeners from interactive recipes should be preserved. If you're using specific local CSS targeting the first row, you may want to check this, potentially replacing the selector, if appropriate: tr:first-child() with: thead tr:first-child() Feel free to download and test the new feature and please let me know if there are any problems that I may have not anticipated. Petko