Нет подсветки синтаксиса для трассировки python — pygments

Я использую pygments версии 1.6 в блоге для подсветки синтаксиса (через расширение CodeHilite для уценки)

Подсветка синтаксиса для Python великолепна. Однако, если я попытаюсь использовать лексер pytb для выделения трассировки python, это не впечатлит.

Я могу проверить, что он доступен:

for lexer in pygments.lexers.get_all_lexers():
    print lexer

........
('Python Traceback', ('pytb',), ('*.pytb',), ('text/x-python-traceback',))
.......

но это не похоже на демо: http://pygments.org/demo/61075/?style=native

вместо этого он выделяется основным белым шрифтом.

указанный пост в блоге здесь

ИЗМЕНИТЬ

Мой код:

<div class="codehilite">
    <pre>
        <span class="go">TypeError: Error when calling the metaclass bases</span>
        <span class="go"> class _AsyncDeviceInquiry does not correctly implement protocol IOBluetoothDeviceInquiryDelegate: the signature for method deviceInquiryComplete:error:aborted: is v@:@iB instead of v@:@iZ</span>
    </pre>
</div>

Код из демонстрации

<div class="syntax">
    <pre>
        :
        <span class="nc">ImportError</span>
        :
        <span class="n-Identifier">('No module named TMPD54~1.049d4d1330606d5fa968586a2810c4fc', '[DimShuffle{x}(TensorConstant{2.0})]')</span>
    </pre>
</div>

person Ben    schedule 28.03.2014    source источник


Ответы (1)


Я предполагаю, что Pygments работает нормально. Я предлагаю просмотреть источник вашего вывода уценки и источник демонстрации, на которую вы ссылаетесь. Я подозреваю, что у обоих будут спаны, разбросанные по трекбэку, размечающие различные части.

Конечно, без того, чтобы вы предоставили фактический результат, который вы получаете, я могу только догадываться. Но если я прав, вам нужно предоставить CSS для оформления этой разметки. Python-Markdown не предоставляет вам CSS. Это ваша обязанность обеспечить это. Если я правильно помню, Pygments предлагает команду для создания файла CSS. Я предлагаю вам проверить их документацию.

Например, демонстрация, на которую вы указываете, позволяет вам переключаться на разные темы. Фактический HTML-вывод pygments никогда не меняется, только для оформления той же разметки используется другой файл CSS.

person Waylan    schedule 29.03.2014
comment
CSS взят из файла, загруженного по ссылке, которую я разместил. Pygments (или Codehilite) не добавляет никаких тегов стиля к фрагменту, когда используется pytb. Однако это происходит, когда используется python. - person Ben; 29.03.2014
comment
Кроме того, вывод html меняется в зависимости от используемого лексера. Разные лексеры распознают разные ключевые слова. (т.е. использование python будет помечать import иначе, чем лексер html). - person Ben; 30.03.2014