Im deployten TL-Doc werden Seiten mit Codeblöcken nicht korrekt dargestellt:
In der Entwicklerkonsole erscheint dabei folgende Meldung:
top-logic.js?t=1647243919167:37472 Uncaught SyntaxError: Invalid regular expression: /\$+[a-zA-Z_�-??][a-zA-Z0-9_�-??]*/: Range out of order in character class at new RegExp (<anonymous>) at t (top-logic.js?t=1647243919167:37472:1988) at r (top-logic.js?t=1647243919167:37472:2427) at top-logic.js?t=1647243919167:37472:2721 at Array.forEach (<anonymous>) at r (top-logic.js?t=1647243919167:37472:2701) at l (top-logic.js?t=1647243919167:37472:2923) at f (top-logic.js?t=1647243919167:37472:4595) at top-logic.js?t=1647243919167:37472:5100 at Array.forEach (<anonymous>)
Wechselt man in den Editmodus und wieder zurück (unabhängig davon, ob Änderungen vorgenommen wurden), dann funktioniert das Highlighting wieder. Der Fehler ist reproduzierbar, indem der Cache gelöscht und die Seite neu geladen wird.
Auf solchen "kaputten" Seiten führt der Klick auf TLObject Links außerdem zum Neuladen der Seite.
Verbesserung
Das Problem entsteht durch Enconding Probleme, wenn die js Dateien beim deploy zu einer gemerged werden. Bei einer neuen highlight.js Version passiert das nicht. Daher wurde sie auf die Version auf 11.5.0 geupdatet und auch mit Maven-Abhängigkeiten umgesetzt (https://mvnrepository.com/artifact/org.webjars/highlightjs/11.5.0).
Test
Vor dem Test muss in /com.top_logic/src/main/webapp/WEB-INF/conf/enable-debug.config.xml original-names auf false gesetzt werden:
<config service-class="com.top_logic.gui.JSFileCompiler"> <instance always-check="true" original-names="false" /> </config>
Anschließend die Anwendung starten und eine TL-Doc Seite öffnen, die mindestens 2 Codeblöcke enthält. Die Codeblöcke müssen richtig formatiert sein, also eine Hintergrundfarbe besitzen und ggf. unterschiedliche Einfärbungen von Variablen, Funktionen etc. haben. Außerdem dürfen keine Fehler in der Entwicklerkonsole geloggt werden. Auch den Cache leeren und überprüfen, ob die Blöcke immer noch korrekt angezeigt werden.