evanlovely/plugin-twig-namespaces

Pattern Lab 的 Twig Namespaces 插件

安装量: 396,830

依赖项: 1

建议者: 0

安全性: 0

星标: 8

关注者: 1

分支: 1

类型:patternlab-plugin

v1.1.1 2017-11-10 23:21 UTC

This package is auto-updated.

Last update: 2024-09-06 12:35:26 UTC


README

Packagist Gitter

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.jsonvendor/(不是配置文件所在的目录)。假设以下目录结构:

  • pattern-lab/
    • config/
      • config.yml
    • composer.json
  • root1/
    • 01-mountains/
      • hood.twig
    • 02-rivers
      • sandy.twig
  • 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" %}

您可以使用 rootsnamespaces 方法而不使用另一个。使用 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 开发愉快!