改行をに変換するJinja2のカスタムフィルター

Google App Engine for PythonでテンプレートエンジンをDjangoからJinja2に変更したのですが、Djangoで使っていたlinebreaksbrフィルターが使えなくなり困ってしまいました。
そこでlinebreaksbrという同じフィルター名でJinja2のカスタムフィルターを作ってみました。

まず、jinja2_custom_filters.pyというファイルを作成して以下を記述します(ファイル名は適当につけました)。

def linebreaksbr(arg):
    return arg.replace("\n", "<br />\n")

このlinebreaksbrという関数を、Jinja2にカスタムフィルターとして登録します。

下のコードがスタートガイド(英語)で示されているJinja2を使うときの記述です。

import jinja2
jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
)

カスタムフィルターを登録するには、これ↑をこう↓します(下3行を追加)。

jinja_environment = jinja2.Environment(
    loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
)
jinja_environment.filters.update({
	"linebreaksbr": jinja2_custom_filters.linebreaksbr,
})

これで、テンプレートファイルで {{ variable|linebreaksbr }}とすると、改行が<br>に変換されるようになりました。

以下を参考にさせていただきました。