hab mich in den letzten tage mal mit jekyll herumgespielt, und das ist doch sehr super, weil:

  • es aus dokumenten in form von textfiles eine webseite aus textfiles auf basis einer konfiguration in textfiles erzeugt,
  • es auf sinnvollen defaults basiert, mit denen man schon sehr weit kommt, die sich aber an jeder stelle überschreiben lassen, was es vollständig flexibel macht

ein minimales aber vollständiges projekt schaut etwa so aus:

in index.md wird nur angegeben, dass als layout default.html verwendet werden soll, in _config.yml kann man dinge wie den titel der seite oder die struktur für die permalinks definieren und in _layouts/default.html steht das html für die seite mit placeholdern für die inhalte.

fehlen nur noch die inhalte, und die müssen in der minimalversion in markdown sein, mit dem prefix des datums benannt werden und in den ordner _posts gelegt werden (jekyll interpretiert den namen des files als datum und titel der publikation, im file kann das dann überschrieben werden, muss es aber nicht)

aber auch ein sinnvolles setup ist nicht viel komplizierter:

das enthält dann in assets noch statische files wie bilder oder css-files für die webseite, ein paar zusätzliche layouts, um verschiedene inhalte verschieden darstellen zu können, ohne die logik in die layouts hineinbauen zu müssen, ein paar includes für sich wiederholende dinge wie header oder footer und sogar eine data-file, falls man zb. irgendwelche listen herumliegen hat und einbauen möchte – also alles, was eine einfache webseite oder blog braucht.

das praktische dabei ist also, dass einerseits nicht nur der gesamte content und sämtliche konfigurations-files leicht etwa auf github gebackuppt und versioniert werden kann (mit allen damit verbundenen vorteilen wie multiuser contributions, branches, requests, ..), sondern dass auch der output ohne weitere abhängigkeiten von datenbanken oder php-versionen auf jedem webserver mit minimalem footprint gehostet werden kann. einzige abhängigkeit ist jekyll selbst, was sich aber auch mit homebrew installieren und aktualisieren und mit gemfiles kontrollieren/einfrieren lässt.