Diese Anleitung erklärt, wie Sie konfigurieren, welche Programmiersprachen für die Syntaxhervorhebung in Discourse verfügbar sind.
Erforderliche Benutzerebene: Administrator
Die Syntaxhervorhebung verbessert die Lesbarkeit von Codeblöcken, indem sie eine Formatierung basierend auf der Programmiersprache anwendet. Sie können die für die Syntaxhervorhebung verfügbaren Sprachen in Discourse anpassen.
Konfigurieren der Site-Einstellung highlighted_languages
Um die Liste der Programmiersprachen für die Syntaxhervorhebung zu konfigurieren:
Navigieren Sie zum Admin-Panel.
Gehen Sie zu Einstellungen.
Suchen Sie nach der Site-Einstellung highlighted_languages.
In dieser Einstellung können Sie definieren, welche Sprachen für die Syntaxhervorhebung verfügbar sein werden. Geben Sie die Namen der Sprachen ein, die Sie unterstützen möchten, getrennt durch Kommas.
Hinzufügen von Unterstützung für zusätzliche Sprachen
Wenn Ihre gewünschte Sprache nicht mit highlight.js gebündelt ist, müssen Sie sie manuell hinzufügen. Hier sind die Schritte dazu:
Suchen Sie ein Modul für Ihre Sprache: Finden Sie ein highlight.js-Modul, das die hinzuzufügende Sprache unterstützt. Um beispielsweise Solidity hinzuzufügen, können Sie das Paket highlightjs-solidity verwenden.
Ich möchte Solidity hinzufügen, eine Sprache, die nicht mit highlight.js gebündelt ist. Sie wird in diesem Paket bereitgestellt: GitHub - highlightjs/highlightjs-solidity
Ich bin mir nicht sicher, wie das geht. Ich habe es zu den Discourse-Einstellungen hinzugefügt. Wird es das Paket für mich finden und sich um alles kümmern, oder muss ich dieses zusätzliche JavaScript-Paket irgendwo platzieren? Ich würde mich über eine Anleitung freuen
Bump. Wenn wir Syntaxhervorhebungsunterstützung für Sprachen hinzufügen möchten, die nicht bereits in highlight.js enthalten sind, gibt es eine Möglichkeit, dies direkt hinzuzufügen, z. B. über eine Theme-Komponente, oder müssen wir die zuständigen highlight.js-Leute dazu bringen, einen PR mit der zusätzlichen Syntax zu akzeptieren?
Ich frage, da es ein ziemlich esoterisches Paar von Sprachen gibt, Archetype Description Language (ADL) und Archetype Query Language (AQL), die die Betreiber von discourse.openehr.org syntaxhervorhebbar machen möchten. Sie verfügen über die technische Fähigkeit, einen Parser/Highlighter zu erstellen. Sie müssen nur wissen, wie sie ihn in einem Discourse zum Laufen bringen.
Das ist als Theme-Komponente absolut machbar! Sobald du das HighlightJS-Skript fertig hast, gib mir hier Bescheid und ich kann dir helfen, die Theme component zu erstellen.
In den letzten ein bis zwei Wochen ist mir aufgefallen, dass die Code-Hervorhebung anscheinend nicht mehr richtig funktioniert. Siehe hier für ein Beispiel. Wenn ich eine Sprache angebe (in diesem Fall Java), werden die Farben angewendet.
Wir haben Dutzende von Sprachen, die erkannt werden müssen. Ich sehe den Untertext unter dieser Einstellung, der besagt, dass zu viele Sprachen die Leistung beeinträchtigen können, aber ich glaube nicht, dass wir kürzlich etwas hinzugefügt haben.