117 lines
5.1 KiB
PHP
117 lines
5.1 KiB
PHP
<?php
|
|
/**
|
|
* Ok, glad you are here
|
|
* first we get a config instance, and set the settings
|
|
* $config = HTMLPurifier_Config::createDefault();
|
|
* $config->set('Core.Encoding', $this->config->get('purifier.encoding'));
|
|
* $config->set('Cache.SerializerPath', $this->config->get('purifier.cachePath'));
|
|
* if ( ! $this->config->get('purifier.finalize')) {
|
|
* $config->autoFinalize = false;
|
|
* }
|
|
* $config->loadArray($this->getConfig());.
|
|
*
|
|
* You must NOT delete the default settings
|
|
* anything in settings should be compacted with params that needed to instance HTMLPurifier_Config.
|
|
*
|
|
* @link http://htmlpurifier.org/live/configdoc/plain.html
|
|
*/
|
|
|
|
return [
|
|
'encoding' => 'UTF-8',
|
|
'finalize' => true,
|
|
'cachePath' => storage_path('app/purifier'),
|
|
'cacheFileMode' => 0755,
|
|
'settings' => [
|
|
'default' => [
|
|
'HTML.Doctype' => 'HTML 4.01 Transitional',
|
|
'HTML.Allowed' => 'div[style],b,strong,i,em,u,a[href|title],ul,ol,li,p[style],br,span[style],img[width|height|alt|src],table[width|class],tr[bgcolor],td[style|colspan|rowspan|width],th[style|colspan|rowspan],thead,tfoot,tbody,blockquote,pre,s,strike,font[style|color],h1,h2,h3,h4,h5,h6',
|
|
//'CSS.AllowedProperties' => 'font,font-size,font-weight,font-style,font-family,text-decoration,padding-left,color,background-color,text-align',
|
|
'CSS.AllowedProperties' => 'font-weight,font-style,text-decoration,color,background-color,text-align,border,border-top,border-left,border-bottom,border-right',
|
|
'AutoFormat.AutoParagraph' => true,
|
|
'AutoFormat.RemoveEmpty' => true,
|
|
'URI.AllowedSchemes' => [
|
|
'http' => true,
|
|
'https' => true,
|
|
'mailto' => true,
|
|
'ftp' => true,
|
|
'nntp' => true,
|
|
'news' => true,
|
|
'tel' => true,
|
|
'data' => true,
|
|
],
|
|
],
|
|
'test' => [
|
|
'Attr.EnableID' => 'true',
|
|
],
|
|
'youtube' => [
|
|
'HTML.SafeIframe' => 'true',
|
|
'URI.SafeIframeRegexp' => '%^(http://|https://|//)(www.youtube.com/embed/|player.vimeo.com/video/)%',
|
|
],
|
|
'custom_definition' => [
|
|
'id' => 'html5-definitions',
|
|
'rev' => 1,
|
|
'debug' => false,
|
|
'elements' => [
|
|
// http://developers.whatwg.org/sections.html
|
|
['section', 'Block', 'Flow', 'Common'],
|
|
['nav', 'Block', 'Flow', 'Common'],
|
|
['article', 'Block', 'Flow', 'Common'],
|
|
['aside', 'Block', 'Flow', 'Common'],
|
|
['header', 'Block', 'Flow', 'Common'],
|
|
['footer', 'Block', 'Flow', 'Common'],
|
|
|
|
// Content model actually excludes several tags, not modelled here
|
|
['address', 'Block', 'Flow', 'Common'],
|
|
['hgroup', 'Block', 'Required: h1 | h2 | h3 | h4 | h5 | h6', 'Common'],
|
|
|
|
// http://developers.whatwg.org/grouping-content.html
|
|
['figure', 'Block', 'Optional: (figcaption, Flow) | (Flow, figcaption) | Flow', 'Common'],
|
|
['figcaption', 'Inline', 'Flow', 'Common'],
|
|
|
|
// http://developers.whatwg.org/the-video-element.html#the-video-element
|
|
['video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', [
|
|
'src' => 'URI',
|
|
'type' => 'Text',
|
|
'width' => 'Length',
|
|
'height' => 'Length',
|
|
'poster' => 'URI',
|
|
'preload' => 'Enum#auto,metadata,none',
|
|
'controls' => 'Bool',
|
|
]],
|
|
['source', 'Block', 'Flow', 'Common', [
|
|
'src' => 'URI',
|
|
'type' => 'Text',
|
|
]],
|
|
|
|
// http://developers.whatwg.org/text-level-semantics.html
|
|
['s', 'Inline', 'Inline', 'Common'],
|
|
['var', 'Inline', 'Inline', 'Common'],
|
|
['sub', 'Inline', 'Inline', 'Common'],
|
|
['sup', 'Inline', 'Inline', 'Common'],
|
|
['mark', 'Inline', 'Inline', 'Common'],
|
|
['wbr', 'Inline', 'Empty', 'Core'],
|
|
|
|
// http://developers.whatwg.org/edits.html
|
|
['ins', 'Block', 'Flow', 'Common', ['cite' => 'URI', 'datetime' => 'CDATA']],
|
|
['del', 'Block', 'Flow', 'Common', ['cite' => 'URI', 'datetime' => 'CDATA']],
|
|
],
|
|
'attributes' => [
|
|
['iframe', 'allowfullscreen', 'Bool'],
|
|
['table', 'height', 'Text'],
|
|
['td', 'border', 'Text'],
|
|
['th', 'border', 'Text'],
|
|
['tr', 'width', 'Text'],
|
|
['tr', 'height', 'Text'],
|
|
['tr', 'border', 'Text'],
|
|
],
|
|
],
|
|
'custom_attributes' => [
|
|
['a', 'target', 'Enum#_blank,_self,_target,_top'],
|
|
],
|
|
'custom_elements' => [
|
|
['u', 'Inline', 'Inline', 'Common'],
|
|
],
|
|
],
|
|
|
|
];
|