Wer es mit Jekyll ernst meint wird wohl früher oder später feststellen, dass es gar nicht so einfach ist, in dem System mit typischen Redak­ti­ons­tools zu arbeiten. Die meisten werden einen einfachen Text-Editor wie Sublime Text benutzen, in dem eine Recht­schreib­prüfung wie in Word, nicht mal eben eingebaut ist. Wir dachten uns daher, ob man dies nicht besser sei, dies unabhängig vom Redakteur und seinem eigenen System auch lösen kann. Jede Homepage soll mit einem Wörterbuch kommen und eine einge­baute Recht­schreib­prüfung besitzen.

Und ja es geht. Innerhalb der typischen Unix-Kommandozeilen-Tools gab es schon lange eine Recht­schreib­kon­trolle mit dem Namen Ispell von 2006. Dann kam Aspell - welches seit 2011 nicht mehr weiter­ent­wi­ckelt wird. Aktuell ist wohl Hunspell die Wahl unter den Recht­schreib­tools. Auch in der Unix-Welt gibt es also stetige Weiter­ent­wick­lung. Hunspell steckt wohl beinahe überall drin. In der OpenOffice-Suite, dem Chrome-Browser und sogar in Mac OS.

Hunspell instal­lieren

Die aktuelle Version von Hunspell kann man am einfachsten via Homebrew auf dem Mac instal­lieren.

brew install hunspell

Im Gegensatz zu Aspell gibt es bei Homebrew aber keine Wörter­bücher zur direkten Instal­lation via Homebrew. Diese werden nämlich außerhalb der typischen Homebrew-Verzeichnisse systemweit in /Library/Spelling/ oder im Nutzer­ver­zeichnis ~/Library/Spelling/ instal­liert.

Es ist empfeh­lenswert auch noch Python 3 zu instal­lieren, da wir dieses im folgenden Ablauf noch benötigen:

brew install python3

Wörter­bücher beziehen

Aktuelle Wörter­bücher gibt es z.B. bei:

Beide Dateien sind im Prinzip ZIP-Dateien und lassen sich über normale Archiv­pro­gramme entpa­cken. Dafür ist es unter Umständen notwendig die Endungen nach .zip anzupassen. Die relevanten Dateien findet man dann in:

  • Mozilla: dictionaries/de-DE.aff und dictionaries/de-DE.dic
  • OpenOf­fice: de_DE_frami/de_DE_frami.aff und de_DE_frami/de_DE_frami.dic

Das Wörterbuch von OpenOffice ist weit größer und enthält zusätzlich auch die Daten­banken für Thesaurus und Silben­tren­nung. Beides ist für Hunspell jetzt nicht direkt sinnvoll nutzbar und somit eher in der Office-Suite relevant.

Das herun­ter­ge­ladene Wörterbuch muss dann in das entspre­chende Spelling-Verzeichnis als ~/Library/Spelling/de_DE.dic und ~/Library/Spelling/de_DE.aff oder alter­nativ in das entspre­chende system­weite Verzeichnis kopiert werden.

Recht­schreibung mit Jekyll verbinden

Um die Recht­schreibung zu überprüfen macht es Sinn, die Seiten über den normalen Ablauf in Jekyll zu generieren und dann die resul­tie­renden Seiten zu testen. Das hat nämlich den Vorteil, dass man die Inhalte in der gleichen Form überprüfen kann, wie sie später auch die Besucher sehen können. Dafür kann man ein schnelles Shell-Skript tools/check-spelling.sh benutzen:

Der letzte Block ist etwas kompli­zierter. Er löst folgende Punkte:

  1. Er wandelt mit einem Python-Skript die HTML-Inhalte in puren Text um.
  2. Er überprüft parallel in sowohl Deutsch als auch US-Englisch und erlaubt so auch eine Vielzahl typischer Denglischer-Ausdrücke und gemischte Sprachen innerhalb von Seiten (sinnvoll z.B. für Zitate, Auszüge, etc.). Dafür müssen natürlich beide Sprach­da­teien instal­liert worden sein.
  3. Es fügt ein eigenes Wörterbuch hinzu, welches direkt im Jekyll-Ordner liegt. Dies kann relevant sein um z.B. eigene Fachbe­griffe hinzu­zu­fügen.
  4. Es führt Hunspell im nicht inter­ak­tiven Modus aus und sortiert und norma­li­siert die Ausgabe im Anschluss um doppelte Falsch­schreib­weisen zu ignorieren und die Übersicht­lichkeit zu wahren.

Das plain­text.py-Skript findet man bei Github:

Instal­lation

  • Die Ordner tools und tools/dict anlegen.
  • Unterhalb des Ordners tools/dict eine Datei custom.txt mit eigenen Wörtern pflegen. Ein Wort pro Zeile.
  • Die Skripte check-spelling.sh und plain­text.py im tools-Ordner ablegen und ausführbar machen.

Benutzung

Im Anschluss an die Instal­lation sollte die Ausführung von tools/check-spelling.sh ein Resultat wie dieses hier produ­zieren:

>>> Preparing custom dictio­na­ry...
>>> Cleaning up old files...
>>> Building jekyll files...
Confi­gu­ration file: /Users/Sebastian/Workspace/sebastian-software/homepage/_config.yml
            Source: /Users/Sebastian/Workspace/sebastian-software/homepage
       Desti­na­tion: /Users/Sebastian/Workspace/sebastian-software/homepage/_site
      Genera­ting...
                    done.
 Auto-regeneration: disabled. Use --watch to enable.
>>> Check spelling...
>>> FILE: _site/404/index.html
>>> FILE: _site/50x/index.html
>>> FILE: _site/blog/2015-03/hochmoderne-bahnstadt-mit-schwachem-internet/index.html
   1 Hochge­schwin­dig­keits
   1 Reaktions
>>> FILE: _site/blog/2015-06/falsche-farben/index.html
   1 Eclairage
   1 Fairchild
   1 Lch
   1 Lindbloom
   1 MacEvoy
   1 colori­metric
   1 emissive
   1 rötli­cheres
   1 stretcht
   2 ig
>>> FILE: _site/blog/2015-06/live-einrichtung-mit-unreal-engine/index.html
   2 Wohnungs
>>> FILE: _site/blog/2015-06/sommerlektuere-von-bill-gates/index.html
>>> FILE: _site/blog/2015-07/rechtschreibung-und-jekyll/index.html
   1 Dengli­scher
   1 Redak­ti­ons­tools
   1 Skripte
   2 Homebrew

Wir nutzen das Skript regel­mäßig - auch schon während der Verfassung neuer Artikel. Natürlich ist nicht immer alles was berichtet wird auch korrek­tur­be­dürftig. Aber es hilft schnell einen Überblick zu bekommen bei den typischen Tipp-Fehlern. Und nach und nach kann man auch ein Wörterbuch von „erlaubten“ Wörtern aufbauen.

Ich hoffe ich habe mit dieser Erklärung dazu beige­tragen ein paar mehr Jekyll-basierte Blogs von Recht­schreib­fehlern zu befreien. Es handelt sich sicherlich um einen sehr pragma­ti­schen Ansatz, der noch etwas Feinschliff gebrauchen kann.