2

在我安装的 Trac 中,PHP 的语法突出显示拒绝在 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>
4

2 回答 2

2

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

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

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

于 2012-02-16T21:27:45.437 回答
1

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

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

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

此代码有效:

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

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

于 2012-02-16T21:28:22.333 回答