我使用Caxditor的SyntaxHighlighter插件将代码插入到我的页面中。该插件使用< pre>标签包含代码,同时使用" brush"用于定义编程语言的类。我的问题是,在提交页面时,HTML Purifier正在从pre标签中剥离class属性,这有效地防止了语法高亮显示。
源代码来自:
<pre class="brush:php;">
<?php echo '<p>Hello World</p>'; ?>
</pre>
为:
<pre>
<?php echo '<p>Hello World</p>'; ?>
</pre>
我希望有一些神奇的设置可以阻止HTML Purifier这样做。
答案 0 :(得分:1)
原因是brush:php不是HTML4规范的有效类名。我想你可以编写自己的类名验证器并使用http://htmlpurifier.org/docs/enduser-customize.html
覆盖内置函数但更好的解决方案可能是在运行HTML Purifier之前运行语法高亮显示!