模板工具包:提取模板的一部分

Template Toolkit: Extracting a part of a template

我被分配了使用 Perl Template Toolkit 重写自制模板的任务。

我们的模板可以提取模板的片段(然后从中制作 HTML),而不是使用整个模板。

如何使用 Template Toolkit 实现?

我提出的最佳解决方案如下:

让我们有一个带有片段 A 的模板 x.html

片段应该被提取到新文件中。 (为保持一致性,我将其命名为 x/A.html。)在原始模板 x.html 中,应将其替换为 [% INCLUDE 'x/A.html' %]。所以我可以使用整个模板 x.html 或其片段 x/A.html。可能我们可能有几个级别的包含,例如 x/A/B.html.

还有其他方法吗? (我不喜欢像上面描述的那样把它分成子目录,但还没有想出更好的解决方案。)

您是在问是否有更好的方法从父模板中提取片段?

(答案是:不,这可能是最好的方法。)

或者您是想问有没有更好的方法来组织提取的碎片?

(答案是:没有真正的最佳答案,每个地方都会有自己的房屋风格 - 选择任何惯例都不会错得太离谱。)

我见过的最常见的命名约定是子目录 x/A.html 和前缀 x_A.html。无论您是使用 x 的父模板的名称,还是选择按照 simbabque 的建议按功能分组是另一个品味问题:按功能分组在更大和更复杂的布局上可以更好地扩展,您可以重复使用大量的布局的组件,但按用例分组在概念上更简单,在较小的用例中很少或没有组件重用。