Markdown预览和结果不同

根据 Creating bug reports for Discourse on Meta

try.discourse.org

https://try.discourse.org/t/word1-word2-word3-word4/1430?u=rokejulianlockhart

discuss.kde.org

https://discuss.kde.org/t/difference-between-preview-and-actual-post/1245/2?u=rokejulianlockhart

1 个赞

你好 @rokejulianlockhart

我可以重现它,预览确实与帖子不同。:slight_smile:
你标签上方或下方的空行在这里起了一点作用,但并不重要。如果你删除它们,它会包裹最近的下一个和上一个内容,但不是 全部 内容。

无空行 另外,为什么
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning

以及在 ActionButtonApplicationWindowFrame 前面加上 QQC2 不起作用,而

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2

以及添加 QQC2.Button(根据 [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss
新的一行

![image|690x412](upload://rIR9RPpxTxaXhuJmjQRWoOBO6ie.png)

话虽如此……
我以为问题是因为 <s>[^deprecated] 是一个内联元素。我可以用其他标签(如 <b><i>)重现它,但不能用 <strong><em> 重现。所以不是因为它是一个内联级元素。据我从 <strong><em> 看到的,Discourse 允许用内联元素包裹块级元素。

<strong>
<strong>

另外,为什么

```qml
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning
```

以及在 `Action`、`Button`、`ApplicationWindow` 和 `Frame` 前面加上 `QQC2` 不起作用,而

```qml
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2
```

以及添加 `QQC2.Button`(根据 https://discuss.kde.org/t/qml-pyqt6-cant-get-native-control-appearance/1240/2?u=rokejulianlockhart)却可以呢?
新的一行

</strong>

它似乎与 授权标签 无关,因为 Discourse 接受所有这些标签(<s><b><i><strong><em>…)。

它似乎也不是 markdown-it 的怪癖,因为我无法在 他们的演示 中重现该问题。

[^deprecated]:请注意,<s> 已被弃用,推荐使用 <u>。这是一个不会改变此问题细节的细节,但总是好的知道……我刚刚才了解到这一点 :smile:

5 个赞

出于好奇快速看了一下。看起来是 Nokogiri 库的问题。:thinking:

从 Discourse 在这里的使用来看:

Loofah.fragment 使用 Nokogiri 的 HTML4 解析器。

这可以通过使用 Loofah.html5_fragment 来修复,前提是 Nokogiri >= 1.14.0 且 Loofah >= 2.21.0。Discourse 已经在使用 Nokogiri::HTML5.fragment;这样更合理。

注意:Loofah 2.21.0 尚未发布;目前是 RC1 版本。

11 个赞

太棒的调试了!谢谢 :folded_hands:

6 个赞

我将为此添加书签30天,希望那时新的Loofah已发布,我们可以直接升级。

2 个赞

我刚刚尝试了 loofah 的 HTML5 版本,似乎遇到了一个安全问题:


  1) PrettyText 为 img bbcode 提供安全保障
     Failure/Error: expect(cooked).to eq(html)
     
       expected: "<p><img src=\"http://aaa.com&lt;script&gt;alert(1);&lt;/script&gt;\" alt=\"\" role=\"presentation\"></p>"
            got: "<p><img src=\"http://aaa.com<script>alert(1);</script>\" alt=\"\" role=\"presentation\"></p>"
     
       (compared using ==)
     # ./spec/lib/pretty_text_spec.rb:2150:in `block (2 levels) in <main>'
     # ./spec/rails_helper.rb:358:in `block (2 levels) in <top (required)>'
     # /home/sam/.gem/ruby/3.2.1/gems/webmock-3.18.1/lib/webmock/rspec.rb:37:in `block (2 levels) in <top (required)>'

我觉得这个风险很大……会提出……

3 个赞

非常感谢您的调试!我们已经通过以下方式修复了这个问题:

如下所示:

~~

另外,为什么

import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning

并且在 ActionButtonApplicationWindowFrame 前面加上 QQC2 不起作用,而

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2

并且添加 QQC2.Button(根据 [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss
~~

4 个赞

此主题在 2 天后自动关闭。不再允许回复。