Trac PHP语法突出显示不在Wiki中工作

时间:2012-02-16 21:19:27

标签: php syntax-highlighting wiki trac pygments

PHP 拒绝 的语法突出显示在我的Trac安装中的Wiki页面上工作。它在浏览源代码时效果很好,但在Wiki中则不然。 Javascript,C和Python语法突出显示Wiki中的工作,但不支持PHP。祸了我。

我在Trac 0.11.7上安装了Ubuntu 10.04。我的网络服务器是Apache 2.2.14

我手动安装了Pygments。没运气。我已在偏好中更改了Pygments主题。没有运气。

我在tracapache日志中记录了0个错误。 Trac的日志记录级别设置为WARNING(并且Trac日志记录正在运行 - 我今天早些时候还有其他错误)。 Firebug在打开所有内容时也不显示任何错误(除了一个不相关的“未知属性'-moz-opacity'”CSS错误)。

查看页面的HTML源代码显示代码只是作为预先格式化的文本吐出。所有其他语法突出显示的代码块都没有<span>吨。

这是我在Wiki中使用的代码:

{{{
#!php
if(true)
{
    echo 'hi';
}
}}}

这就是结果:

<div class="code"><pre><span class="x">if(true)
{
    echo 'hi';
}
</span></pre></div>

请帮助: - )


关于我期望的一个例子,这里有一些有效的JS代码:

{{{
#!js
if(true)
{
    alert('hi');
}
}}}

这就是结果:

<div class="code"><pre><span class="k">if</span><span class="p">(</span><span class="kc">true</span><span class="p">)</span>
<span class="p">{</span>
    <span class="nx">alert</span><span class="p">(</span><span class="s1">'hi'</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>

2 个答案:

答案 0 :(得分:2)

我相信您可以通过添加<?php代码来解决此问题:

{{{
#!php
<?php
if(true)
{
    echo 'hi';
}
}}}

无论如何,这在我的Trac维基上对我有用。不过,我仍然无法确定这是否是预期的行为或错误。

答案 1 :(得分:1)

不知道为什么这总是发生在我身上。当然,我在发布问题后5分钟就知道了。

问题是我在php源代码中没有<?php ?>,因此语法高亮显示器将其视为HTML;就像PHP解析器一样。

C,Python和JS没有等价物,所以这就是为什么它们似乎在PHP没有时起作用。

此代码有效:

{{{
#!php
<?php
if(true)
{
    echo 'hi';
}
?>
}}}

我在这里留下这个问题,以防其他人有同样的问题,尽管我觉得有多愚蠢。