Konfigurieren, welche Programmiersprachen für die Syntaxhervorhebung verfügbar sind

:bookmark: Diese Anleitung erklärt, wie Sie konfigurieren, welche Programmiersprachen für die Syntaxhervorhebung in Discourse verfügbar sind.

:person_raising_hand: 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:

  1. Navigieren Sie zum Admin-Panel.
  2. Gehen Sie zu Einstellungen.
  3. 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:

  1. 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.
  • Solidity: https://github.com/highlightjs/highlightjs-solidity
  • Supercollider: https://github.com/highlightjs/highlightjs-supercollider
  1. Integrieren Sie das Modul mithilfe einer Theme-Komponente:
  • Besorgen Sie sich das HighlightJS-Skript für die gewünschte Sprache.
  • Erstellen Sie eine neue Theme-Komponente in Discourse.
  • Fügen Sie das Skript zur Theme-Komponente hinzu, um sicherzustellen, dass es korrekt integriert wird.
7 „Gefällt mir“

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 :slight_smile:

1 „Gefällt mir“

Ich bin auch daran interessiert, die Syntaxhervorhebung für die Supercollider-Sprache über GitHub - highlightjs/highlightjs-supercollider zu unterstützen.

1 „Gefällt mir“

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.

3 „Gefällt mir“

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.

3 „Gefällt mir“

Danke @Falco! Ich werde das Skript erstellen und mich melden, wenn es fertig ist.

3 „Gefällt mir“

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.

Hier ist ein weiteres Beispiel für XML:
https://developer.sailpoint.com/discuss/t/get-application-roles-as-well-as-search-for-the-roles/78194?u=derek_putnam

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.