【问题标题】:HTML Purifier is breaking SyntaxHighlighterHTML Purifier 正在打破 SyntaxHighlighter
【发布时间】:2014-05-02 09:47:44
【问题描述】:

我正在使用 CKEditor 的 SyntaxHighlighter 插件将代码插入我的页面。该插件使用

 标签来包含代码,同时使用“画笔”类来定义编程语言。我的问题是,在提交页面时,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 这样做。

【问题讨论】:

  • 只是想补充一点 &lt;pre class="brush"&gt; 不会被更改。

标签: ckeditor htmlpurifier syntaxhighlighter


【解决方案1】:

原因是根据 HTML4 规范,brush:php 不是一个有效的类名。我想你可以编写自己的类名验证器并使用 http://htmlpurifier.org/docs/enduser-customize.html 覆盖内置函数

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-24
    • 2010-11-15
    • 2010-09-27
    • 2013-07-15
    • 2016-08-17
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多