nov*_*cik 5 perl inheritance templates
在Perl世界中存在任何具有模板继承的模板系统?
只需检查维基百科比较 _of_web_template_engines (真正不完整的列表) - 这里没有列出任何.
继承=支持从父模板继承布局的能力,分别覆盖父模板内容的任意部分.
意思是像python的Jinja2:
#body.html
<body>
{% block content %}
<!-- the content go here -->
{% endblock %}
</body>
#hi.html
{% extends "body.html" %}
{% block content %}
<h1>Hi!</h1>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
渲染hi.html给出
<body>
<h1>Hi!</h1>
</body>
Run Code Online (Sandbox Code Playgroud)
不要寻找精确的Jinja2语法,只需从perl世界中寻找支持继承的任何模板引擎.(不仅仅是普通包括 - 像Template :: Toolkit)
在这里问,因为搜索CPAN对于像"模板继承"这样的词来说是一种痛苦 - 显示了与这个问题无关的数千个模块.
Ps:...它不应该像嵌入式perl - 应该是"用户可编辑",允许用户构建自己的模板而不会损害整个系统 - 因此不能使用Mason或HTML :: Mason)
我会附议Text::Xslate的建议。它的语法甚至与 Jinja2 示例非常相似:
在layouts/main.tx:
...
<div id="page">
: block sidebar -> { }
<div id="content">
: block header-> { <h1>Default Title</h1> }
: block content -> { }
</div>
</div>
...
Run Code Online (Sandbox Code Playgroud)
在另一个模板中:
: cascade layouts::main
: override header -> {
<div id="header">
...
</div>
: }
: override content -> {
<div id="content-body">
...
</div>
: }
Run Code Online (Sandbox Code Playgroud)