如果缺少 alt 文本,图像缩放将无法正常工作

不确定这是预期行为还是 bug,但最近一次(大约一周前?)更新后,如果图片缺少 alt 文本,图片缩放相关的 % 按钮以及实际缩放功能就无法正常工作了,而之前是可以的。

如果帖子中包含多张图片,其中一张缺少 alt 文本,当你点击它的 % 按钮时,它会改变另一张具有 alt 文本的图片的缩放比例(编辑:我刚刚将分类改为 bug,因为即使确实需要 alt 文本,也不应该出现这种情况)。

以下用法现在无法工作,但之前是可以的:
![690x184, 40%](upload://hash)

正如预期,在图片尺寸前添加 alt| 部分即可修复此问题。

我需要更新一些主题以适应这一变化,否则这些图片在最终重新渲染时将会以 100% 显示。我也意识到其他人可能也会遇到同样的问题,因此发布了这篇帖子。

1 个赞

可以复现,移除替代文本会破坏图片缩放。

2 个赞

嗯,@sam,你对这个怎么看?

1 个赞

我认为这在没有替代文本的情况下从未生效过,我想我们可以支持它。

2 个赞

它确实有效,我的实例中有多个主题具有正确的缩放比例,但缺少替代文本。如果我对其中任何一个重新烘焙,缩放就会消失。

编辑:这可能与此更改有关吗?

不过,我找不到任何能解释帖子处理过程中差异的内容。

我不介意编辑这些主题,但其他人也可能遇到这种情况,而且缺少 alt 属性的图片上的调整大小控件不应改变另一张图片的缩放比例。

说得通,如果你确定之前是有效的,那我百分之百相信你。

@david 我想这很可能是你的回归问题,看起来修复起来应该很简单?

4 个赞

是的,看起来这确实是我的修改。我之前以为之前的实现是一个 bug。我们所有的测试都假设尺寸会出现在 | 字符之后:

我可以将我们的代码恢复为旧的行为,并添加一个测试以确保其持续正常工作。但这样做意味着你将永远无法拥有像 123x123 这样的带替代文本的图片。

@renato 你知道你的 Markdown 中为什么最终没有管道字符吗?据我所知,所有 UI 选项都应该生成带管道的格式 :thinking:

6 个赞

是的,我注意到这种行为的帖子都是通过 API 创建的,其预设的原始内容在 UI 中已经过测试。我特意移除了两张图片的替代文本,因为它们对于屏幕阅读器来说意义不大。

如果你最终决定采用这种新行为,我也可以适应。

离题:能否推荐一个插件,它可以将 [something] 转换为某些原始内容,作为我自己开发插件的灵感?这样我就可以对所有相关主题进行一次编辑,如果将来需要再次修改,只需重新渲染即可。

2 个赞

是的,我认为适应这里的新方式更好。我们从未真正打算支持这个。对更多格式提供更广泛的支持意味着后端需要更多代码,测试工作量也会增加。

最简单的方法是使用数据库重映射,详见:Replace a string in all posts - Self-Hosting - Discourse Meta

3 个赞

好的,那我就保留建议,仅在有可缩放功能的图片上显示缩放按钮。

哦,对于这次具体的更改,我可以这样做,谢谢。不过,这并非我唯一一处由外部服务管理的预设原始内容的位置。也许我可以从 poll 插件中获取一些灵感——或者如果您记得更简单的方案,请告诉我。

感谢您的帮助,也为这个小题大做的问题给您带来的诸多打扰表示歉意。

3 个赞

完全没关系,感谢您提出这个问题并如此耐心地等待我们。

3 个赞