Найти - Пользователи
Полная версия: strip tags, BB-codes
Начало » Django » strip tags, BB-codes
1 2
nerezus
Как заэскейпить данные для вывода на страницы? типа | escape в ихних шаблонах, но я не хочу ихние шаблоны юзать )

И есть ли готовые либы для BB-кодов?
nerezus
ммм, никто не защищался что-ли от CSS?
Maximbo
nerezus
Как заэскейпить данные для вывода на страницы? типа | escape в ихних шаблонах, но я не хочу ихние шаблоны юзать )
Разве возможно использовать Django с неродными шаблонами?

nerezus
И есть ли готовые либы для BB-кодов?
Гляньте статью Ивана Сагалаева на предмет фильтров bbcode.
nerezus
> Разве возможно использовать Django с неродными шаблонами?
А разве нет?


def test(request):
html = ‘preved’ # ну или как-нить другим шаблоном генерируем, я хочу через XSLT
return HttpResponse(html)
j2a
Maximbo
nerezus
Как заэскейпить данные для вывода на страницы? типа | escape в ихних шаблонах, но я не хочу ихние шаблоны юзать )
Разве возможно использовать Django с неродными шаблонами?
Легко. Пример с Breve в аттаче. Правда Breve не работает с юникодом (читай: с русским), на что я указывал автору…

upd: Блин, нифига аттач не работает. См. где-нибудь в другом месте.


# views.py
from breve.plugin.django_adapter import render_to_response

def example(request):
context = {'name': ‘Mike’}
return render_to_response('example', context)


в settings.py добавляется переменная BREVE_ROOT, которая указывает на каталог, где хранятся шаблоны


# example.b
html[
head[
title
],

body [
h1,
p(class_='greeting')[
“”“ Hello to you, %s! ”“” % name
]
]
]


С тем же Mako делается тоже достаточно просто.
nerezus
> XML should not be used for template languages
из документации дижанго.
А почему? Категорически несогласен с этим утверждением, т.к. только XSL шаблоны - это шаблоны, которые можно одинаково использовать во всех языках(например)
Maximbo
nerezus
> XML should not be used for template languages
из документации дижанго.
А почему? Категорически несогласен с этим утверждением, т.к. только XSL шаблоны - это шаблоны, которые можно одинаково использовать во всех языках(например)
<flame>
А там же и ответ – не для людей эта строгость. Наверное, у авторов Django неплохо развито творческое полушарие мозга, раз даже детище своё они назвали в честь хорошего гитариста :)

Да и зачем что-то использовать везде? Универсальность красивой редко бывает.
</flame>
nerezus
def escapeHtml(s):
return s.replace('&', ‘&amp;’).\
replace('"', ‘&quot;’).\
replace('\'', ‘&#039;’).\
replace('<', ‘&lt;’).\
replace('>', ‘&gt;’).\
replace('\0', '')
Достаточно безопасно? За основу взят http://php.net/htmlspecialchars и добавлено \0

P.S. в догонку
def nl2br(s):
return s.replace('\r', ‘').replace(’\n', ‘<br />’)
Александр Кошелев
В стандартной поставке django идет фильтр эскейпов. что мешает его использовать?
nerezus
Daevaorn мм, не нашел… :) Вернее я нашел только | escape в шаблонах. Но я просто не хочу пользоваться Django'вскими шаблонами =)

А вот BB-парсеров нашел кучу. ВСЕ были крайнеубогие, не нашел ни одного без XSS =\ Так что BB-парсер ищется…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB