你需要看看Clojure源代碼,看看它是如何創建自己的指令。這很容易。
首先,您需要了解如何實施指令。要做到這一點,請看一個例子。下載clojure templates source code和考慮:
./java/tests/com/google/template/soy/basicdirectives/TruncateDirective.java
然後,你需要了解的Google Guice豆蔻位。創建一個吉斯模塊來增加您的指令:
public class MySoyModule extends AbstractModule {
@Override
protected void configure() {
Multibinder<SoyPrintDirective> soyDirectivesSetBinder = Multibinder.newSetBinder(binder(), SoyPrintDirective.class);
soyDirectivesSetBinder.addBinding().to(DateDirective.class);
}
}
然後,實例化你的建設者,使用吉斯注射器,像這樣:
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");
就是這樣。
謝謝feroult,這是非常友好的描述給我,我稍後再試。謝謝! – 2014-01-24 06:35:50