将表达式的多行输出缩进到模板的其余部分

时间:2015-12-03 12:09:35

标签: playframework indentation template-engine

每当我在scala模板中有一个输出多行的表达式时,它会使生成的文档有点乱,因为它没有正确缩进。

有没有办法解决这个问题?什么是最佳做法?

1 个答案:

答案 0 :(得分:1)

你可以做的第一件事就是在模板的Scala部分(即循环)中打一点点,如果它让你讨厌,无论如何这很可能会浪费时间。实际上,HTML的“丑陋”格式对页面的工作没有任何副作用,因为如果正确地,那么每个浏览器都能很好地处理代码。

如果您仍然没有被定罪,您可以使用一些外部库,例如HtmlCompressor(最适合最小化付费计划的转帐率),例如:

public Result compressor(){
    String html = ugly.render("hi there").toString();
    HtmlCompressor compressor = new HtmlCompressor();
    return ok(compressor.compress(html)).as("text/html; charset=utf-8");
}

Jsoup(顺便说一下:它不仅仅是代码清理

public Result jsoup(){
    String html = ugly.render("hi there").toString();
    Document doc = Jsoup.parse(html);
    return ok(doc.outerHtml()).as("text/html; charset=utf-8");
}

当然有原始样本,为了更轻松的工作,你可以覆盖

。在你的控制器内进行ok(...)动作

您还需要支付一些性能价格,因此请考虑在可能的情况下使用缓存。

为Play 2.4 / Java

提供的样本