Подсветка синтаксиса PHP Trac не работает в Вики
Подсветка синтаксиса для PHP отказывается для работы с вики-страницами в моей установке Trac. Это прекрасно работает при просмотре исходного кода, но не в Вики. Подсветка синтаксиса Javascript, C и Python работает в Вики, но не в PHP. Горе мне.
У меня Trac 0.11.7
установлен на Ubuntu 10.04
. Мой веб-сервер Apache 2.2.14
.
Я вручную установил пигменты. Не повезло. Я изменил тему пигментов в настройках. Не повезло.
У меня абсолютно 0 ошибок, зарегистрированных в журналах trac
и apache
. Уровень ведения журнала для Trac установлен на WARNING
(и ведение журнала Trac работает - у меня есть другие ошибки с сегодняшнего дня). Firebug также не отображает ошибок при включении всего (за исключением одной несвязанной ошибки CSS "Неизвестное свойство" - moz-непрозрачность").
Просмотр HTML-источника страницы показывает, что код просто выплевывается в виде предварительно отформатированного текста. В нем нет тонны <span>
, которые есть у всех других выделенных синтаксисом блоков кода.
Это код, который я использую в Вики:
{{{
#!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>
2 answers
Я полагаю, что вы можете решить эту проблему, включив тег <?php
:
{{{
#!php
<?php
if(true)
{
echo 'hi';
}
}}}
Во всяком случае, это работает для меня на моей вики-странице. Однако я до сих пор не смог определить, является ли это намеренным поведением или ошибкой.
Не знаю, почему это всегда происходит со мной. Конечно, я выясняю это через 5 минут после публикации вопроса.
Проблема заключалась в том, что у меня не было <?php ?>
в исходном коде php, поэтому синтаксический маркер обрабатывал его как HTML; точно так же, как синтаксический анализатор PHP.
C, Python и JS не имеют эквивалента, поэтому они, казалось, работали, когда PHP не работал.
Этот код работает:
{{{
#!php
<?php
if(true)
{
echo 'hi';
}
?>
}}}
Я оставляю этот вопрос здесь на случай, если у кого-то еще возникнет такая же проблема, несмотря на то, как глупо я себя чувствую.