diff --git a/libs/html5purifier.php b/libs/html5purifier.php
index 65d4972..283a272 100644
--- a/libs/html5purifier.php
+++ b/libs/html5purifier.php
@@ -27,7 +27,7 @@ function load_html5purifier() {
$config->set('URI.SafeIframeRegexp', '/.+/');
// Rule:
not allowed.
- $config->set('HTML', 'ForbiddenElements', array('center', 'font'));
+ $config->set('HTML', 'ForbiddenElements', array('font', 'center', 'br'));
// Rule: remove empty elements.
$config->set('AutoFormat', 'RemoveEmpty', true);
@@ -35,7 +35,7 @@ function load_html5purifier() {
$config->set('AutoFormat', 'AutoParagraph', true);
// Set some HTML5 properties
- $config->set('HTML.DefinitionID', 'html5-definitions'); // unqiue id
+ $config->set('HTML.DefinitionID', 'html5-definitions'); // unique id
$config->set('HTML.DefinitionRev', 1);
if ($def = $config->maybeGetRawHTMLDefinition()) {
@@ -52,19 +52,38 @@ function load_html5purifier() {
// http://developers.whatwg.org/grouping-content.html
$def->addElement('figure', 'Block', 'Optional: (figcaption, Flow) | (Flow, figcaption) | Flow', 'Common');
$def->addElement('figcaption', 'Inline', 'Flow', 'Common');
- // http://developers.whatwg.org/the-video-element.html#the-video-element
- $def->addElement('video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', array(
- 'src' => 'URI',
- 'type' => 'Text',
- 'width' => 'Length',
- 'height' => 'Length',
- 'poster' => 'URI',
- 'preload' => 'Enum#auto,metadata,none',
- 'controls' => 'Bool',
+ // https://html.spec.whatwg.org/dev/media.html#the-video-element
+ $def->addElement('video', 'Block', 'Flow', 'Common', array(
+ 'controls' => 'Bool',
+ 'height' => 'Length',
+ 'poster' => 'URI',
+ 'preload' => 'Enum#auto,metadata,none',
+ 'src' => 'URI',
+ 'width' => 'Length',
));
- $def->addElement('source', 'Block', 'Empty', 'Common', array(
- 'src' => 'URI',
- 'type' => 'Text',
+ $def->getAnonymousModule()->addElementToContentSet('video', 'Inline');
+ // https://html.spec.whatwg.org/dev/media.html#the-audio-element
+ $def->addElement('audio', 'Block', 'Flow', 'Common', array(
+ 'controls' => 'Bool',
+ 'preload' => 'Enum#auto,metadata,none',
+ 'src' => 'URI',
+ ));
+ $def->getAnonymousModule()->addElementToContentSet('audio', 'Inline');
+ // https://html.spec.whatwg.org/dev/embedded-content.html#the-source-element
+ $def->addElement('source', false, 'Empty', 'Common', array(
+ 'media' => 'Text',
+ 'sizes' => 'Text',
+ 'src' => 'URI',
+ 'srcset' => 'Text',
+ 'type' => 'Text',
+ ));
+ // https://html.spec.whatwg.org/dev/media.html#the-track-element
+ $def->addElement('track', false, 'Empty', 'Common', array(
+ 'kind' => 'Enum#captions,chapters,descriptions,metadata,subtitles',
+ 'src' => 'URI',
+ 'srclang' => 'Text',
+ 'label' => 'Text',
+ 'default' => 'Bool',
));
// http://developers.whatwg.org/text-level-semantics.html
$def->addElement('s', 'Inline', 'Inline', 'Common');