HTML Purifier打破了SyntaxHighlighter

时间:2014-05-02 09:47:44

标签: ckeditor htmlpurifier syntaxhighlighter

我使用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这样做。

1 个答案:

答案 0 :(得分:1)

原因是brush:php不是HTML4规范的有效类名。我想你可以编写自己的类名验证器并使用http://htmlpurifier.org/docs/enduser-customize.html

覆盖内置函数

但更好的解决方案可能是在运行HTML Purifier之前运行语法高亮显示!