Manual:$wgUseTidy
File:OOjs UI icon alert-destructive.svg | <translate> This feature was removed from MediaWiki core in version <tvar name=ver>1.33.0</tvar>.</translate> <translate> Please see <tvar name=page>$wgTidyConfig</tvar> for an alternative way to use this feature.</translate> |
<translate> Tidy</translate>: $wgUseTidy | |
---|---|
Use tidy to make sure HTML output is sane. |
|
<translate> Introduced in version:</translate> | 1.3.0 |
<translate> Deprecated in version:</translate> | 1.26.0 (Gerrit change 235401; git #2c6c954e) |
<translate> Removed in version:</translate> | 1.33.0 (Gerrit change 467972; git #6db35b3c) |
<translate> Allowed values:</translate> | (boolean) |
<translate> Default value:</translate> | false |
<translate> Other settings:</translate> <translate> Alphabetical</translate> | <translate> By function</translate> |
Details
Use "HTML tidy" to make sure HTML output is sane.
HTML tidy is a free tool that fixes broken HTML. See w:HTML tidy and http://www.w3.org/People/Raggett/tidy/
You may wish to setup this tool, and set $wgUseTidy=true, to ensure that the wiki outputs reasonably clean and compliant HTML, even when malicious or foolish users add corrupt/badly formatted HTML to wiki pages.
Note that MediaWiki already does some built-in checks and corrections to user's HTML, and limits the range of html tags and attributes which can be used (unless you set $wgRawHtml =true
Dangerous!)
Limitations are described at meta:Help:HTML in wikitext.
The logic for this is found in includes/Sanitizer.php.
As such, you may decide that running HTML tidy over the output is not necessary.
[[Link|<div>Text</div>]]
will not actually produce a clickable link. There are several dozen particular bugs identified that are likely never to be fixed (see <translate> task <tvar name=1>T4542</tvar></translate> and its list of blockers). If you enable Tidy, you're in for a world of hurt.Configuration
The location of the tidy configuration file can be set using $wgTidyConf - before MediaWiki 1.10, this was required. In later versions, a working default is provided.
However, this may not always work. See $wgTidyInternal for some more installation information.
Effects
Tidy is still required to mix wiki table and html table syntax, as well as simple wikicode and html-style markup.
example | code | Parser without Tidy | Tidy |
---|---|---|---|
Mixed nested tags. | {|
|| foo
<tr><td>bar</td></tr>
|}
|
<table>
<tr>
<td> foo
<p><tr><td>bar</td></tr></p>
</td></tr></table>
|
<table>
<tr><td>foo</td></tr>
<tr><td>bar</td></tr>
</table>
|
Mixed open/close tags. | '''foo</b>
|
<b>foo</b></b>
|
<b>foo</b>
|
Definition list nesting | ; hi
:# one
|
<dl><dt> hi
<ol><li> one</li></ol>
</dt></dl>
|
<dl><dt>hi</dt><dd>
<ol><li>one</li></ol>
</dd></dl>
|
Tidy can correct most bad HTML, which can be bad user input like
<table><tr></td></table>
or conflicting or badly written extensions (and even some bugs in the core software).
However, it does not resolve all strict XHTML validation issues, such as duplicate xml ID attribute values, or IDs starting with numbers.