Можно ли кодировать (<em> asdf </em>) в Python Textile? - PullRequest
0 голосов
/ 15 июля 2009

Я использую python Textile для хранения разметки в базе данных. Я хотел бы привести следующий фрагмент HTML-кода:

(<em>asdf</em>)

Очевидное не кодируется:

(_asdf_)   ->   <p>(_asdf_)</p>

Следующее работает, но дает уродливое пространство:

( _asdf_)   ->   <p>( <em>asdf</em>)

Я упускаю что-то очевидное или это просто невозможно при использовании Python Textile?

1 Ответ

1 голос
/ 15 июля 2009

Трудно сказать, если это ошибка или нет; в форме на веб-сайте Textile , (_foo_) работает так, как вы хотите, но в загружаемой реализации PHP - нет.

Вы должны быть в состоянии сделать это:

([_asdf_])  ->  <p>(<em>asdf</em>)</p>

Однако, это не работает, что является ошибкой в ​​пи-текстиле. Вам либо нужно использовать это:

(]_asdf_])

или исправьте файл textile.py, изменив строку 918 (в методе Textile.span()) на:

            (?:^|(?<=[\s>%(pnct)s])|([{[]))

(разница в последней группе; квадратные скобки неверно изменены).

Вы также можете изменить строку на:

            (?:^|(?<=[\s>(%(pnct)s])|([{[]))

(обратите внимание на добавленные скобки), чтобы получить желаемое поведение (_foo_), , но я не уверен, что это нарушит что-либо еще.


Продолжение: последняя версия класса PHP Textile действительно вносит изменения, аналогичные предложенным мною.

...