shel / yaml-splitter
分割 YAML 文件
Requires
- php: >=7.3
- symfony/console: ^5.1
- symfony/yaml: ^5.1
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
之后获得一个前缀,如 Document
、Content
或 Mixin
,基于实际节点类型的名称。
此外,如果提供了 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.*.yaml
从 Configuration
文件夹移动到另一个文件夹。它们将根据其命名方案自动放入子文件夹中。
例如,您在网站包的 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