Aperçu et résultat Markdown différents

Selon 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 « J'aime »

Salut @rokejulianlockhart

Je peux reproduire le problème et l’aperçu diffère effectivement du message. :slight_smile:
La ligne vide au-dessus ou en dessous de vos balises joue un rôle mineur ici, mais ce n’est pas important. Si vous les supprimez, cela encapsulera le contenu le plus proche, mais pas tout le contenu.

pas de lignes vides De plus, comment se fait-il que
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning

et la préposition de QQC2 avant Action, Button, ApplicationWindow et Frame ne fonctionnent pas, alors que

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

et l’ajout de QQC2.Button (selon [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss) fonctionnent ?
Une nouvelle ligne


Cela dit…
Je pensais que le problème venait du fait que <s>[^deprecated] était un élément en ligne. Je peux le reproduire avec d’autres balises comme <b> ou <i>, mais pas avec <strong>, <em>. Ce n’est donc pas parce que c’est un élément de niveau en ligne. Discourse permet d’encapsuler des blocs avec des éléments en ligne, d’après ce que je vois avec <strong> ou <em>.

<strong>
<strong>

De plus, comment se fait-il que

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

et la préposition de QQC2 avant Action, Button, ApplicationWindow et Frame ne fonctionnent pas, alors que

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

et l’ajout de QQC2.Button (selon [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss) fonctionnent ?
Une nouvelle ligne

```

Il semble que cela ne soit pas lié aux balises autorisées, puisque Discourse accepte toutes ces balises (<s>, <b>, <strong>, <i>, <em>…).

Il ne semble pas non plus s’agir d’une particularité de markdown-it, car je ne peux pas reproduire le problème dans leur démo.

[^deprecated] : Notez que <s> est déprécié en faveur de <s>. Un détail qui ne changera rien à ce problème, mais bon à savoir… Je viens de l’apprendre juste maintenant en fait :smile:

5 « J'aime »

J’ai jeté un coup d’œil rapide par curiosité. Il semble y avoir un problème avec la bibliothèque Nokogiri. :thinking:

D’après ce que Discourse utilise ici :

Loofah.fragment utilise le parseur HTML4 de Nokogiri.

Cela pourrait être corrigé en utilisant Loofah.html5_fragment tant que Nokogiri >= 1.14.0 et Loofah >= 2.21.0. Discourse utilise déjà Nokogiri::HTML5.fragment; cela aurait du sens.

Note : Loofah 2.21.0 n’est pas encore sorti ; actuellement en RC1.

11 « J'aime »

Excellent débogage ! Merci :folded_hands:

6 « J'aime »

Je vais mettre cela en favori pendant 30 jours, j’espère qu’à ce moment-là le nouveau loofah sera sorti et que nous pourrons simplement le mettre à niveau.

2 « J'aime »

J’ai juste essayé la version HTML5 de loofah et nous semblons rencontrer un problème de sécurité :


  1) PrettyText assure la sécurité du bbcode img
     Failure/Error: expect(cooked).to eq(html)
     
       attendu : "<p><img src=\"http://aaa.com&lt;script&gt;alert(1);&lt;/script&gt;\" alt=\"\" role=\"presentation\"></p>"
            obtenu : "<p><img src=\"http://aaa.com<script>alert(1);</script>\" alt=\"\" role=\"presentation\"></p>"
     
       (comparé en utilisant ==)
     # ./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)>'

Celui-ci me semble très risqué… je vais soulever…

3 « J'aime »

Merci beaucoup pour votre débogage ! Nous avons corrigé cela avec :

comme on le voit ici :

~~

De plus, comment se fait-il que

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

et la préposition de QQC2 avant Action, Button, ApplicationWindow et Frame ne fonctionnent pas, alors que

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

et l’ajout de QQC2.Button (selon [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss) fonctionnent ?
~~

4 « J'aime »

Ce sujet a été automatiquement fermé après 2 jours. Les nouvelles réponses ne sont plus autorisées.