如果可以的话,我想知道如何整合Google Closure Template ,a.k.a. Soy的打印插件,主要是因为我在Java方面非常糟糕。 下面的页面解释了如何做到这一点,但我需要更多详细信息。
https://developers.google.com/closure/templates/docs/plugins
感谢任何帮助。
答案 0 :(得分:0)
您需要查看Clojure源代码,了解它如何创建自己的指令。这很容易。
首先,您需要了解如何实施指令。为此,请参阅示例。下载clojure templates source code并查看:
./的java /测试/ COM /谷歌/模板/大豆/ basicdirectives / TruncateDirective.java
然后,你需要了解一点Google Guice。创建一个Guice模块来添加指令:
public class MySoyModule extends AbstractModule {
@Override
protected void configure() {
Multibinder<SoyPrintDirective> soyDirectivesSetBinder = Multibinder.newSetBinder(binder(), SoyPrintDirective.class);
soyDirectivesSetBinder.addBinding().to(DateDirective.class);
}
}
然后,使用Guice注入器实例化您的构建器,如下所示:
Injector injector = Guice.createInjector(new SoyModule(), new MySoyModule());
SoyFileSet.Builder sfsBuilder = injector.getInstance(SoyFileSet.Builder.class);
SoyFileSet sfs = sfsBuilder.add(SoyUtils.class.getResource(source)).build();
现在您可以调用模板:
SoyTofu simpleTofu = sfs.compileToTofu().forNamespace("soy.examples.simple");
就是这样。