我在理解如何将另一个模板嵌套在另一个模板中时遇到问题。例如,我有3个模板: application.stg , wrapper.stg 和 core.stg 。
page(data1, data2) ::= <<
<h1>$data1$</h1>
<h1>$data2$</h1>
>>
page(data3, data4) ::= <<
<h1>$data3$</h1>
<!----- CORE.STG GOES HERE ------->
<h1>$data4$</h1>
>>
page(data7, data8) ::= <<
<h1>$data7$</h1>
<!----- WRAPPER.STG GOES HERE ------->
<h1>$data8$</h1>
>>
文档似乎暗示这是可能的(条件子模板部分),但很抱歉,我根本无法弄清楚语法。请帮帮我。
答案 0 :(得分:0)
您可以使用每个模板创建整个文件,并确保为其设置.stg
扩展名。
然后创建一个TemplateGroupFile
对象并设置属性data7
和data8
并告诉它在应用程序模板中启动。
core(data1, data2) ::= <<
<h1>$data1$</h1>
<h1>$data2$</h1>
>>
wrapper(data3, data4) ::= <<
<h1>$data3$</h1>
core(data3,data4)
<h1>$data4$</h1>
>>
application(data7, data8) ::= <<
<h1>$data7$</h1>
wrapper(data7,data8)
<h1>$data8$</h1>
>>
这是C#代码
TemplateGroupFile grp = new TemplateGroupFile(Template);
Template page_tpl = grp.GetInstanceOf(GroupName);
GroupName = "application";
page_tpl.Add("data7", yourData);
page_tpl.Add("data8", moreOfYourData);
File.WriteAllText(Path.Combine(dir, Path.GetFileName(outputFile)), page_tpl.Render());