hutool-extra模板引擎增加pebble引擎支持。Pebble是一款受Twig启发的Java模板引擎。它具有模板继承和易于阅读的语法,内置有安全的autoescaping,并包括对国际化的综合支持。

This commit is contained in:
yudongbin
2023-03-31 11:10:33 +08:00
parent c9024ba8f9
commit 2674e5b13e
6 changed files with 219 additions and 0 deletions

View File

@@ -6,6 +6,7 @@ import cn.hutool.extra.template.TemplateConfig.ResourceMode;
import cn.hutool.extra.template.engine.beetl.BeetlEngine;
import cn.hutool.extra.template.engine.enjoy.EnjoyEngine;
import cn.hutool.extra.template.engine.freemarker.FreemarkerEngine;
import cn.hutool.extra.template.engine.pebble.PebbleTemplateEngine;
import cn.hutool.extra.template.engine.rythm.RythmEngine;
import cn.hutool.extra.template.engine.thymeleaf.ThymeleafEngine;
import cn.hutool.extra.template.engine.velocity.VelocityEngine;
@@ -143,6 +144,24 @@ public class TemplateUtilTest {
Assert.assertEquals("<h3>Hutool</h3>", result);
}
/**
* pebble template engine test
*/
@Test
public void pebbleEngineTest() {
// 字符串模板
TemplateEngine engine = TemplateUtil.createEngine(new TemplateConfig("templates").setCustomEngine(PebbleTemplateEngine.class));
Template template = engine.getTemplate("<h3>{{ message }}</h3>");
String result = template.render(Dict.of().set("message", "Hutool"));
Assert.assertEquals("<h3>Hutool</h3>", result);
//ClassPath模板
engine = TemplateUtil.createEngine(new TemplateConfig("templates", ResourceMode.CLASSPATH).setCustomEngine(PebbleTemplateEngine.class));
template = engine.getTemplate("pebble_test.peb");
result = template.render(Dict.of().set("name", "Hutool"));
Assert.assertEquals("hello, Hutool", result);
}
@Test
@Ignore
public void renderToFileTest() {

View File

@@ -0,0 +1 @@
hello, {{name}}