【发布时间】:2014-02-20 07:55:07
【问题描述】:
我正在努力解决以下问题:我想在我的页面上包含一些代码示例。他们大多是php,但也有html和js。
我最好的选择是使用一些基于 js 的语法荧光笔。我选择SyntaxHighlighter,因为很多人在 SO 和其他网站上推荐这个。
但是 twig 中的输出转义怎么办?当然,默认转义会导致代码完美地转义,但这不能正常工作。使用|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 已经存在多年了,可能其他人已经解决了这个问题,并且做得很好,安全。
我正在寻找以下四件事之一:
- 自定义树枝过滤器来处理此问题,或
- 更好的语法着色脚本,可以处理由 Twig 转义的输出,或者
- 其他一些解决方案,或者
- 任何有用的提示。
【问题讨论】:
-
有
{% verbatim %}标签,也许这就是你要找的(?)twig.sensiolabs.org/doc/tags/verbatim.html -
是和不是。请参阅我的变量内容示例 (text-code-text-code) - 只有代码应该被转义。 jnunez 提供了有趣的答案,我会试一试。
标签: php jquery symfony twig syntax-highlighting