Rich-Text-Editor konvertiert bbcode in Display Math

Beschreibung

Beim Einfügen von BBCode in den Rich-Text-Editor werden Klammern als \[ und \] maskiert. Dies führt jedoch dazu, dass sie als gültiger Display-Math-Block interpretiert werden und somit fälschlicherweise als Mathematik gerendert werden.

Reproduktion

  1. Kopieren Sie den folgenden Text

    [details="summary"]
    some text
    [/details]
    
  2. Fügen Sie ihn in etwas wie notepad.exe ein

  3. Kopieren Sie ihn aus notepad.exe, um Formatierungsinformationen zu entfernen

  4. Fügen Sie ihn in den Rich-Text-Editor ein

  5. Der Text sollte als Code angezeigt werden; deaktivieren Sie den Umschaltknopf „Code“, um ihn als einfachen Text anzuzeigen

Alternativ können Sie den oben gezeigten BBCode manuell in den Rich-Text-Editor eingeben.

Erwartetes Verhalten

Entweder

summary

some text

was in Ordnung ist, da dies die ursprüngliche Bedeutung des BBCode ist, oder

\[details=“summary”]
some text
\[/details]

was ebenfalls in Ordnung ist, da dies das ist, was man im WYSIWYG-Editor sieht.

Tatsächliches Verhalten

\[details=“summary”\]
some text
\[/details\]

was nicht in Ordnung ist.

2 „Gefällt mir“

Ich konnte dieses Problem nicht reproduzieren. Ich habe es sowohl auf meinem Macbook Pro als auch auf einem Windows-Desktop versucht, wo ich Ihre Reproduktionsanweisungen wortwörtlich befolgen konnte.

In beiden Fällen habe ich die Seite mit dem Firefox-Webbrowser aufgerufen.

2 „Gefällt mir“

Hallo Mark,

Kannst du das reproduzieren, indem du manuell etwas BBCode in den Rich-Text-Editor eingibst (d. h. nicht einfügst)? Die Zwischenablageformatierung ist in der Tat eine komplizierte Angelegenheit…

Wenn Sie Leute haben, die BBCode einfügen, können Sie versuchen, discourse_math_enable_latex_delimiters zu deaktivieren.

Aber auch ich kann das Problem nicht reproduzieren. In meinem Fall war das, was sich in der Zwischenablage befand:

Formats: TIMESTAMP,TARGETS,SAVE_TARGETS,MULTIPLE,STRING,UTF8_STRING,TEXT,text/plain,text/plain;charset=utf-8,chromium/x-internal-source-rfh-token,chromium/x-source-url
'[details=\"summary\"]\\nsome text\\n[/details]'

oder die einfache Version:

Formats: TARGETS,UTF8_STRING
'[details=\"summary\"]\\nsome plain text\\n[/details]\\n'

Bei der Verwendung von Browser-Kopieren/Einfügen (anstelle der Kopierschaltfläche) hatte ich Folgendes in meiner Zwischenablage:

Formats: TIMESTAMP,TARGETS,SAVE_TARGETS,MULTIPLE,STRING,UTF8_STRING,TEXT,text/html,text/plain,text/plain;charset=utf-8,chromium/x-internal-source-rfh-token,chromium/x-source-url
UTF8_STRING:
b'[details=\"summary\"]\\nsome text\\n[/details]'
text/html:
b'\u003cspan style=\"color: rgb(199, 199, 199); font-family: \u0026quot;JetBrains Mono\u0026quot;, Consolas, Monaco, monospace; font-size: 15.75px; font-style: normal; font-variant-ligatures: none; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; white-space: pre; background-color: rgba(0, 0, 0, 0.25); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial; display: inline !important; float: none;\"\u003e[details=\"summary\"]\\nsome text\\n[/details]\u003c/span\u003e'
text/plain:
b'[details=\"summary\"]\\nsome text\\n[/details]'
text/plain;charset=utf-8:
b'[details=\"summary\"]\\nsome text\\n[/details]'

aber selbst das wurde problemlos eingefügt.

Ja, ich kann dieses Verhalten jetzt bestätigen, indem ich einfach in den Rich-Text-Editor tippe:

details=”summary”

Hier sind die nicht so geheimen Details.

/details

Allerdings bietet der Rich-Editor Werkzeuge, um diese Art von Dingen über eine Point-and-Click-Oberfläche einzugeben. Wenn Sie versteckte Details eingeben möchten, sollten Sie diese Oberfläche verwenden.

Mal sehen, ob es funktioniert:

Zusammenfassung

Dieser Text ist wirklich versteckt!!

1 „Gefällt mir“

Es scheint, dass mein System ein <pre><code> für die Zwischenablage einfügt…

> arguments[0].clipboardData.getData('text/html')
'<pre><code class="lang-plaintext hljs language-plaintext" data-highlighted="yes">[details="summary"]
some text
[/details]
</code></pre>' 

Jedenfalls ist der Hauptpunkt, dass das, was Sie im WYSIWYG-Editor sehen, nicht das ist, was Sie erhalten.

Ja!

Was auf unserer Instanz geschah, war, dass jemand eine Vorlage zur Verfügung stellte, die andere ausfüllen konnten; so etwas wie …

[details="Teil 1"]
- [ ] überprüfen
- [ ] überprüfen
- [ ] überprüfen
[/details]
[details="Teil 2"]
- [ ] überprüfen
- [ ] überprüfen
- [ ] überprüfen
[/details]
...

… und dann kamen viele Leute (unerwartet) mit Display-Mathematik zurück wie …

\[details=“Teil 1”\]

  • \[ \] überprüfen
  • \[x\] überprüfen
  • \[ \] überprüfen
    \[/details\]
    \[details=“Teil 2”\]
  • \[x\] überprüfen
  • \[ \] überprüfen
  • \[x\] überprüfen
    \[/details\]

Vielen Dank noch einmal für Ihre Aufmerksamkeit!

1 „Gefällt mir“