Skip to content

Instantly share code, notes, and snippets.

@ramuta
Last active September 28, 2019 08:18
Show Gist options
  • Save ramuta/1b7b8828e183c7f8e16c to your computer and use it in GitHub Desktop.
Save ramuta/1b7b8828e183c7f8e16c to your computer and use it in GitHub Desktop.
Line breaks in Jinja on GAE
import re
from jinja2 import evalcontextfilter, Markup, escape
_paragraph_re = re.compile(r'(?:\r\n|\r|\n){2,}')
@evalcontextfilter
def nl2br(eval_ctx, value):
result = u'\n\n'.join(u'<p>%s</p>' % p.replace('\n', '<br>\n')
for p in _paragraph_re.split(escape(value)))
if eval_ctx.autoescape:
result = Markup(result)
return result

Usage

  1. Create filters.py
  2. Use nl2br filter in your Jinja template

{{ text|nl2br }}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment