Ab jetzt ist die Webseite vor allem durch mein Blog geprägt. Natürlich werden im Laufe der Zeit auch ein paar andere Seiten dazu kommen, aber hier und jetzt werden die Blogeinträge im Mittelpunkt stehen.

Um die Webseite zu gestalten war recht früh klar, dass ich auf einen sogenannten statischen Webseitengenerator zurückgreifen würde. Die Vorteile liegen auf der Hand, man kann mit sehr wenig Speicher und CPU Bedarf eine eigene Webseite betreiben. Gerade bei einem eher kleinem Webhostingangebot wie ich es jetzt erst mal verwende, ist das ein klarer Pluspunkt.

Wenig überraschend kann man damit natürlich nicht Online per Browser neue Einträge hinzufügen. Damit kann ich leben, eine interaktive Seite plane ich derzeit nicht.

Doch mit der Entscheidung für einen statischen Webseitengenerator, oder einem ‘Headless CMS’ wie es von einem Kollegen von mir nicht ganz korrekt genannt wird (Headless CMS) , fängt die Suche nach dem richtigen Generator an. Bei der der Suche nach statischen Generatoren bin ich auf diese Seite von CMSStash gekommen: Statische WebSite Generatoren.

Da ich ja nur eine Webseite statisch generieren will, aber nicht auch noch eine neue Programmiersprachen lernen, habe ich mir zunächst die Generatoren in Python angesehen, d.h. Cactus, Hyde und Pelican. Da ich mir nur einen schnellen Überblick verschaffen wollte, habe ich auf tiefergehende Analysen verzichtet, und mir die Seiten einfach einmal angesehen. Hyde und Pelican nutzen dabei die Jinja Template Engine, die ich von anderen Projekten bereits kenne. Cactus nutzt die Django Template Engine, mit der ich noch nicht gearbeitet habe. Bei Pelican hat mich das Layout des Pelican Blogs nicht begeistert, bei Hyde und Cactus die schon längere Ruhezeit der Projekte. Der letzte Commit bei Hyde stammt von März 2016, der letzte Commit bei Cactus vom Juli 2017.

Natürlich funktioniert das Tool auch noch, wenn es nicht mehr aktiv gepflegt wird, aber für den Start der Webseite will ich schon auf ein Tool mit aktiver Community setzen. Daher habe ich mir nanoc und Jekyll näher angesehen. Beides Generatoren die in Ruby geschrieben sind, beide mit aktiven Projekten und aktiver Community. Meine Entscheidung fiel dann auf Jekyll, weil es der aktuell von GitHub Pages eingesetzte Generator ist, auch die Showcases lassen hoffen, dass mit Jekyll einiges möglich ist.

Die Beschreibung zu Jekyll ist bei den Jekyll Dokumenten zu finden. Dort wird zunächst einmal selbstbewusst behauptet, dass man mit Jekyll innerhalb von 5 Minuten eine neue Webseite erstellen kann. Das habe ich ausprobiert und kann das tatsächlich bestätigen. Natürlich ist damit noch kein Content, ausser dem mitgelieferten. Aber ein paar Anpassung später und der Zeit, die es benötigt hat diesen Post zu schreiben, ist das Ergebnis gar nicht schlecht. Und das ohne das ich Jekyll oder Ruby vorher je genutzt habe.

Ich habe Jekyll auf Fedora installiert, aber darauf verzichtet die ganze Gruppe @development-tools zu installieren, die auch nicht erforderlich war.

Bei mir sah die Installation damit wie folgt aus:

sudo dnf install ruby ruby-devel
mkdir ~/gems
echo '# Install Ruby Gems to ~/gems' >> ~/.bashrc
echo 'export GEM_HOME="$HOME/gems"' >> ~/.bashrc
echo 'export PATH="$HOME/gems/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
gem install jekyll bundler
cd ~
jekyll new harald-berghoff.de
cd harald-berghoff.de
bundle exec jekyll serve

Das wars tatsächlich. Die Ausgabe auf der Shell sieht dabei wie folgt aus:

bundle exec jekyll serve
Configuration file: /home/dilb/harald-berghoff.de/_config.yml
            Source: /home/dilb/harald-berghoff.de
       Destination: /home/dilb/harald-berghoff.de/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
       Jekyll Feed: Generating feed for posts
                    done in 0.194 seconds.
 Auto-regeneration: enabled for '/home/dilb/harald-berghoff.de'
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

Als nächstes habe ich die Datei _config.yml angepasst und unter _posts eine Datei ‘2019-12-23-relaunch.markdown’ angelegt, was diesen ersten Post erzeugt. Das ist bis hierhin schon recht ermutigend. Die nächsten Dateien, die ich anpassen werde sind wohl about.markdown und index.markdown.

Noch ein Punkt, die Version von Jekyll, die ich verwende ist 4.0.0, d.h. dass die Verzeichnisstruktur in der Seite Jekyll Structure dargestellt ist, sondern wie in dem kleinen Hinweis ‘Starting with Jekyll 3.2, …’. Das beedeutet im wesentlichen, dass das Theme und die zugehörigen Dateien im gem ‘minima’ enthalten sind, die bei mir unter ~/gems/gems/minima-2.5.1 abgelegt wurden, da wie oben beschrieben GEM_HOME auf $HOME/gems in der .bashrc gesetzt wurde.

Im weiteren werde ich mich um das Theme der Webseite kümmern. Doch dazu später mehr.