log1x/sage-eject-blocks
将 Sage 10 编辑器脚本推出到可选的懒加载插件中。
Requires
- php: >=7.2
Requires (Dev)
This package is auto-updated.
Last update: 2021-03-06 20:06:07 UTC
README
那么这里有什么呢?
此包是对解决 Gutenberg 在主题开发工作流程中创建的关注点分离问题的策略进行的4-5小时半途而废的尝试/概念验证。
当前问题
Gutenberg 非常出色,但它破坏了主题工作流程,因为需要在主题 + Gutenberg 包/插件之间分离关注点。
如果您将区块代码编入您的主题,并且主题发生变化,您的区块就会消失,您可能会丢失内容。哎呀。
建议的解决方案
此方案试图通过允许您将区块脚本自动推出到插件中,同时优先从主题加载它们(如果存在),来解决这个问题。样式仍然来自您的主题,并在推出时不会包括在内。主题消失?插件接管。
主题保持主题,生成的插件功能……如果有的话。目前生成的插件中不依赖于 Sage 10 或 Acorn,但显然如果您想使用它,则需要它们。
避免冲突
目前使用 wp_script_is()
进行冲突避免——但我非常愿意接受其他解决方案/想法。
这允许我们在主题内部100%维护我们的工作流程,作为自由职业开发者、代理商等——承担起自己正确行事的责任,并将脚本推出到插件中,无论是手动、通过持续集成等,这样将来,如果网站要更改——他们不会遇到麻烦,您也不必改变过去XY年来的做事方式。
嗯……好吗?
概念和 CLI 流程可能有点粗糙,但我保证,如果这是一个会证明是有益的想法,并且人们真的想要它,我会让它变得更漂亮、感觉更好。
也许这不是看待这个问题的方式?也许这是无用的?我不知道。这就是为什么我把它放出来的原因。你告诉我。
不,真的。如果这是无用的,请立即停止我的痛苦。
TODO(可能?)
- 使 CLI 更漂亮。
- 允许更详细的输出。
- 允许更编程化(无需输入)。
- 允许预先配置(config/whatever.php)。
- 确保 CI 流程是充分的(见3/4)。
- 讨论
wp_script_is()
和替代方案。 - 讨论为了兼容性目的应该和不应该配置的内容。
- 确保插件加载器以最理想的方式编写(并按预期工作)。
- 某种类型的
row_action
信号,指示插件是否激活(脚本已加载)或延迟加载。 - 请检查代码。
需求
安装
通过 Composer 安装
$ composer require log1x/sage-eject-blocks
使用
$ wp acorn eject:blocks
错误报告
是的。
贡献
是的。
许可协议
Sage Eject Blocks 在 MIT 许可协议 下提供。