2016-05-26 5 views
3

Можно ли использовать механизм шаблонов Pebble для создания шаблона из строки, вместо того чтобы предоставить имя файла?Parse String шаблон вместо файла в 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()); 

ответ

3

Согласно to the tests, вам просто нужно установить двигатель вверх с StringLoader:

val engine = PebbleEngine.Builder().loader(StringLoader()).build() 
+0

так же, как репо Pebble закончил проверять вы ответили, nooice! –

2

Вы должны предоставить 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> 

 Смежные вопросы

  • Нет связанных вопросов^_^