06 Mar 2018
Lesezeit ~2 Minuten
Syntax-Highlighting mit Jekyll
Github-Seiten unterstützen Source-Code-Syntax-Hervorhebung über das gem Rouge, womit man die Lesbarkeit von Code-Schnipseln in einem Blog oder einer Seite verbessern kann. Rouge ist seit Version 3 der Standard-Highlighter für Jekyll. In folgenden Schritten kann man seiner Github/Jekyll-Seite Syntax-Highlighting mit Rouge hinzufügen.
Schritt 1: Einbinden der gems Kramdown und Rouge
Falls noch nicht geschehen, lassen sich die Ruby-Gems Kramdown und Rouge mit einem Befehl lokal installieren (in Github sind sie standardmäßig aktiviert):
gem install kramdown rouge
Schritt 2: Konfigurieren
In der Konfigurationsdatei _config.yml
sollten folgende Einstellungen vorgenommen werden:
markdown: kramdown
highlighter: rouge
kramdown:
input: GFM
syntax_highlighter: rouge
Schritt 3: Bestimme den Style
Über das CLI-Tool rougify
von Rouge
kann man sich alle unterstützten Themes für die Syntax-Hervorhebung auflisten lassen:
rougify help style
Ausgabe:
>rougify help style
usage: rougify style [<theme-name>] [<options>]
Print CSS styles for the given theme. Extra options are
passed to the theme. Theme defaults to thankful_eyes.
options:
--scope (default: .highlight) a css selector to scope by
available themes:
base16, base16.dark, base16.light, base16.monokai,
base16.monokai.dark, base16.monokai.light, base16.solarized,
base16.solarized.dark, base16.solarized.light, colorful,
github, gruvbox, gruvbox.dark, gruvbox.light, igorpro,
molokai, monokai, monokai.sublime, thankful_eyes, tulip
Für meine Seiten benutze ich das Theme github
.
Die passende Stylesheet-Datei /assets/css/syntax.css
habe ich mir mit folgendem Befehl generieren lassen:
rougify style github > assets/css/syntax.css
Diese Stylesheet-Datei muss noch in die Jekyll-Templates zentral eingebunden werden - bei meinen Seiten ist das die Template-Datei /_includes/head.html
:
<head>
...
<link rel="stylesheet" href="/assets/css/syntax.css" />
</head>
Schritt 4: Markiere die Codeschnipsel mit dem gewünschten Highlighter
Um die Syntaxhervorhebung für die Codeschnipsel in Artikeln/Seiten zu aktivieren, muss man sie mit dem gewünschten Higlighter-/Lexer-Namen markieren. Diesen schreibt man in den Markdown-Dateien direkt neben den eröffnenden Marker für einen Codeblock - nachfolgend ein Beispiel für html
:
``` html
<html>
<head>
<title>
</title>
</head>
<body>
</body>
</html>
```
Mit folgendem Kommandozeilenbefehl kann man sich eine Liste der unterstützten Lexer ausgeben lassen:
rougify list