aboutsummaryrefslogtreecommitdiffstats
path: root/library/HTMLPurifier/ConfigSchema/schema/AutoFormat.RemoveEmpty.txt
blob: 34657ba47b15e7980ff2fcd80f7b2ad2807ef6ab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
AutoFormat.RemoveEmpty
TYPE: bool
VERSION: 3.2.0
DEFAULT: false
--DESCRIPTION--
<p>
  When enabled, HTML Purifier will attempt to remove empty elements that
  contribute no semantic information to the document. The following types
  of nodes will be removed:
</p>
<ul><li>
    Tags with no attributes and no content, and that are not empty
    elements (remove <code>&lt;a&gt;&lt;/a&gt;</code> but not
    <code>&lt;br /&gt;</code>), and
  </li>
  <li>
    Tags with no content, except for:<ul>
      <li>The <code>colgroup</code> element, or</li>
      <li>
        Elements with the <code>id</code> or <code>name</code> attribute,
        when those attributes are permitted on those elements.
      </li>
    </ul></li>
</ul>
<p>
  Please be very careful when using this functionality; while it may not
  seem that empty elements contain useful information, they can alter the
  layout of a document given appropriate styling. This directive is most
  useful when you are processing machine-generated HTML, please avoid using
  it on regular user HTML.
</p>
<p>
  Elements that contain only whitespace will be treated as empty. Non-breaking
  spaces, however, do not count as whitespace. See
  %AutoFormat.RemoveEmpty.RemoveNbsp for alternate behavior.
</p>
<p>
  This algorithm is not perfect; you may still notice some empty tags,
  particularly if a node had elements, but those elements were later removed
  because they were not permitted in that context, or tags that, after
  being auto-closed by another tag, where empty. This is for safety reasons
  to prevent clever code from breaking validation. The general rule of thumb:
  if a tag looked empty on the way in, it will get removed; if HTML Purifier
  made it empty, it will stay.
</p>
--# vim: et sw=4 sts=4