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

以及在 Action、Button、ApplicationWindow 和 Frame 前面加上 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

并且在 Action、Button、ApplicationWindow 和 Frame 前面加上 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 天后自动关闭。不再允许回复。