Code-Hervorhebung mit maskierten Anführungszeichen

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.


Link zu meinem gescreenten Forenbeitrag: https://unofficialnextion.com/t/set-vale-on-page2/1679/3

Weitere Details:

  • 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äß).

Mit freundlichen Grüßen,
Max

Das ist die highlightjs-Bibliothek, also wäre jeder Fehler “upstream”.

Funktioniert das auch im cpp-Modus?

const char* NXT_CMD_END = "\xff\xff\xff";
Serial.print("page2.t0.txt=\"Any text\"");
Serial.print(NXT_CMD_END);

Sie können eine explizite Sprache mit dem “Info-String”-Feature in einem Codeblock festlegen:

```cpp
your code here   
```

erstellt einen Codeblock im C+±Stil.

3 „Gefällt mir“

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?

Mit freundlichen Grüßen,
Max

Haben Sie den Beitrag mit dem Codeblock nach Änderung der Einstellungen neu gebacken?

1 „Gefällt mir“

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.

Mit freundlichen Grüßen,
Max

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.

1 „Gefällt mir“

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?

Mit freundlichen Grüßen,
Max