2010-05-07 2 views
1

Я хотел бы знать, есть ли способ конвертировать строку простого Unicode в HTML в Genshi, так что, например, он делает новые строки как <br/>.Печатать строку как HTML

Я хочу, чтобы это отображало текст, введенный в текстовое поле.

Заранее благодарен!

ответ

0

Возможно использование тега <pre>.

+0

Я, наконец, использовал format_to_html в коде python. – infinito

0
  1. Преобразование простого текста в HTML, убегая «<» и «&» символы (и, возможно, некоторые больше, но эти два являются абсолютным минимумом), как HTML сущностей

  2. Substitute каждый символ новой строки с текст «<br />», возможно, в сочетании с новой линией.

В таком порядке.

В целом это не должно быть несколько строк кода Python. (Я не делаю Python, но любой Python программист должен быть в состоянии сделать это легко.)

редактировать Я нашел code on the web для первого шага. Для шага 2 см. string.replace внизу this page.

0

В случае, если кому-то это интересно, я решил это. Это код python перед отправкой данных в шаблон genshi.

from trac.wiki.formatter import format_to_html 
from trac.mimeview.api import Context 
... 
    context = Context.from_request(req, 'resource') 
    data['comment'] = format_to_html(self.env, context, comment, True) 
    return template, data, None 
+0

Забудьте сказать, что это работает на Trac. – infinito

1

Если Genshi работает так же, как KID (что должно быть), то все, что вам нужно сделать, это

${XML("&lt;p&gt;Hi!&lt;/p&gt;")} 

Мы имеем небольшую функцию для преобразования из формата вики в HTML

def wikiFormat(text): 
    patternBold = re.compile("(''')(.+?)(''')") 
    patternItalic = re.compile("('')(.+?)('')") 
    patternBoldItalic = re.compile("(''''')(.+?)(''''')") 
    translatedText = (text or "").replace("\n", "<br/>") 
    translatedText = patternBoldItalic.sub(r'<b><i>\2</i></b>', textoTraducido or '') 
    translatedText = patternBold.sub(r'<b>\2</b>', translatedText or '') 
    translatedText = patternItalic.sub(r'<i>\2</i>', translatedText or '') 
    return translatedText 

Вы должны адаптировать его под свои нужды.

${XML(wikiFormat(text))} 
Смежные вопросы