playframework2のHTML出力が汚すぎるのでJsoupで整形してみた

最近、playframework2に手を出し始めました。

このフレームワーク、フォームヘルパーが結構色々HTMLを生成してくれるみたいで、まだ慣れてないせいもあって結構頻繁に生成されたHTMLの中身を見ています。

で、テンプレートエンジンの例に漏れず、出力されるHTMLが超絶汚い...

 

こんな感じのテンプレートが

gist6964461

こんな感じのHTMLに出力されます。

gist6964400

 

見辛すぎるよ!!

 

for文とかテンプレートのインクルードでぐちゃっとなるんですよね。

ということで、こちらの記事を参考にjsoupで整形してみました。

scalaの標準機能だけでできるかとも最初思ってたんですが、生成されたHTMLがXHTMLではなかったので無理でした><

jsoupで変換後はこんな感じに!

gist6964381

かなり見やすくなりましたね。下記のようなコードで対応しています。

gist6964539

gist6964553

 

本当はフィルタとかのレイヤで対応した方がいいと思うんですが、Playのフィルタがどういう動きをするのかを、まだ理解してないので、一旦こんな感じに。

当然パフォーマンスは落ちるので、場合によってはプロダクション時はオフにするとかのオプションも考慮が必要かもです。

まあ、少なくとも開発中はこれで幸せになれそうかな。

 

それでは、Happy Hcking!

 

参考: