Trac PHP语法高亮显示在Wiki中不起作用


Trac PHP Syntax Highlighting not working in Wiki

PHP的语法高亮显示拒绝在我安装Trac时在Wiki页面上工作。它在浏览源代码时工作得很好,但在Wiki中则不然。Javascript、C和Python语法高亮显示在Wiki中有效,但在PHP中无效。不幸的是我。

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

我已手动安装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>

我相信您可以通过包含<?php标签来解决此问题:

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

无论如何,这在我的Trac维基上对我来说是有效的。不过,我仍然无法确定这是有意的行为还是错误。

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

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

C、 Python和JS没有等价物,所以这就是为什么当PHP没有时它们似乎可以工作的原因。

此代码有效:

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

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