如何手动渲染Scalate模板?

时间:2014-08-30 11:51:50

标签: scala scalate

我想以这种方式尝试Scalate

  1. 提供一个scalate模板,例如:index.html
  2. 使用scala代码手动渲染一些数据
  3. 任何模板格式都可以(小胡子,Scaml,SSP,Jade)
  4. 但即使我已经阅读了我找到的所有文档和源代码,我也很遗憾没有发现这一点。

    为了使这个问题更清晰,我有这样一个模板user.html

    <%@ var user: User %>
    <p>Hi ${user.name},</p>
    #for (i <- 1 to 3)
    <p>${i}</p>
    #end
    <p>See, I can count!</p>
    

    我想用用户实例User(name="Mike")呈现它。怎么做?

1 个答案:

答案 0 :(得分:0)

假设您有以下 simple_example.mustache 模板:

I like {{programming_language}}
The code is {{code_description}}

您可以使用以下代码呈现模板:

import org.fusesource.scalate.TemplateEngine
val sourceDataPath = os.pwd/"simple_example.mustache".toString
val engine = new TemplateEngine
val someAttributes = Map(
  "programming_language" -> "Scala",
  "code_description" -> "pretty"
)
engine.layout(sourceDataPath, someAttributes)

结果如下:

I like Scala
The code is pretty

一旦你克服了最初的学习障碍,Scalate 实际上非常好用(文档并没有让 lib 易于使用)。