Также отличным решением, которое не упомянуто в ссылке, указанной в комментариях, является использование markdown2.
Если вам нравится markdown2 ;)
И у него также есть безопасный режим, чтобы избежать выполнения html / js / css, поэтому он будет соответствовать вашим потребностям! :)
return Markdown(safe_mode="replace/escape/Boolean").convert(text)
Вы можете использовать:
- replace: заменит html на ужасный текст: p
- escape: экранирует HTML-текст (что я предпочитаю)
- Boolean: если установлено значение True, будет использоваться замена. Boolean здесь для ретро-совместимости