如何配置HTMLPurifier保留li标签的data-list属性?
解决HTMLPurifier保留li元素data-list属性及原内容的配置方法
要同时保留li标签的data-list="bullet"属性和原内容(避免被替换成编号),需要调整HTMLPurifier的以下配置:
完整配置代码
$config = HTMLPurifier_Config::createDefault(); // 允许指定标签,并明确允许li携带data-list属性 $config->set('HTML.Allowed', 'b,i,strong,em,ol,ul,li[data-list],br'); // 关闭自动链接(保留原配置) $config->set('AutoFormat.Linkify', false); // 关闭有序列表自动编号生成,防止li原内容被替换 $config->set('AutoFormat.AutoNumber', false); // 明确允许li元素的data-list属性 $config->set('HTML.AllowedAttributes', 'li.data-list'); $purifier = new HTMLPurifier($config);
配置要点
- 允许data-list属性:在
HTML.Allowed中给li标签添加[data-list],或者通过HTML.AllowedAttributes直接指定li.data-list,两种方式都能让HTMLPurifier认可该属性为合法属性,不会被过滤。 - 保留li原内容:关闭
AutoFormat.AutoNumber配置,默认情况下HTMLPurifier会自动给<ol>内的<li>生成编号内容,覆盖原有的文本,关闭后就能保留原内容AAA。 - 无效元素清理:原HTML中的
<span class="ql-ui">不在允许标签列表中,会被自动过滤,这是符合配置预期的。
内容的提问来源于stack exchange,提问作者Jays
相关产品推荐
相关产品推荐

