【问题标题】:How to render a scalate template manually?如何手动渲染缩放模板?
【发布时间】:2014-08-30 11:51:50
【问题描述】:

我想试试Scalate这种方式:

  1. 提供一个缩放模板,比如:index.html
  2. 使用 scala 代码手动渲染一些数据
  3. 任何模板格式都可以(mustache、Scaml、SSP、Jade)

但是即使我已经阅读了我找到的所有文档和源代码,我也没有发现任何事情要做。

为了让这个问题更清楚,所以我有这样一个模板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") 渲染它。怎么做?

【问题讨论】:

  • Scalate 有残酷的文档:一堆半连接的想法,没有上下文或示例。如果您没有时间解析源代码以进行 scalate 并自己解决所有问题,我的团队使用点菜的 Twirl 库的工作效率要高得多。
  • @Azeli,我完全同意你的看法,并且之前也切换到了 Twirl。谢谢
  • 两年半过去了,现在还是这样。

标签: scala scalate


【解决方案1】:

假设您有以下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 易于使用)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-13
    • 2018-10-14
    • 2014-07-23
    • 1970-01-01
    • 2012-07-21
    • 2020-03-19
    • 2010-11-30
    相关资源
    最近更新 更多