[英]How would I go extending timber to be able to use handles as references in includes?
我们使用带有 twig 引擎的 fractal.js 来制作网站原型。 Fractal.js 带来了一个方便的功能,可以在包含中使用句柄。
所以不用写{% include 'templates/components/teaser/basicTeaser.twig' %}
,你可以写{% include '@basicteaser' %}
。 请参阅: https://fractal.build/guide/core-concepts/naming.html#referencing-other-items
当然,这依赖于唯一的组件名称,无论如何我很高兴拥有这些名称。
任何人都可以指出如何扩展木材或 twig 以使用此类手柄的正确方向吗?
非常感谢!
Twig 已经提供了从一系列目录而不是一个目录加载模板的选项。
$loader = new \Twig\Loader\FilesystemLoader([$templateDir1, $templateDir2]);
另外,在将加载器传递给环境对象之前,您可以为自定义命名空间添加路径,即:
$loader->addPath($templateDir, 'admin');
然后你可以像这样使用你的命名空间:
$twig->render('@admin/index.html', []);
我知道这是一个老问题,这可能与 OP 不再相关,但我们需要同样的东西并开发了一个 WordPress 插件来桥接 Timber + Fractal。 您可以将 Fractal 组件导出到components-map.json
文件,然后加载程序将读取 map 并将这些组件名称转换为文件路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.