Help:Lint errors/multiline-html-table-in-list

Problem edit

Wikitext Output HTML
* <table>
<tr><td>foo</td></tr>
</table>
bar
<ul><li>
<table>
<tbody><tr><td>foo</td></tr>
</tbody></table>
<p>bar</p>
</li></ul>

As one can see, the expected result is different from the markup. The list extends to the rest of the page. A particularly bad example is this itwiki revision where multiple lists extend onto the rest of the page.

The problem occurs for tables that begin on lines that begin with markup encoded as ‎<li> elements:

  • asterisk (*) for bulleted lists (‎<ul>)
  • number sign (#) for numbered lists (‎<ol>)
  • colon (:) for indenting (‎<dl>)


Solution edit

The simplest fix would be to move the table outside the list. An alternative fix would be to make the HTML table be on the same line.

When this error is caused through a template, and that template appears in the Wikitext as a bulleted item or at the end of a bulleted or numbered item, often placing the template on a line by itself, without the bullet (coded as *), number (coded as #), or indenting (coded as :), will remove the error. For example, on the English Wikipedia, this is typical of {{Commons Category}} (and its alias {{Commonscat}}), {{Commons}}, and {{Authority control}}, among others.

English Wikipedia specific suggestions edit

In English Wikipedia, if {{Commons Category}} or {{Commons}} or any aliases thereof is listed in a "References" section, it should be moved down to the "External links" or equivalent section, creating the External links section if necessary. If one of these templates is listed in the "External links" or equivalent section, but not first, it should be placed first in the section. {{Authority control}} should be placed after External links and navigation templates, right before categories. These "shoulds" are not to solve the lint error, but to comply with w:WP:Page layout.

Navbox templates placed on the same line as preceding text can cause this error. To resolve the problem, insert a line break before the navbox template so that it is alone on its own line.

Why does this happen? edit

This is the same reason as in the Help:Extension:Linter/pwrap-bug-workaround case. The PHP parser does not have enough information to recognize HTML5 structures. It parses wikitext mostly line-by-line and can misnest HTML tags and relies on RemexHTML to fix it up.