shel/yaml-splitter

分割 YAML 文件

资助包维护!
Patreon
sebobo

1.0.1 2022-03-18 12:47 UTC

This package is auto-updated.

Last update: 2024-09-08 23:22:01 UTC


README

功能

  • 将包含多个 nodetypes 的 YAML 文件分割成单独的文件,每个文件包含一个 nodetype
  • 将旧样式的 Configuration 文件夹中的 nodetypes 文件重新组织到新的 NodeTypes 文件夹,并根据其命名方案创建子文件夹

安装

推荐

下载最新版本的 Phar 版本,您可以在此处找到它:最新发布。在 Assets 部分的个人更改日志之后。

之后,您应该通过运行以下命令使文件可执行:

chmod a+x yaml-splitter.phar

现在您可以按照以下使用示例进行操作。

通过 composer

通过以下方式将此工具添加为项目依赖项:

composer require --dev shel/yaml-splitter 

或通过以下方式全局安装包:全局

composer global require shel/yaml-splitter 

之后,您可以通过在命令前加上使用示例来运行您项目中的命令

bin/yaml-splitter.php split ...

使用

列出命令

./yaml-splitter.phar list

显示分割命令的选项

./yaml-splitter.phar help split

分割文件

./yaml-splitter.phar split [options] [--] <path> [<output-path>]

这将复制输入文件中找到的每个节点类型到新文件中。每个新文件将具有类似 NodeTypes.MyNodeType.yaml 的名称。

此外,每个文件名将在 NodeTypes 之后获得一个前缀,如 DocumentContentMixin,基于实际节点类型的名称。

此外,如果提供了 package-key 选项,则匹配包密钥的节点类型将具有标准命名,而其他节点类型将获得类似 NodeTypes.Override.SomeOtherNodeType.yaml 的名称。

选项

  • dry-run 允许查看将发生什么,而不会写入任何文件
  • use-folders 将 nodetypes 分割成 Neos 7.2+ 的文件夹结构
  • package-key 允许定义您节点类型的主要包密钥,因此具有不同包密钥的节点类型将被写入 NodeTypes.Override.xyz 文件。
  • indentation 结果 YAML 文件中的缩进空格数

示例

./yaml-splitter.phar split --dry-run --package-key MyVendor path/to/MyVendor.NodeTypes.yaml path/to/package

将配置文件夹中的 nodetypes 重新组织到 Neos 7.2+ 的 nodetype 子文件夹中

使用 Neos 7.2,可以组织 nodetypes 到与 Configuration 不同的文件夹中。这也允许您使用子文件夹。

使用以下命令可以将所有 NodeTypes.*.yamlConfiguration 文件夹移动到另一个文件夹。它们将根据其命名方案自动放入子文件夹中。

例如,您在网站包的 Configuration 文件夹中有以下文件:

Configuration
├── NodeTypes.Content.Image.yaml
├── NodeTypes.Content.Text.yaml
├── NodeTypes.Document.Abstract.Page.yaml
├── NodeTypes.Document.Home.yaml
├── NodeTypes.Document.Page.yaml
├── NodeTypes.Override.Content.Popup.yaml
├── NodeTypes.Override.Mixin.Document.yaml
└── NodeTypes.Override.Mixin.MarginMixin.yaml

现在运行 reorganize 命令

./yaml-splitter.phar reorganize path/to/sitepackage/Configuration path/to/sitepackage/NodeTypes

执行命令后,您将获得以下结构

NodeTypes
├── Content
│   ├── Image.yaml
│   └── Text.yaml
├── Document
│  ├── Abstract
│  │   └── Page.yaml
│  ├── Home.yaml
│  └── Page.yaml
└── Override
    ├── Content
    │   └── Popup.yaml
    └── Mixin
        ├── Document.yaml
        └── MarginMixin.yaml

注意:如果您仍然在一个文件中有多于一个的 nodetypes,建议先运行 split 命令,然后运行 reorganize

贡献

此工具基于 Symfony 控制台组件。

构建 Phar

首先 安装 box

然后运行

composer run compile