Twig、输出转义和语法高亮JS插件



我正在努力解决以下问题:我想在我的页面上包含一些代码示例。它们主要是php,但也有htmljs

我最好的选择是使用一些基于js的语法高亮器。我选择SyntaxHighlighter,因为很多人在so和其他网站上推荐它。

但输出在树枝中逃逸怎么办?当然,默认的转义会导致代码显示漂亮的转义,但这并不能正常工作。使用|raw来完成这项工作会导致另一个显而易见的问题:如果显示html,它会打断页面;如果显示javascript,它会破坏脚本。

另一个问题是,我需要转义的所有输出都是混合的,例如:

(some text, with html formatting)
<code class="someclass">
(block of code)
</code>
(some another text)
<code class="anotherclass">
(another block of code)
</code>

有了这些事实,我想——让我们为Twig编写自己的过滤器吧!这听起来很棒,但即使我能让它运行,我也无法让它按我想要的方式运行。

我想——我为什么要重新发明轮子?Twig和Symfony2已经退出多年了,可能其他人已经解决了这个问题,并以一种安全的方式做得很好。

我正在寻找四种东西中的一种:

  1. 自定义分支过滤器来处理此问题,或者
  2. 更好的语法着色脚本,将处理Twig转义的输出,或
  3. 其他解决方案,或
  4. 任何有用的提示

看看这本手册:

http://isometriks.com/geshi-symfony2-and-twig-extensions

它对我有效。

最新更新