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

Posted

技术标签:

【中文标题】Trac PHP 语法高亮在 Wiki 中不起作用【英文标题】:Trac PHP Syntax Highlighting not working in Wiki 【发布时间】:2012-02-16 21:19:26 【问题描述】:

php 的语法高亮显示拒绝 在我安装 Trac 时在 Wiki 页面上工作。它在浏览源代码时运行良好,但在 Wiki 中却不行。 javascript、C 和 Python 语法高亮在 Wiki 中有效,但在 PHP 中无效。不幸的是我。

我在Ubuntu 10.04 上安装了Trac 0.11.7。我的网络服务器是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>

【问题讨论】:

【参考方案1】:

我相信您可以通过添加&lt;?php 标签来解决此问题:


#!php
<?php
if(true)

    echo 'hi';


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

【讨论】:

值得一提的是,语法高亮仅在 Trac 安装了某些额外的软件包时才有效。引用:“To activate syntax coloring, simply install either one (or more) of these packages...”【参考方案2】:

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

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

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

此代码有效:


#!php
<?php
if(true)

    echo 'hi';

?>

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

【讨论】:

以上是关于Trac PHP 语法高亮在 Wiki 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6 - 语法高亮/完成不起作用

Eclipse 语法高亮显示:尝试为新文件扩展名指定它,但它不起作用

Sublime 3 编辑器语法突出显示 PHP + HTML 不起作用

如何在 Eclipse 中为 PHP 核心函数启用自动完成/语法高亮?

为啥我的扩展语法在节点 v7.0.0 中不起作用?

插件中的传播语法在 IE/edge 中不起作用