我在最近的几个Catalyst项目中使用了Template::Toolkit ,并且有一个我喜欢使用的设置,它可以清晰地分离我的模板。现在我希望使用Text::Xslate,但我无法确定是否可以进行相同的设置。以下是我通常为 Template::Toolkit 提供的内容。
__PACKAGE__->config({
...
WRAPPER => 'site/wrapper',
...
});
包装
[% content WRAPPER site/html + site/layout %]
html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>[% template.title or site.title %]</title>
<style type="text/css">
</style>
</head>
<body>
[% content %]
</body>
</html>
布局
<div id="header">[% PROCESS site/header %]</div>
<div id="content">
[% content %]
</div>
<div id="footer">[% PROCESS site/footer %]</div>`
然后页眉和页脚有自己的内容。我喜欢这个解决方案,因为一切都被干净地分开了,而且我不会通过将开始标签放在页眉中并将结束标签放在页脚中来分解内容周围的任何 div 标签。看起来TTerse语法有一些包装功能,但我不确定这是否允许我重新创建我通常做的事情。我还发现这个答案说你可以在理论上使用包装器,但并没有真正给出任何例子。