evanlovely / plugin-twig-namespaces
Pattern Lab 的 Twig Namespaces 插件
Requires
- php: >=5.4
- basaltinc/twig-tools: ^1.0
This package is auto-updated.
Last update: 2024-09-06 12:35:26 UTC
README
Pattern Lab 的 Twig Namespaces 插件
此插件为 Pattern Lab 中的 Twig 添加命名空间。
安装
要使用 Composer 将此插件添加到项目中,请输入
composer require evanlovely/plugin-twig-namespaces
有关最新发布版本的信息,请参阅 Packagist:信息。
使用方法
在 config.yml
中添加以下内容
plugins: twigNamespaces: enabled: true roots: - ../root1 - ../root2 namespaces: foo: recursive: true paths: - ../bar - ../baz
路径相对于同一目录下的 composer.json
和 vendor/
(不是配置文件所在的目录)。假设以下目录结构:
- pattern-lab/
- config/
- config.yml
- composer.json
- config/
- root1/
- 01-mountains/
- hood.twig
- 02-rivers
- sandy.twig
- 01-mountains/
- bar/
- item1.twig
- subdir/
- subitem1.twig
- baz/
- item2.twig
现在您可以在 Twig 中使用它了
{% include "@mountains/hood.twig" %} {% include "@rivers/sandy.twig" %} {@ include "@foo/item1.twig" %} {@ include "@foo/subitem1.twig" %} {@ include "@foo/item2.twig" %}
您可以使用 roots
或 namespaces
方法而不使用另一个。使用 roots
方法是 Pattern Lab 注册 source/_patterns/
下所有文件夹的命名空间(如 @atoms
)的方式,因此对于包含来自其他 Pattern Lab 的文件很有用(注意命名空间冲突 - 即您只能有一个 @atoms
)。而 namespaces
方法是 Drupal 组件库 模块注册 Twig 命名空间的方式,尽管它也可以用于在 Pattern Lab 中注册核心模块模板文件,这样您就可以 {% extend "@blocks/block.html.twig" %}
。如果使用 namespaces
并将 recursive: true
设置为 true,则它将添加所有子目录。
此外,您可以将 twigNamespaces.readFromFile
设置为 JSON 或 Yaml 文件的路径,然后它将读取这些内容并替换 twigNamespaces.namespaces
。
禁用插件
要禁用此插件,您可以直接编辑 ./config/config.yml
或使用命令行选项
php core/console --config --set plugins.twigNamespaces.enabled=false
祝您 Pattern Lab 开发愉快!