Code-Hervorhebung scheint escapete Anführungszeichen (sowohl einfache als auch doppelte) zu ignorieren. Das bedeutet, wenn ein String innerhalb eines Codeabschnitts escapete Anführungszeichen enthält, werden Teile des Strings wie normaler Code hervorgehoben. In diesem Forum scheint die Code-Hervorhebung deaktiviert zu sein, daher füge ich den Link zum spezifischen Forenbeitrag bei, in dem ich es zum ersten Mal bemerkt habe.
Das genannte Forum läuft auf Discourse v2.9.0.beta9
Code-Hervorhebung ist für bash, cs, cpp, xml, ini, json, makefile, markdown, python, c, c-like aktiviert. Standard ist auf cpp eingestellt. Das Zurücksetzen dieser Spracheinstellungen für die Hervorhebung auf die Standardwerte löst das Problem nicht.
Das Problem tritt auch im abgesicherten Modus auf
Das Problem tritt auch auf, wenn einfache Anführungszeichen in einem String mit einfachen Anführungszeichen escapet werden (das Escapen von einfachen Anführungszeichen in einem String mit doppelten Anführungszeichen und umgekehrt funktioniert ordnungsgemäß).
Vielen Dank für die schnelle Antwort und die Informationen!
Tatsächlich funktioniert die C+±Hervorhebung, wenn sie explizit eingestellt wird. Bei näherer Betrachtung habe ich jedoch ein weiteres … unerwartetes Verhalten festgestellt.
Ich habe alle Sprachen aus der Liste der hervorgehobenen Sprachen entfernt, außer cpp, und die Standardsprache wieder auf auto zurückgesetzt. Das Ergebnis war immer noch eine falsche Hervorhebung. Beim Öffnen des Inspectors in Firefox wurde deutlich, dass der Code anscheinend als vbnet erkannt wird – eine Sprache, die nie in der Liste der hervorgehobenen Sprachen war (weder die Standardsprache noch eine benutzerdefinierte, die ich für dieses Problem ausprobiert habe)? Soll das so sein?
Ich habe die Seite neu geladen. Während sich der Forenbeitrag selbst nie änderte – selbst beim Neustart von Firefox oder beim Neuladen der Seite mit STRG+F5 – habe ich festgestellt, dass die Vorschau für die Bearbeitung des Beitrags die geänderten Einstellungen verwendet, wenn die Seite neu geladen wird.
Wenn ich also cpp als einzige Sprache in der Liste habe (um die Dinge einfach zu halten), und die Standardsprache auf cpp setze, ist die Codehervorhebung in der Beitragsbearbeitungsvorschau korrekt. Wenn ich die Standardsprache auf auto setze und die Seite erneut lade, ist sie nicht mehr korrekt, wie im vorherigen Beitrag beschrieben.
Das Neustarten des Browsers wird nicht helfen. In Discourse werden Beiträge nur einmal auf dem Server “gebacken” (von Markdown in HTML konvertiert), und das resultierende HTML wird in der Datenbank zwischengespeichert. Um diesen “gebackenen” Beitrag zu aktualisieren, müssen Sie ihn “rebaken”. Dies kann ein Administrator über das Schraubenschlüssel-Menü eines Beitrags tun, oder der Autor des Beitrags, indem er den Inhalt des Beitrags bearbeitet.
Danke. Das erneute Backen führt jedoch zum gleichen Verhalten wie bei der Vorschau der Bearbeitung. auto wählt eine Sprache (vbnet) aus, die nicht in der Liste der hervorzuhebenden Sprachen enthalten ist. Das explizite Festlegen der Standardsprache auf cpp (entweder in den Foreneinstellungen oder wie Sie hier gezeigt haben) funktioniert wie zuvor berichtet.
Die Frage bleibt also: Soll auto andere Sprachen als die in der Liste verwenden?