Подсветка синтаксиса PHP Trac не работает в вики - PullRequest
2 голосов
/ 17 февраля 2012

Подсветка синтаксиса для PHP отказывается работать на вики-страницах в моей установке Trac.Это прекрасно работает при просмотре исходного кода, но не в вики.Подсветка синтаксиса Javascript, C и Python работает в Wiki, но не в PHP.Горе мне.

У меня Trac 0.11.7 установлено на Ubuntu 10.04.Мой веб-сервер Apache 2.2.14.

Я вручную установил Pygments.Неудачно.Я изменил тему Pygments в настройках.Не повезло.

У меня абсолютно 0 ошибок, зарегистрированных в журналах trac и apache.Уровень ведения журнала для Trac установлен на WARNING (и ведение журнала Trac работает - у меня есть другие ошибки, произошедшие ранее сегодня).Firebug также не отображает никаких ошибок со всем включенным (за исключением одной несвязанной ошибки CSS «Неизвестное свойство '-moz-opacity'»).

Просмотр исходного кода HTML страницы показывает, что код просто выплевывается как предварительно отформатированныйтекст.Он не имеет тонны <span>, которые есть у всех других выделенных синтаксисом блоков кода.

Это код, который я использую в вики:

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

И эторезультат:

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

Пожалуйста, помогите: -)


Для примера того, что я ожидал, вот некоторый код JS, которыйработает:

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

И вот результат:

<code><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>

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Полагаю, вы можете решить эту проблему, добавив тег <?php:

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

В любом случае это работает для меня на моей вики Trac.Я до сих пор не смог определить, является ли это предполагаемым поведением или ошибкой.

1 голос
/ 17 февраля 2012

Не знаю, почему это всегда происходит со мной.Конечно, я понял это через 5 минут после публикации вопроса.

Проблема заключалась в том, что у меня не было <?php ?> в исходном тексте php, поэтому подсветка синтаксиса воспринимала его как HTML;так же, как синтаксический анализатор PHP.

C, Python и JS не имеют эквивалента, поэтому они, кажется, работают, когда PHP не работает.

Этот код работает:

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

Я оставляю этот вопрос здесь на тот случай, если у кого-то еще возникнет такая же проблема, несмотря на то, что я чувствую себя глупо.

...