使WordPress成为核心

开的14个月前

关闭14个月前

上次修改时间13个月前

#57852 关闭 缺陷(bug) (固定的)

HTML API:支持RCData和Script标记关闭器

报告人: 齐拉达姆的简介 齐拉达姆 所有者: hellofromtonya的简介 hellofrom托尼亚
里程碑: 6.2 优先: 正常的
严重程度: 正常的 版本: 6.2
组件: HTML API 关键词: has-patch接口 has-unit-测试 has-testing-info(有测试信息) 犯罪
重点: 复写的副本:

描述

此建议旨在增强标记处理器,使其导航到</script>,</text区域>、和</title>标签闭合器:

$p=新的WP_HTML_Tag_Processor('<script>ABC</script><p>');$p->next_tag();$p->next_tag(数组(“tag_clossers”=>“visit”);$p->get_tag();//'脚本'

标签处理器支持标签关闭器。因此,只有始终如一地支持它们,才有意义。

更改历史记录(22)

#1 @hellofrom托尼亚
14个月以前

  • 类型已从更改缺陷(bug)增强

更改为HTML API的增强功能。

这张票是在采购订单号4164WordPress/WordPress-develop开发通过@齐拉达姆.


14个月以前
#2

  • 关键词 has-patch接口 has-unit-测试已添加

##描述

使用此PR,标签处理器可以导航到</script>,</text区域>、和</title>标签闭合器:

{{php
$p=新的WP_HTML_Tag_Processor('<script>ABC</script><p>');
$p->next_tag();
$p->next_tag(数组('tag_closs'=>'visit'));
$p->get_tag();'脚本'
}}}

如果不进行此提交,Tag Processor将跳过它们:

{{php
$p=新的WP_HTML_Tag_Processor('<script>ABC</script><p>');
$p->next_tag();
$p->next_tag(数组(“tag_clossers”=>“visit”);
$p->get_tag();“p”
}}}

Tag Processor支持Tag Closer,因此只有一致地支持它们才有意义。

抄送@ockham@dmsnell@hellofromtonya@gziolo

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

@hellofrom托尼亚对发表了评论采购订单号4164:


14个月以前
#3

@阿达齐尔https://core.trac.wordpress.org/ticket/56299已关闭。我打开了一个新Trac票用于此增强功能。

问题:这篇文章已经在古腾堡发布了吗?如果没有,则可能需要移至6.3。

@齐拉达姆对发表了评论采购订单号4164:


14个月以前
#4

@hellofromtonya它还没有在古腾堡发布,不。那我们就跳到6.3吧。我会循环输入@ntsekouras和@Mamaduka以防万一

@hellofrom托尼亚对发表了评论采购订单号4164:


14个月以前
#5

那么让我们跳到6.3。或6.2.1?我会循环输入@ntsekouras和@Mamaduka以防万一

增强功能需要进入专业。我会把它移到6.3。谢谢你@adamziel!

#6 @hellofrom托尼亚
14个月以前

  • 里程碑已从更改等待审查6.3

#7 @hellofrom托尼亚
14个月以前

  • 所有者设置为hellofrom托尼亚
  • 状态已从更改新的审查

自我分配以进行提交审核。

@hellofrom托尼亚对发表了评论采购订单号4164:


14个月以前
#8

还想知道@adamziel@dmsnell,6.3将于2023年8月发布。与其继续在Core中开发HTML API,不如将其改进和增强的支持/功能返回到Gutenberg。然后在准备好后将其返回到Core。这样,每个人都可以获得更快的测试和反馈周期。你怎么认为?

@齐拉达姆对发表了评论采购订单号4164:


14个月以前
#9

增强功能需要进入专业。

@hellofromtonya噢,这是一个错误修复,不是增强。标签处理器一开始就不应该忽略这些标签闭合器。

@hellofrom托尼亚对发表了评论采购订单号4164:


14个月以前
#10

哦,这是一个错误修复,不是增强。标签处理器一开始就不应该忽略这些标签闭合器。

@谢谢你的澄清!

此错误修复对于6.2是否至关重要?如果是,它可能会被提交到6.2中,但会触发另一个测试版。

@齐拉达姆对发表了评论采购订单号4164:


14个月以前
#11

@hellofromtonya都很好,6.2.1应该可以。我稍后会回复你的其他评论

#12 @hellofrom托尼亚
14个月以前

  • 里程碑已从更改6.36.2
  • 类型已从更改增强缺陷(bug)

在与@zieladam交谈时,这张罚单确实是一个错误修复:

标签处理器一开始就不应该忽略这些标签闭合器。

我将进入6.2.0,因为6.2.1尚未打开。然而,如果触发了另一个测试版,则可以将其与6.2.0一起交付。

这张票是在松弛(Slack)costdev的in#core。查看日志.


14个月以前

@齐拉达姆对发表了评论公共关系编号4164:


14个月以前
#14

与其在HTML API上继续在Core中进行开发,不如继续将其改进和增强的支持/功能返回到Gutenberg。然后在准备好后将其返回到Core。这样,每个人都可以获得更快的测试和反馈周期。你怎么认为?

这些标签处理器PR现在瞄准核心有几个原因:

  • 它消除了发布周期中大型核心PR太晚的风险–所有更改都已经存在
  • 将更改反向移植到Core并不快也不简单,但将更改反向转移到Gutenberg是
  • 不更新Gutenberg文件意味着无需解决冲突
  • 单元测试已经转移到核心,在古腾堡回购中运行或更新它们很麻烦。我想古腾堡也可以维护一个单独的单元测试副本,但这意味着需要额外的后台移植和调试工作

抄送:dmsnell@ockham

@齐拉达姆对发表了评论采购订单号4164:


14个月以前
#15个

@hellofromtonya@dmsnell我选择了一个单独的测试用例,没有数据提供程序来测试这两个用例(<script></script></script>). 我找不到一种干净的方法将它们安装到讨论中提到的现有测试用例中。

#16 @hellofrom托尼亚
14个月以前

  • 关键词 has-testing-info(有测试信息)已添加

测试报告

补丁测试:https://github.com/WordPress/WordPress-develop/pull/4164

复制或测试步骤

  1. 在中创建必须使用的插件目录wp-含量/mu-plugins/.
  2. 添加新的测试.php文件。
  3. 将以下代码复制到测试文件中:
    <?php程序
    
    添加操作(_A)( “初始化”, 功能() {
            美元 = 新的 WP_HTML_Tag_处理器( “<script>ABC</script><p>一些内容</p>” );
            美元->下一个标签();
            美元->下一个标签( 阵列( '标记失败者' => “访问” ) );
            $标签 = 美元->获取标签(); //应为“脚本”        回声 “<p style='margin:30px;font-size:50px'>$标签</p>“
            出口
    });
    
    
  1. 刷新浏览器以查看站点。🐞出现错误。

预期结果

测试补丁以验证其是否按预期工作时:

  • 它应该显示:脚本

重现错误时:

  • 它将显示:P(P)

环境

  • 浏览器:Chrome
  • 本地主机:wp-env(Docker)
  • 操作系统:macOS
  • 插件:无
  • 主题:TT3
  • WordPress:trunk(中继)

实际结果

再现错误/缺陷时:

  • 是的,可以确认它找到了P(P)而不是脚本.

测试修补程序时:

  • 是的,可以确认当应用补丁时,它现在会找到更接近的标签,即。脚本.
自动化测试

运行时

npm运行测试:php---group html-api

使用补丁,结果是❌:

…………..F……….………..63/164(38%)............................................................... 126 / 164 ( 76%)......................................                          164 / 164 (100%)时间:00:01.991,内存:150.50 MB出现1个故障:1) 测试HtmlApi_wpHtmlTagProcessor::test_ext_tag_should_stop_on_rcdata_and_script_tag_clossers_when_requested找不到更接近的</script>标记无法断言false为true。

这是意料之中的,并重现了错误。

应用补丁后,测试通过

@hellofrom托尼亚对发表了评论采购订单号4164:


14个月以前
#17

已确认:

  • 如果没有修复,测试将失败
  • 测试通过修复
  • 手动测试:
    • 能够在不修复的情况下重现问题
    • 应用修复后,按预期工作


测试报告https://core.trac.wordpress.org/ticket/57852#评论:16

#18 @hellofrom托尼亚
14个月以前

  • 版本设置为大旅行箱

第4164页已准备好提交。

由于明天将有一个计划外的Beta 5,我现在正在为该Beta准备提交。这将在6.2中发货。

#19 @hellofrom托尼亚
14个月以前

  • 关键词 犯罪已添加

#20 @hellofrom托尼亚
14个月以前

  • 分辨率设置为固定的
  • 状态已从更改审查关闭

55469:

HTML API:修复查找RCData和Script标记闭合器的问题。

修复了查找以下标记闭合器的问题</script>,</text区域>、和</title>在里面WP_HTML_Tag_处理器.

后续行动[55407],[55203].

道具齐拉达姆、德姆斯内尔、希罗弗洛姆托尼亚。
修复#57852.
请参见#57575.

#22 @谢尔盖·比尤科夫
13个月以前

  • 组件已从更改概述HTML API
注:请参见TracTickets公司有关使用的帮助门票。