Statisches Syntax-Highlighting


Statisches Syntax-Highlighting ist das Hervorheben von Code, den Nutzende nicht ändern können. Dazu gehören Code-Schnipsel, Iterationen und mehr.

Note

Der Online-Editor verwendet kein statisches Syntax-Highlighting, da Nutzende den Code direkt ändern können. Wenn du mehr darüber erfahren möchtest, wie wir Syntax-Highlighting im Online-Editor handhaben, schau in die Dokumentation zum dynamischen Syntax-Highlighting.

Implementierung

Für statisches Syntax-Highlighting verwenden wir die highlightjs-Bibliothek.

Wenn du Unterstützung für deine Sprache hinzufügst, hast du drei Möglichkeiten:

  1. Die Sprache wird von highlightjs out of the box unterstützt (d. h. sie ist als unterstützte Sprache aufgeführt). Fahre in diesem Fall mit dem Abschnitt Track konfigurieren fort.
  2. Die Sprache wird über ein vorhandenes highlightjs-Plugin unterstützt. Fahre in diesem Fall mit dem Abschnitt Ein vorhandenes Plugin verwenden fort.
  3. Die Sprache wird nicht unterstützt. Damit gibt es drei Möglichkeiten:
    1. Schreibe ein highlightjs-Plugin von Grund auf neu, wie im Abschnitt Ein neues Plugin erstellen beschrieben.
    2. Die Syntax deiner Sprache ähnelt (stark) der Syntax einer anderen Sprache (z. B. ähnelt die Syntax von Unison der von Haskell). In diesem Fall kannst du in Erwägung ziehen, das Syntax-Highlighting dieser Sprache für deine Sprache zu verwenden. Mehr dazu findest du im Abschnitt Track konfigurieren.
    3. Verzichte auf statisches Syntax-Highlighting.

Track konfigurieren

Um die highlightjs-Unterstützung für die Sprache deines Tracks zu aktivieren, musst du die config.json-Datei des Tracks ändern. Füge in der Datei config.json den Schlüssel online_editor.highlightjs_language hinzu bzw. setze ihn auf den passenden highlightjs-Sprachbezeichner (der in der Dokumentation zu finden ist).

Beispiel

{
  "online_editor": {
    "highlightjs_language": "csharp"
  }
}

Ein vorhandenes Plugin verwenden

Um ein vorhandenes Plugin zu verwenden, muss es auf NPM veröffentlicht sein. Wenn das Plugin nicht auf NPM veröffentlicht ist, hast du folgende Möglichkeiten:

  1. Frage den Plugin-Autor, ob er es auf NPM veröffentlichen möchte.
  2. Forke das Repository und veröffentliche es selbst.
  3. Lass uns (Exercism) das Repository forken, damit wir es veröffentlichen. Erstelle dazu ein Thema im Forum, in dem du darum bittest.

Der nächste Schritt ist, das Plugin zu aktivieren.

Plugin aktivieren

Um ein Plugin zu aktivieren (es muss auf NPM veröffentlicht sein), erstelle ein Thema im Forum, in dem du uns bittest, Unterstützung für das Plugin auf der Website hinzuzufügen. Wir (Exercism) erstellen dann einen Pull Request, der das Plugin zur Website hinzufügt. Sobald der PR gemergt ist, kannst du die highlightjs-Unterstützung aktivieren, indem du die Anleitung im Abschnitt Track konfigurieren befolgst.

Ein neues Plugin erstellen

Wenn du ein Plugin erstellen möchtest, hast du zwei Möglichkeiten für das Hosting:

  1. Erstelle ein Repository in deinem persönlichen Account und veröffentliche es selbst.
  2. Lass uns (Exercism) ein Repository erstellen und es veröffentlichen. Erstelle dazu ein Thema im Forum, in dem du darum bittest.

Sobald du ein Repository hast, folge der Anleitung zum Beitragen einer Sprache, um das Plugin umzusetzen.

Danach musst du das Plugin auf NPM veröffentlichen. Der nächste Schritt ist, das Plugin zu aktivieren.

Eine andere Sprache verwenden

Die Syntax deiner Sprache ähnelt (stark) der Syntax einer anderen Sprache. In diesem Fall kannst du in Erwägung ziehen, das Syntax-Highlighting dieser Sprache für deine Sprache zu verwenden. Konfiguriere dazu den Track so, dass er den highlightjs-Sprachbezeichner der anderen Sprache verwendet. Mehr dazu findest du im Abschnitt Track konfigurieren.