具有递归模板支持的模板引擎

时间:2012-06-16 03:28:06

标签: python ruby template-engine

模板引擎可用于代码生成。以下是Ruby ERB模板脚本的示例:

<ul><% for @item in @shopping_list %><li><%= @item %></li><% end %></ul>

但是,我的代码生成要求不仅仅是简单的变量扩展或for循环。我需要递归代码生成功能,换句话说,我需要一个带有递归模板支持的python或ruby模板引擎。有人可以为我推荐这样的模板引擎吗?非常感谢!

1 个答案:

答案 0 :(得分:2)

Rails中默认使用的Ruby ERB模板系统支持递归模板。这是一个例子。

应用程序/视图/控制器1 / action1.html.erb 的:

Factorial of <%= @n %> equals to <%= render "factorial", :n => @n %>

应用程序/视图/控制器1 / _factorial.html.erb 的:

<% if n == 1 %>
  1
<% else %>
  <%= n %> * <%= render "factorial", :n => n - 1 %>
<% end %>

输出:

Factorial of 10 equals to 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1