通过 YAML 编写 WordPress 主题 JSON 文件的新插件

我有一个新的最喜欢的 WordPress 开发相关插件: 主题 YAML. Sascha Paukner 仅在一天前发布了它,它可能很快就会在许多主题开发人员的工具箱中找到它的位置。 它允许用户编写主题 JSON YAML 格式.

要使用,主题作者只需要创建一个新的 theme.yaml 文件并开始以人性化的 YAML 格式添加他们的自定义配置。 该插件会将其转换为 JSON 并将其保存到 theme.json 文件中。

作为一个经常直接用 JSON 编写代码的人,在我的代码编辑器中看到以下内容时,我感到非常高兴:

new-plugin-for-writing-wordpress-theme-json-files-via-yaml 用于通过 YAML 编写 WordPress 主题 JSON 文件的新插件

那很漂亮。

我只是希望我首先想到了这个插件的想法。 在处理其他系统并将数据转换为 PHP 和 JSON 时,我经常使用 YAML 文件。 我一看到插件描述就明白了。

在处理配置文件时,JSON 不是最容易编写的格式,这就是 theme.json 文件。 它适用于跨语言数据存储,但在打开 JSON 文件进行输入时,我有时会感到畏缩,尤其是当它有 100 或 1000 行时。 此外,您不能留下内嵌评论来提醒自己或他人为什么做出特定决定或配置设置。

YAML 更好吗? 它有其优点和缺点,根据我的经验,部分语法对于不熟悉的人可能会变得复杂。 但是,仅支持内联注释是值得的。

该插件的文档充其量只是最基本的。 它没有说明它是如何在引擎盖下工作的。 我有问题。 是否有转换设置? 是自动的吗? 每次页面加载都会发生吗?

我在引擎盖下达到顶峰,这样你就不必这样做了。 加载页面时,插件会自动在活动主题的根文件夹中搜索 theme.yaml 文件。 如果找到,它将检查其最后修改时间并将值存储在数据库中。 如果有新的修改,插件会解析 theme.yaml,将其转换为 JSON,并将其写入 theme.json 文件。

如果活动主题是子主题,它也会自动为其父主题运行此过程。

该插件的缺点是它使生成的 JSON 缩小,难以阅读。 当您手头有 theme.yaml 文件时,这是可以的。 但是,当提交到 WordPress.org 主题目录时,这个“构建”文件通常是主题作者不会捆绑在他们的主题 ZIP 中的东西。

我坚信发送代码对于收到副本的人来说都是可读和可编辑的。 主题作者有几个选项可以做到这一点。 他们可以同时发布 theme.json 和 theme.yaml 文件,或者在插件的主文件中更改以下代码:

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES);

我们只需要打开 JSON_PRETTY_PRINT 标志 json_encode() 函数

$themeJson = json_encode($themeObject, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);

我希望插件开发者会在未来的版本中考虑这一变化,或者允许主题作者对其进行过滤。

对于回避 theme.json 的主题作者,还有其他解决方案。 过去,我已将我的 JSON 拆分为跨多个文件的可管理块。 然后,我用了一个 用于合并它们的 webpack 插件 在我的监视/构建过程中。

我建议使用 JS YAML 解析器 或类似的软件包,适合那些喜欢 YAML 但希望与他们的构建系统集成的人。

像这样

加载中…

资源

相关文章