PHP的语法高亮显示拒绝在我安装Trac时在Wiki页面上工作。它在浏览源代码时工作得很好,但在Wiki中则不然。Javascript、C和Python语法高亮显示在Wiki中有效,但在PHP中无效。不幸的是我。
我在Ubuntu 10.04
上安装了Trac 0.11.7
。我的网络服务器是Apache 2.2.14
。
我已手动安装Pygments。运气不好。我已经更改了首选项中的分段主题。运气不好。
我在trac
和apache
日志中记录了绝对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';
}
?>
}}}
我把这个问题留在这里,以防其他人也有同样的问题,尽管我觉得自己有多愚蠢。