您好,我从另一个论坛软件导入了一些带有换行符的标题帖子。这些在帖子预览中显示正确,但在最终的帖子中却无法渲染为标题。我在昨天更新的论坛以及 Discourse Meta 上都遇到了这个问题:
标题带换行符的测试
普通段落。
无换行符的标题
它将 <h2> 留空,并将后面的文本包装在 <p> 中:
<h2 dir="ltr">
</h2><p dir="ltr">标题带换行符的测试</p>
我99%确定这是一个最近的回归错误,因为在迁移过程中,我特意检查了同一用户导入的帖子的标题,用户和我自己都记得它们当时是正确渲染的。
2 个赞
sam
(Sam Saffron)
3
嗯,考虑到那里的 LTR 内容,@Osama 这会不会与我们最近添加的 CSS 翻转器有关?
2 个赞
Osama
4
我不这么认为,因为帖子的最终/已处理 HTML 是错误的,而 CSS 翻转器(无论是旧的还是新的)根本不参与帖子的处理过程。
^ <p> 中的文本应该在 <h2> 中,而且我认为根本不应该有 <p>。
6 个赞
selase
(Selase Krakani)
5
这似乎发生在烹饪过程中,特别是 markdown 解析。
将带有换行的标题传递给 PrettyText.markdown 会返回用 p 标签包裹的标题内容。
然后,在清理过程中,段落会从标题标签中提取出来,导致如下结果:
我猜这是因为标题中的段落不符合规范?
我仍在审查 markdown 解析器代码,以找出内容最初被包裹在 p 标签中的原因。
2 个赞
你好,感谢你对此进行调查。HTML 不关心换行符,所以从技术上讲,这是正确的:
<h2>
带换行的标题测试
</h2>
这似乎只是 Markdown 解析器在 HTML 解析器之后/内部运行的问题,它为换行符生成了 <p> 标签。
1 个赞
很高兴听到这个消息,谢谢你,@nat!这需要重新烘焙帖子吗?
2 个赞
nat
(Natalie T)
13
是的,这需要重新烘焙 — 我们无法在此修复中自动为您执行此操作,因为这是一项耗时的操作。
3 个赞