bUwUma - Build System für Webseiten
Build Websites using Make
bUwUma
ist ein Build-System, welches GNU make und einen Präprozessor verwendet, um statische, mehrsprachige Websites zu erstellen.
bUwUma
liefert folgende Funktionen:
- Markdown in die HTML Dateien einbinden
- Nutzung von Variablen
- Konditionale Kontrollstrukturen (if, else)
- SASS Unterstützung
- Generierung einer XML Sitemap
- Generierung von allen notwendigen favicons aus einer Datei
- Generierung von Thumbnails für Videos, Audiodateien und PDFs
- Generierung Web-Optimierter Versionen von Bildern
- Generierung eines (Seiten-)Navigationsmenüs anhand von HTML Überschriften und anpassbaren Links
- Einfache Erstellung einer Seite in mehreren Sprachen
Herangehensweise
bUwUma
versucht, das Erstellen einer klassischen Webseite (html+css+javascript) nach dem DRY und KISS Prinzip zu ermöglichen.
Das bedeutet: Wiederholungen reduzieren und es Simpel halten, damit das Projekt auch in der Zukunft wartbar ist.
Die Erstellung einer Website mit bUwUma
ist ähnlich zur Erstellung eines C-Projekts:
Man hat ein source (Quell-) und ein build Verzeichnis.
Die Quelldateien, also alle HTML-, CSS- und Javascript-Dateien sowie alle Ressourcen wie Bilder und Schriftarten, kommen in das Quellverzeichnis.
make
baut dann die Webseite und legt sie im build Verzeichnis ab.
Dieses kann dann auf den Webserver kopiert werden.
Build-Prozess
Während dem Build-Prozess passiert folgendes:
- HTML Dateien werden vom Präprozessor bearbeitet.
Dieser setzt dann sämtliche Variablen ein und bindet zusätzliche Dateien in das Dokument ein (zum Beispiel ein Head, Footer, oder Text in Markdown).
Zusätzlich kann aus dem Inhalt ein Seitennavigationsmenü generiert und eingefügt werden.
Das resultierende HTML-Dokument wird im build Verzeichnis abgelegt.
- Eine Sitemap im XML Format wird im build Verzeichnis erstellt. Sie enthält Einträge für alle Dateien, in denen der Präprozessor einen
sitemap include
Befehl gefunden hat.
- SASS Dateien werden von einem SASS-Compiler kompiliert und die resultierenden CSS-Dateien im build Verzeichnis abgelegt.
- Favicons werden aus einem einzigen Bild erstellt. Dazu gehören das klassische
favicon.ico
sowie favicon.png
, apple-touch-icon.png
, android-chrome.png
und mstile.png
Varianten.
- Thumbnails werden für alle gewünschten Dateien im gewünschten Format im build Verzeichnis erstellt
- Web-optimierte Verseionen werden für alle gewünschten Bilder im gewünschten Format im build Verzeichnis erstellt
- Alle anderen Quelldateien (CSS, Javascript, Resourcen wie Bilder und Fonts) werden in das build Verzeichnis kopiert.
Wenn ein Feature nicht gebraucht wird, kann es im Makefile abgeschaltet werden.
$ cd ~/Website/src
$ make
Making directory ../www/de/
Making directory ../www/en/
Building html de/kontakt.html at ../www/de/kontakt.html
Building html in lang de: common/index.html at ../www/de/index.html
Building html in lang en: common/index.html at ../www/en/index.html
Making directory ../www/style/
Building: style/style.css at ../www/style/style.css
$ ls ../www
de en style
$ ls ../www/de
index.html kontakt.html
$ make clean
Erste Schritte
Um eine Webseite mit bUwUma
zu erstellen, muss man nach der Installation der Abhängigkeiten nur ein paar gut dokumentierte Optionen im Makefile anpassen und eine handvoll Befehle des Präprozessors lernen.
Diese sollten ziemlich intuitiv sein.
bUwUma
ist für Unix entwickelt, benötigt allerdings nur eine geeignete Terminalumgebung.
Dadurch kann im Windows Subsystem für Linux (WSL) oder direkt in Windows genutzt werden, sofern die notwendigen Abhängigkeiten installiert sind.
Abhängigkeiten
⚠formula incomplete