2012-02-16 2 views
2

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

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

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

У меня есть абсолютно 0 ошибок, зарегистрированных в trac и apache журналов. Уровень ведения журнала для 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> 

ответ

2

Я считаю, что вы можете решить эту проблему путем включения <?php тега:

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

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

+0

Вы абсолютно правы. Это то, чего мне не хватало. –

+0

Стоит также упомянуть, что подсветка синтаксиса работает только в том случае, если Trac имеет определенные дополнительные пакеты. Цитата: "[Чтобы активировать раскраску синтаксиса, просто установите один (или несколько) из этих пакетов ...] (http://trac.edgewall.org/wiki/TracSyntaxColoring)" –

1

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

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

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

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

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

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

Смежные вопросы