跳到内容
新问题

对这个项目有疑问吗?注册一个免费的GitHub帐户以打开一个问题,并联系其维护者和社区。

单击“注册GitHub”,表示您同意我们的服务条款隐私声明。我们偶尔会向您发送与帐户相关的电子邮件。

已经在GitHub上了?登录到您的帐户

允许block.json的style属性为数组,并添加对基于对象的块样式的支持 #2853

对话

阿达齐尔
复制链接
贡献者

@阿达齐尔 阿达齐尔 评论2022年6月22日

这个公关解决了什么问题?

WordPress/gutenberg#34180我们将块CSS移动到块Json.支持__实验风格.本公关将其置于块Json.style在根级别。目标是只有一个定义样式的位置。

方块.json之前本公关:

{
	“支架”:{
		“__treantialStyle”:{
			“边框”:{			
				“颜色”:{
					“文本”:“#fff”,
					“背景”:“#32373c”
				}
			}
		}
	},
	“样式”:“wp-块-按钮”
}

方块.json之后本公关:

{
	“样式”:[ “wp-块-按钮”, {
		“边框”:{			
			“颜色”:{
				“文本”:“#fff”,
				“背景”:“#32373c”
			}
		}
	}]
}

此PR是WordPress/gutenberg#41656

其他注意事项

这是一个突破性的更改–任何现有的代码都假定风格如果是单个项或字符串数组,则最多会抛出一个通知。

测试计划

  1. 将此PR应用于您当地的wordpress-develop
  2. 运行npm运行生成
  3. 应用将块css从supports>__terialStyle移动到block.json中的顶级样式键古腾堡#41873到您当地的Gutenberg安装
  4. 建造古腾堡
  5. 将主题切换为TwentyTwenty
  6. 创建新页面
  7. 插入一个按钮,给它一些文本
  8. 保存,在前端查看
  9. 确认按钮底部有大填充

复写的副本@格特戴夫 @邋遢鬼 @德拉加内斯库

Trac票:https://core.trac.wordpress.org/ticket/56094

@邋遢鬼
复制链接

这是一个突破性的改变——任何假定样式是单个项或字符串数组的现有代码最多都会抛出一个通知。

这似乎是一个拦截器。我们可以更改它以允许使用字符串吗?

src/wp-includes/blocks.php 过时的 显示已解决 隐藏已解决
@阿达齐尔
复制链接
贡献者 作者

阿达齐尔 评论2022年6月24日

这似乎是一个拦截器。我们可以更改它以允许使用字符串吗?

@邋遢鬼哦,它可以是字符串。我的意思是它可以是:

  • 一根绳子
  • 字符串数组
  • 字符串和数组的混合数组

因此,任何假设它只是字符串或字符串[]的代码都会中断。

@阿达齐尔
复制链接
贡献者 作者

@邋遢鬼我应用了所有的反馈,并刷新了相关的古腾堡公关。这一个是准备再次审查!

@齐奥罗
复制链接
成员

@阿达齐尔,非常感谢您考虑为多个风格每个块类型的样式。一切都朝着正确的方向发展。将更改传播到其他地方需要做更多的工作:

这还将包括这两个类的现有单元测试。新功能还需要单元测试覆盖率。

我不认为我们消费风格从古腾堡的REST API端点,但为了安全起见,我们应该仔细检查。

我们还应该扩展现有文档块.json包括新支持的样式格式:
https://github.com/WordPress/gutenberg/blob/trunk/docs/reference-guides/block-api/block-metadata.md#style

此修补程序仅覆盖的原因是什么风格但不是编辑器样式?

@齐奥罗
复制链接
成员

我们必须放一个空的_wp_多块_样式函数和弃用消息,例如:

/**
*将需要加载到编辑器iframe中的块编辑器资源作为内联脚本注入。
*
*@自5.8.0起
*@已弃用6.0.0
*/
功能 wp_add_iframed_editor资产html() {
_已弃用的函数(__功能__,'6.0.0');
}

@齐奥罗
复制链接
成员

看起来我们已经涵盖了所有内容,因此需要进行最终审查和一轮测试,无论是否使用Gutenberg插件。

@阿达齐尔
复制链接
贡献者 作者

阿达齐尔 评论2022年6月29日

我认为我们现在很好!不过,GitHub CI似乎已关闭,所以在合并之前,可能值得等待它再次启动。

@阿达齐尔 阿达齐尔更改了标题允许block.json的style属性为数组 允许block.json的style属性为数组,并添加对基于对象的块样式的支持 2022年6月29日
@阿达齐尔
复制链接
贡献者 作者

所有测试都通过了!你能帮我批准这份公关吗?科科斯群岛@齐奥罗 @亚里士多德 @邋遢鬼 @格特戴夫

复制链接

@邋遢鬼 邋遢鬼 留下了评论

选择隐藏此评论的原因

将显示原因,以便向其他人描述此评论。了解更多信息.

LGTM公司

@阿达齐尔
复制链接
贡献者 作者

@齐奥罗你觉得你能合并这个吗?

@阿达齐尔
复制链接
贡献者 作者

复写的副本@米提亚斯进行稳健性检查&你觉得这种改变合理吗?

@齐奥罗
复制链接
成员

吉奥罗牌手表 评论2022年7月8日

在我看来,描述中共享的示例看起来不错,因为它整合了几个可用的选项。将来,我们还可以使用从中借用的相同API主题.json对于样式变化:

{“样式”: [{“名称”:"违约",“标签”:"违约",“是默认值”:真的},{“名称”:"其他",“标签”:"其他",“设置”: {“边框”: {“颜色”: {“文本”:"#000",“背景”:"#中央控制中心"}}}}],“样式”:  ["wp块按钮", {“边框”: {“颜色”: {“文本”:"#飞行频率",“背景”:"#32373c个"}}} ]}

@齐奥罗
复制链接
成员

让我们着陆WordPress/gutenberg#41873首先在Gutenberg插件中尝试一下,然后再将其包含在WordPress核心中。代码化的一切都准备好了,并且有足够的审阅者。我们主要需要验证风格在里面块.json对开发人员来说是友好的&主要的问题是它是否直观且易于文档化。

@阿达齐尔
复制链接
贡献者 作者

我要结束这个以支持#3108

免费注册 在GitHub上加入此对话.已经有帐户了吗?登录以发表评论
标签
还没有
项目
还没有
开发

成功合并此请求可能会解决这些问题。

4名参与者