在Pebble Template Engine中解析字符串模板而不是文件
有没有可能使用卵石模板引擎从字符串建立一个模板,而不必提供一个文件名?
val engine = PebbleEngine.Builder().build() val writer = StringWriter(); engine.getTemplate("test.html").evaluate(writer);
而不是提供test.html
,我将如何提供以下格式的模板?
val template = "Hello {{world}} - {{count}} - {{tf}}"
我目前在Pebble 2.2.1上
<!-- Pebble --> <dependency> <groupId>com.mitchellbosecke</groupId> <artifactId>pebble</artifactId> <version>2.2.1</version> </dependency>
基于我收到的答案的解决方案 :
val context = HashMap<String, Any>() ... val engine = PebbleEngine.Builder().loader(StringLoader()).build(); val writer = StringWriter(); engine.getTemplate(template).evaluate(writer, context); println(writer.toString());
根据测试 ,你只需要用一个StringLoader
来设置引擎:
val engine = PebbleEngine.Builder().loader(StringLoader()).build()
你需要像这样向引擎提供一个StringLoader
:
val engine = PebbleEngine.Builder() .loader(StringLoader()) .build() val writer = StringWriter() engine.getTemplate("<p>{{name}}</p>").evaluate(writer, mapOf("name" to "Stack Overflow")) val result = writer.toString() // "<p>Stack Overflow</p>