Vista previa y resultado de Markdown difieren

Según 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 me gusta

Hola @rokejulianlockhart

Puedo reproducirlo y la vista previa difiere de la publicación. :slight_smile:
La línea vacía debajo o encima de tus etiquetas juega un pequeño papel aquí, pero no es importante. Si las eliminas, se ajustará al contenido más cercano, pero no al contenido completo.

sin líneas vacías Además, ¿por qué
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning

y la preposición de QQC2 antes de Action, Button, ApplicationWindow y Frame no funciona, mientras que

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

y la adición de QQC2.Button (según [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss) sí lo hacen?
Una nueva línea

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

Dicho esto…
Pensé que el problema se debía a que <s>[1] era un elemento en línea. Puedo reproducirlo con otras etiquetas como <b> o <i>, pero no con <strong>, <em>. Así que no es porque sea un elemento de nivel de línea. Discourse permite envolver bloques con elementos en línea, por lo que puedo ver con <strong> o <em>.

<strong>
<strong>

Además, ¿por qué

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

y la preposición de `QQC2` antes de `Action`, `Button`, `ApplicationWindow` y `Frame` no funciona, mientras que

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

y la adición de `QQC2.Button` (según https://discuss.kde.org/t/qml-pyqt6-cant-get-native-control-appearance/1240/2?u=rokejulianlockhart) sí lo hacen?
Una nueva línea

</strong>

Parece no estar relacionado con las etiquetas autorizadas, ya que Discourse acepta todas estas etiquetas (<s>, <s>, <b>, <strong>, <i>, <em>…).

Tampoco parece ser una peculiaridad de markdown-it, ya que no puedo reproducir el problema en su demostración.


  1. Tenga en cuenta que <s> está obsoleto en favor de <s>. Un detalle que no cambiará nada en este problema, pero siempre es bueno saberlo… Acabo de aprenderlo ahora mismo :smile: ↩︎

5 Me gusta

Eché un vistazo rápido por curiosidad. Parece un problema con la biblioteca Nokogiri. :thinking:

Por lo que usa Discourse aquí:

Loofah.fragment usa el analizador HTML4 de Nokogiri.

Esto podría solucionarse usando Loofah.html5_fragment siempre que Nokogiri >= 1.14.0 y Loofah >= 2.21.0. Discourse ya usa Nokogiri::HTML5.fragment; eso tendría sentido.

Nota: Loofah 2.21.0 aún no se ha lanzado; actualmente en RC1.

11 Me gusta

¡Fantástico depurador! Gracias :folded_hands:

6 Me gusta

Voy a guardar esto por 30 días, espero que para entonces salga el nuevo loofah y podamos simplemente actualizarlo.

2 Me gusta

Acabo de probar la versión HTML5 de loofah y parece que estamos encontrando un problema de seguridad:


  1) PrettyText proporciona seguridad para el bbcode de img
     Fallo/Error: expect(cooked).to eq(html)
     
       esperado: "<p><img src=\"http://aaa.com&lt;script&gt;alert(1);&lt;/script&gt;\" alt=\"\" role=\"presentation\"></p>"
            obtenido: "<p><img src=\"http://aaa.com<script>alert(1);</script>\" alt=\"\" role=\"presentation\"></p>"
     
       (comparado usando ==)
     # ./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)>'

Este me parece muy arriesgado… lo reportaré…

3 Me gusta

Muchas gracias por tu depuración. Lo hemos solucionado con:

como se ve aquí:

~~

Además, ¿por qué

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

y la anteposición de QQC2 antes de Action, Button, ApplicationWindow y Frame no funciona, mientras que

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

y la adición de QQC2.Button (según [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss) sí funciona?
~~

4 Me gusta

Este tema se cerró automáticamente después de 2 días. Ya no se permiten nuevas respuestas.