Play Frameworkが出力するHTMLをJSoupで整形する

前回の記事の続き。

Play Frameworkが出力するHTMLをいったんJSoupに食わせて、その結果を出力するようにしました。

まずHTMLを整形するメソッドが以下。

public static Html tidyUp(Html html) {
    Document document = Jsoup.parse(html.toString());
    return new Html(document.toString());
}

HTMLを受け取って一度String型に変換し、JSoupでパースした結果を再度Html型にして戻しています。

あとはこのメソッドを以下のように用います。

public static Result tasks() {
    return ok(
        tidyUp(views.html.index.render())
    );
}

これで、余計なインデントや改行のない見やすいHTMLが出力されるようになります。

まあ、はっきりいって動作上無駄でしかないですし、実際のところこの処理によってサービスのレスポンスは悪くなります。ただHTMLが見やすくなることのメリットもあるので、使うかどうかはケースバイケースですね。