HTML整形ミドルウェア
テンプレートエンジンを使うと出力されるHTMLがキモい!とデザイナーの人に言われたので、3分ハッキング。
必要なもの:
# -*- coding: utf-8 -*- from wsgifilter import Filter from BeautifulSoup import BeautifulSoup class HTMLPrettifyFilter(Filter): def filter(self, environ, headers, data): return BeautifulSoup(data).prettify()
このミドルウェアを使うには、config/middleware.pyで以下のように設定する。
# YOUR MIDDLEWARE # Put your own middleware here, so that any problems are caught by the error # handling middleware underneath # Setup HTMLPrettifyFilter app = HTMLPrettifyFilter(app)
メインのテンプレートエンジンにMakoを使っていたので最初はMakoのフィルタで何とかしようとしていたのだけど、同僚のSさんからミドルウェアで実現するというアイデアが出たのでそちらを採用した。