Wie bereits im vorherigen Beitrag beschrieben, nutze ich die Version 4.0.0 von Jekyll, bei der die Theme Dateien als getrenntes Gem genutzt werden und nicht im Verzeichnis der Seite enthalten sind.

Unter Jekyll-Themes ist das Ganze etwas näher erklärt. Insbesondere unter ‘Overriding theme defaults’ stehen die entscheidenden Hinweise, wie man die Seite mit einem eigenen bzw. einem angepassten Theme versehen kann. Kurz zusammen gefasst läuft es darauf hinaus, dass die Dateien im eigenen Verzeichnis immer Vorrang vor den per Gem bereitgestelltem Theme haben. Ein eigenes Theme zu nutzen sollte also denkbar einfach sein.

Da es sich ja um einen Generator für eine statische Webseite handelt, erwarte ich auch keine größeren Probleme später das Theme zu ändern. Beim Überfliegen der verschiedenen verfügbaren Themes bin ich vor allem auf einen relevanten Unterschied gestossen, nämlich verschiedene ‘front matter’ Einträge.

Also einfach einmal ein Theme installieren und ausprobieren (in der _config_yml das Theme eingetragen) und ein Neugenerieren der Seite. Was aber gleich auffällt, ist dass die meisten Themes nicht via gem heruntergeladen werden können.

Für den Start habe ich mir einfach einmal das Centarium Theme ausgesucht und heruntergeladen. Im Prinzip gibt es darin die folgenden wesentlichen Punkte, die mich vorrangig interessieren:

  • Ein Bannerbild für die verschiedenen Seiten
  • Kategorien für die einzelnen Posts
  • Die Aufteilung der Post Listen auf mehrere Seiten (Pagination genannt)

Was zunächst nicht enthalten ist, sind Vorschaubilder für die Posts, aber darum kümmere ich mich evtl. später. Bis dahin nutze ich das Theme Centarium. Also habe ich das Theme heruntergeladen und die folgenden Verzeichnisse vom Theme einfach in mein Arbeitsverzeichnis kopiert:

  • assets
  • css
  • _inlcudes
  • js
  • _sass

Das Verzeichnis _posts kopiere ich nicht, genauso wie die Dateien _config.yml und about.md nicht. Auch die Datei circle.yml brauche ich aus meiner Sicht nicht, Gemfile kopiere ich ebenfalls nicht. Ein wichtiger Punkt ist die Datei index.html, die die Pagination enthalten soll, die ich kopiere.

Dann habe ich noch ein paar Änderungen in die _config.yml übernommen:

plugins:
  - jekyll-sitemap
  - jekyll-paginate-v2

sowie

# Pagination Settings
# https://github.com/sverrirs/jekyll-paginate-v2/blob/master/README-GENERATOR.md#site-configuration
pagination:
  enabled: true
  per_page: 5
  permalink: "/page/:num/"
  sort_reverse: true

Wenn ich jetzt ohne weitere Anpassungen versuche die Seite zu generieren, gibt es eine Fehlermeldung wegen den fehlenden Plugins jekyll-sitemap und jekyll-paginate-v2. Ohne mich in der Tiefe mit der Installation von gems zu beschäftigen, habe ich herausgefunden, wie das in Ruby gedacht ist: In der Datei Gemfile innerhalb meines Verzeichnisses habe ich die folgenden Zeilen eingefügt:

group :jekyll_plugins do
  gem "jekyll-feed", "~> 0.12"
  gem "jekyll-paginate-v2"
  gem "jekyll-sitemap"
end

Danach dann auf der Shell:

cd ~/harald-berghoff.de
bundle install

Mit den Einstellungen habe ich automatisch das Archiv, dass in dem Theme enthalten ist, deaktiviert. Bis jetzt habe ich auch keinen Bedarf an einem Archiv.

Ein direkter Neustart zeigt dann zwar andere Header und Footer an, aber keinerlei Bild. Auch der Link ‘Über’ ist verschwunden. Genauso wie die SocialMedia Icons unten auf der Seite. Irgendetwas habe ich also noch nicht richtig konfiguriert. Die Vermutung ist natürlich, dass dies entweder in den Einstellungen der _config.yml oder in den ‘front matters’ verborgen ist.

Tatsächlich lässt sich das Bannerbild auf der Titelseite durch ein paar weitere Zeilen in der _config.yml einbinden, auch den subtitle habe ich direkt mit angegeben:

subtitle: Alles was mich interessiert, BigData, Dataplatforms, Daten allgemein,
  meine Hobbies...
cover: "/assets/header_image.jpg"
logo: "/assets/logo.png"

Das Aufnehmen der folgdenden Zeile in den front matters der about.markdown Datei bringt den ‘Über diese Webseite’ Link zurück auf die Frontpage:

main_nav: true

In den front matters muss für das Theme noch überall die Variable ‘author’ aufgenommen werden, aber sonst sind keine grösseren Änderungen erforderlich.

Die SocialMedia Icons sind im Centarium Theme in der _config.yml aufgelistet, allerdings hat mir das Ganze aus dem Minima Theme besser gefallen. Ich habe einfach die Zeilen in der Datei _includes/footer.html angepasst, in dem ich einige Zeilen aus der gleichen Datei des Minima Themes kopiert habe. Für jetzt soll es damit erstmal reichen. Demnächst werde ich dann noch eigene Bilder heraussuchen und vielleicht noch ein paar Kleinigkeiten an dem Layout anpassen.

Die Tatsache, dass das aktuelle Theme für jeden Post den Autor auflistet ist bei mir nicht notwendig und das ‘Share’ unten auf der Seite ist ebenfalls leer. Ich nehme an, das liegt auch an den SocialMedia Icons die ich noch nicht übernommen habe. Aber das schaue ich mir ein anderesmal an.