vertx 和 handlebars 如何注册自定义助手

vertx and handlebars how to register custom helpers

关于车把的唯一 vert.x 参考文档 here 没有提及任何关于注册自定义车把助手的内容。

此外 HandlebarsTemplateEngine API 不提供任何与助手相关的内容。

我们是否应该直接通过 Handlebars handlebars = new Handlebars() 实例化 Handlebars 并在 handlebars 中注册,而不是使用 vert.x 中的 engine

HandlebarsTemplateEngine 只是让 Handlebars 与其他 vert.x 模块一起工作所需的胶水。要完全自定义您的引擎,您始终可以获得它的内部引擎对象。

对于 vert.x 4,这已通过添加 unwrap() 方法得到改进:

HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);
Handlebars handlebars = vertxHBS.unwrap();

从这里您可以使用官方 API 自定义引擎。使用的引擎可在此处获得:https://github.com/jknack/handlebars.java

要了解如何注册助手,请遵循手册:https://github.com/jknack/handlebars.java#registering-helpers

这是一个简单的例子:

HandlebarsTemplateEngine vertxHBS = HandlebarsTemplateEngine.create(vertx);

Handlebars handlebars = vertxHBS.unwrap();
// register a custom helper:
handlebars.registerHelper("blog", new Helper<Blog>() {
  public CharSequence apply(Blog blog, Options options) {
    return options.fn(blog);
  }
});