Как избежать или удалить эту последовательность?

Привет, как мне сбежать, чтобы сделать ссылку?

введите здесь описание изображения

Сейчас я пишу это с фильтром: {{article.text|striptags|urlize|nl2br|safe}}

Можете ли вы порекомендовать, как это сделать?

Связанный вопрос: https://stackoverflow.com/questions/8179801/autolinebreaks-filter-in-jinja2

Спасибо


person Niklas R.    schedule 19.11.2011    source источник
comment
хорошо, не избегайте этого вообще, если вы хотите, чтобы HTML-теги интерпретировались как HTML-теги.   -  person JB Nizet    schedule 19.11.2011
comment
а не было разницы в выводе рендеринга при переключении между {{article.text|striptags|urlize|nl2br}} и экранированным?   -  person Niklas R.    schedule 19.11.2011
comment
возможный дубликат Python HTML sanitizer/scrubber/filter   -  person Nick Johnson    schedule 21.11.2011


Ответы (1)


Обычно я бы хотел использовать HTMLParser для обработки (может быть, перебор?), пример кода ниже для Python 2.7 (библиотека 3.0 переименована в html.parser)

from HTMLParser import HTMLParser

class MyHTMLParser(HTMLParser):
    def handle_starttag(self, tag, attrs):
        print "Found Start Tag", attrs

s = "noivos, convites de casamento <a href=\"http://www.olharcaricato.com.br\">
        http://www.olharcaricato.com.br</a> more entries here"

parser = MyHTMLParser()
parser.feed(s)

Выходы: Found Start Tag [('href', 'http://www.olharcaricato.com.br')]

Примечание. Реализуйте приведенный выше код в качестве фильтра, настройте вывод в соответствии с вашими потребностями. Пример фильтра можно найти в Пользовательский фильтр jinja2 для итератора

person Alvin K.    schedule 20.11.2011
comment
Классное решение! Спасибо, и, как вы сказали, это может быть излишним, когда все, что мне действительно нужно сейчас, это заменить \n на <br> - person Niklas R.; 21.11.2011