如果由父模板调用,Rythm 无法 @import 模板

Rythm can't @import a template if invoked by a parent template

我有一组 4 个模板文件,都带有 .rythm 扩展名,并且都位于同一目录中。我们称它们为 "Main.rythm"、"Child1.rythm"、"Child2.rythm" 和 "Helper.rythm"。此外,我还在渲染 Main 之前将 home.template.dir 设置到此目录。

在 Helper 模板中,我只有一堆 @def 可以执行一些基本的通用格式设置,这样我就不必回拨我的 java class 或者用不需要的逻辑使实际模板混乱。

主要内容如下所示:

@args {
    String aString,
    MyClass bunchOfData,
    String anotherString
    @//...
}
@import("Helper")
There's some formatting here, using @aString
There's some formatting using an @def in Helper, like @foo(anotherString)

@Child1(bunchOfData)

@Child2(bunchOfData)

Child1 和 Child2 彼此相似,看起来像这样:

@args MyClass bunchOfData
@import("Helper")
@{
    //Some preformatting stuff here
}
Make a lot of method calls on @bunchOfData, some of which will also use an @def or two in Helper

我的问题是我在 @import("Helper") 行的 Child1 中遇到错误:

Exception in thread "main" org.rythmengine.exception.CompileException: Syntax error on token "import", delete this token

Template: /path/to/templates/Child1.rythm

我试过注释掉 @import,但后来我无法真正调用那些 @def,并且在我使用 [= 时从 Rythm 得到 "Helper cannot be resolved" 的错误19=].

我需要做什么才能从 Child1 和 Child2 访问 Helper 中的这些 @def

您不应该使用 @import,您应该使用 @include@import就像java中的import指令一样,为这个模板添加一个包来引用。 @include 用于添加您可以在整个模板中引用的其他模板。