Canapin
(Coin-coin le Canapin)
Maio 4, 2023, 8:22pm
2
Olá @rokejulianlockhart
Consigo reproduzir e a pré-visualização realmente difere da postagem.
A linha vazia acima ou abaixo das suas tags tem um pequeno papel aqui, mas não é importante. Se você as remover, elas envolverão o conteúdo mais próximo, anterior e posterior, mas não todo o conteúdo.
sem linhas vazias
Além disso, por que
```qml
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning
```
e a preposição de `QQC2` antes de `Action`, `Button`, `ApplicationWindow` e `Frame` não funcionam, enquanto
```qml
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2
```
e a adição de `QQC2.Button` (via https://discuss.kde.org/t/qml-pyqt6-cant-get-native-control-appearance/1240/2?u=rokejulianlockhart) funcionam?
Uma nova linha
```

Dito isso…
Pensei que o problema fosse porque <s> era um elemento inline. Consigo reproduzir com outras tags como <b> ou <i>, mas não com <strong>, <em>. Portanto, não é porque é um elemento de nível inline. O Discourse permite envolver blocos com inlines, pelo que vejo com <strong> ou <em>.
<strong>
<strong>
Além disso, por que
```qml
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning
e a preposição de QQC2 antes de Action, Button, ApplicationWindow e Frame não funcionam, enquanto
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2
e a adição de QQC2.Button (via [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss ) funcionam?
Uma nova linha
````

Parece não estar relacionado a tags autorizadas , já que o Discourse aceita todas essas tags (<s>, <b>, <strong>, <i>, <em>…).
Parece não ser um problema do markdown-it também, já que não consigo reproduzir o problema em o demo deles .
5 curtidas
Dei uma olhada rápida por curiosidade. Parece um problema com a biblioteca Nokogiri.
Pelo que o Discourse usa aqui:
doc = Nokogiri::HTML5.fragment(sanitized)
add_nofollow = !options[:omit_nofollow] && SiteSetting.add_rel_nofollow_to_user_content
add_rel_attributes_to_user_content(doc, add_nofollow)
strip_hidden_unicode_bidirectional_characters(doc)
sanitize_hotlinked_media(doc)
add_mentions(doc, user_id: opts[:user_id]) if SiteSetting.enable_mentions
scrubber = Loofah::Scrubber.new { |node| node.remove if node.name == "script" }
loofah_fragment = Loofah.fragment(doc.to_html)
loofah_fragment.scrub!(scrubber).to_html
end
def self.strip_hidden_unicode_bidirectional_characters(doc)
return if !DANGEROUS_BIDI_REGEXP.match?(doc.content)
doc
.css("code,pre")
.each do |code_tag|
next if !DANGEROUS_BIDI_REGEXP.match?(code_tag.content)
Loofah.fragment usa o parser HTML4 do Nokogiri.
Isso poderia ser corrigido usando Loofah.html5_fragment desde que Nokogiri >= 1.14.0 e Loofah >= 2.21.0. O Discourse já usa Nokogiri::HTML5.fragment; isso faria sentido.
Observação: Loofah 2.21.0 ainda não foi lançado; atualmente em RC1.
11 curtidas
sam
(Sam Saffron)
Maio 5, 2023, 3:45am
5
Depuração fantástica! Obrigado
6 curtidas
sam
(Sam Saffron)
Maio 8, 2023, 3:30am
6
Vou marcar isso para 30 dias, espero que então o novo loofah esteja disponível e possamos simplesmente atualizá-lo.
2 curtidas
sam
(Sam Saffron)
Maio 12, 2023, 2:36am
8
Acabei de testar a versão HTML5 do loofah e parece que estamos encontrando um problema de segurança:
main ← loofah
opened 02:35AM - 12 May 23 UTC
https://meta.discourse.org/t/markdown-preview-and-result-differ/263878
The re… sult of this markdown had different results in the composer preview and the post. This is solved by updating Loofah to the latest version and using html5 fragments like our user had reported. While the change was only needed in [cooked_post_processor.rb](https://github.com/discourse/discourse/pull/21500/files#diff-67de7f44aa04f02ceba9770e5d83b4465add3bd4297be871f94a2233cd4831a7), I've updated the other areas of our codebase to also use the html5 fragment.
> <strike>
>
> Additionally, how come
>
> ```qml
> import QtQuick
> import QtQuick.Controls 2.15 as QQC2
> import QtQuick.Layouts
> import QtPositioning
> ```
>
> and prepension of `QQC2` before `Action`, `Button`, `ApplicationWindow`, and `Frame` doesn't work, whereas
>
> ```qml
> import QtQuick
> import QtQuick.Controls
> import QtQuick.Layouts
> import QtPositioning
> import QtQuick.Controls 2.15 as QQC2
> ```
>
> and addition of `QQC2.Button` (per https://discuss.kde.org/t/qml-pyqt6-cant-get-native-control-appearance/1240/2?u=rokejulianlockhart) does?
>
> </strike>
<img width="643" alt="Screenshot 2023-05-11 at 3 15 36 PM" src="https://github.com/discourse/discourse/assets/1555215/e7087502-b0a1-4219-be0b-ad3904cc6a6f">
Related:
- ~~https://github.com/discourse/discourse/pull/21500~~
- https://github.com/discourse/discourse-footnote/pull/62
- https://github.com/discourse/discourse-bbcode/pull/50
1) PrettyText fornece segurança para bbcode de img
Falha/Erro: expect(cooked).to eq(html)
esperado: "<p><img src=\"http://aaa.com<script>alert(1);</script>\" alt=\"\" role=\"presentation\"></p>"
obtido: "<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 muito arriscado… vou levantar…
3 curtidas
nat
(Natalie T)
Junho 20, 2023, 12:43pm
9
Muito obrigado pela sua depuração! Corrigimos isso com:
main ← loofah
opened 02:35AM - 12 May 23 UTC
https://meta.discourse.org/t/markdown-preview-and-result-differ/263878
The re… sult of this markdown had different results in the composer preview and the post. This is solved by updating Loofah to the latest version and using html5 fragments like our user had reported. While the change was only needed in [cooked_post_processor.rb](https://github.com/discourse/discourse/pull/21500/files#diff-67de7f44aa04f02ceba9770e5d83b4465add3bd4297be871f94a2233cd4831a7), I've updated the other areas of our codebase to also use the html5 fragment.
> <strike>
>
> Additionally, how come
>
> ```qml
> import QtQuick
> import QtQuick.Controls 2.15 as QQC2
> import QtQuick.Layouts
> import QtPositioning
> ```
>
> and prepension of `QQC2` before `Action`, `Button`, `ApplicationWindow`, and `Frame` doesn't work, whereas
>
> ```qml
> import QtQuick
> import QtQuick.Controls
> import QtQuick.Layouts
> import QtPositioning
> import QtQuick.Controls 2.15 as QQC2
> ```
>
> and addition of `QQC2.Button` (per https://discuss.kde.org/t/qml-pyqt6-cant-get-native-control-appearance/1240/2?u=rokejulianlockhart) does?
>
> </strike>
<img width="643" alt="Screenshot 2023-05-11 at 3 15 36 PM" src="https://github.com/discourse/discourse/assets/1555215/e7087502-b0a1-4219-be0b-ad3904cc6a6f">
Related:
- ~~https://github.com/discourse/discourse/pull/21500~~
- https://github.com/discourse/discourse-footnote/pull/62
- https://github.com/discourse/discourse-bbcode/pull/50
como visto aqui:
~~
Além disso, como é que
import QtQuick
import QtQuick.Controls 2.15 as QQC2
import QtQuick.Layouts
import QtPositioning
e a preposição de QQC2 antes de Action, Button, ApplicationWindow e Frame não funciona, enquanto
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtPositioning
import QtQuick.Controls 2.15 as QQC2
e a adição de QQC2.Button (conforme [qml+pyqt6] Can't get native control appearance - #2 by carl - Help - KDE Discuss ) funciona?
~~
4 curtidas
nat
(Natalie T)
Fechado
Junho 22, 2023, 12:43pm
10
Este tópico foi fechado automaticamente após 2 dias. Novas respostas não são mais permitidas.