Hugo-Seiten im Netzwerk entwickeln und testen

in  Builds & Tests , , , ,

Hugo-Seiten im Netzwerk entwickeln und testen

Hugo ist ein Generator für statische Seiten, welcher auf der Programmiersprache Go basiert. Die Inhalte werden mit Markdown verwaltet und dynamisch in HTML umgewandelt. Dies ist für die meisten kleineren Projekte interessant, weil ausreichend und im Vergleich zu einem dynamischen Content Management System einfacher zu handhaben; zudem sind statische Seiten auch in Bezug auf Sicherheit und Performanz unschlagbar (siehe auch: Vorteile statischer Seiten).

Der Build lässt sich dann z. B. mit GitHub Actions durchführen (zum Einsatz kommt hierfür z. B. diese Action), wobei die resultierende Seite direkt mit GitHub Pages betrieben werden kann. Wer den Komfort einer UI zur Pflege der Inhalte nicht missen möchte, kann ein entsprechendes Frontend obendrauf packen.

Hugo bietet eine Reihe von CLI-Kommandos, mit denen sich häufige Tasks ausführen und auch automatisieren lassen. Während das Hauptkommando eine Seite einfach nur baut, ist für die Entwicklung die server-Direktive wichtig: hiermit wird ein kleiner Webserver gestartet, der das Dateisystem automatisch auf Änderungen überwacht und die Testseite im Browser - per Standard via localhost:1313 aufrufbar - automatisch aktualisiert. Damit werden sowohl inhaltliche Anpassungen als auch optische Überarbeitung (z. B. in SCSS) direkt sichtbar, sobald eine Datei gespeichert wird.

Mit folgendem Kommando wird dies noch weiter vereinfacht:

1
hugo server -D --navigateToChanged --disableFastRender

Der Parameter -D bezieht auch als Entwurf (Draft) markierte Inhalte mit ein; --navigateToChanged sorgt dafür, dass nach Änderungen in Markdown-Dateien im Browser automatisch zur entsprechenden Unterseite gewechselt wird. Mit --disableFastRender wird nach jeder Anpassung ein kompletter Rebuild veranlasst.

Im Prinzip kann man die Entwicklung damit super handhaben, solange man das auf einer einzelnen Maschine tut. Wenn man aber mit mehreren Kollegen an einem Projekt arbeiten möchte und/oder unterschiedliche Geräte getestet werden sollen, wird das etwas umständlich, da die im Entwicklungsmodus über den in Hugo integrierten Webserver zur Verfügung gestellte Seite per Standard nur über localhost, nicht aber über die IP-Adresse oder den Hostnamen der entsprechenden Maschine erreichbar ist.

Um dieses Problem zu adressieren, gibt es den Parameter --bind, mit dem sich ein Interface zum Binden des Webservers angeben lässt. In diesem Beitrag wird gezeigt, wie sich das nutzen lässt. Damit kann man die Seite von mehreren Geräten aus parallel aufrufen.

Weitere Beiträge in Kategorie Builds & Tests

Abhängigkeiten automatisch aktualisieren mit Renovate
- Um Dependencies aktuell zu halten, wird bei GitHub oft und gerne der Dependabot eingesetzt. Mit Renovate existiert allerdings eine äußerst flexible Alternative, die im Folgenden kurz vorgestellt wird. …
Symfony-Projekte im Monorepo mit Nx bauen
- Mit dem Build-System Nx lassen sich beliebige Projekte in einem Monorepo auf einheitliche Weise testen und bauen. Es bedient sich verschiedener npm-Plugins, um dies für unterschiedliche Technologien …
Abhängigkeiten automatisch aktualisieren mit Dependabot
- Vor knapp eineinhalb Jahren haben wir gezeigt, wie man die Aktualisierung verwendeter Drittkomponenten mit GitHub Actions automatisieren kann. Zwischenzeitlich sind wir hierbei auf den Dependabot …
SensioLabs Security Checker wurde eingestellt
- Zu den grundlegenden Aufgaben automatisierter Builds zählen unterschiedliche Prüfungen: so bietet es sich an, die Einhaltung der Coding-Styles zu überwachen, Qualitätsmetriken zu erheben und die …
GitHub integriert Code Security Scanner
- Im offiziellen GitHub Changelog werden regelmäßig Beiträge über unterschiedliche Neuerungen und Innovationen auf der GitHub Plattform veröffentlicht, zum Beispiel in Bezug auf Funktionen in der …