Boehrsi.de - IT und Gaming Blog

Boehrsi.de Version 8 - Tipps und Tricks für Hugo

Erstellt am event Uhr von account_circle Boehrsi in label Development
Boehrsi.de Version 8 - Tipps und Tricks für Hugo Bild

Während der Entwicklung meines neuen Blogs bin ich natürlich über diverse Dinge gestolpert, vor allem im Bereich der Entwicklung mit Hugo. Dies bezieht sich sowohl auf das Tool selbst, wie auch auf die Templating-Engine. In diesem Beitrag möchte ich etwas auf beide Themen eingehen.
Beginnen möchte ich mit Hugos Command Line Interface (CLI) open_in_new, denn dies ist der Weg um Hugo zu steuern. Für die Entwicklung nutze ich meistens hugo server. Dadurch wird ein Server erstellt der schnell und flexibel, mit automatischem Reload bei Änderungen, eure Website lokal verfügbar macht. Solltet ihr umfangreichere Änderungen machen, die vielleicht nicht immer komplett erkannt werden, kann durch hugo server –disableFastRender der schnelle Rendering Modus deaktiviert werden. Dadurch dauert das erneute bauen etwas länger, Änderungen werden aber besser erkannt und umgesetzt. Solltet ihr einfach nur neuen Content hinzufügen und nicht am Template arbeiten, reicht übrigens meistens hugo server.
Um die Seite zu bauen reicht es hugo aufzurufen, dadurch wird im /public Ordner die gesamte Seite erstellt, sodass ihr sie direkt hochladen könnt. Bevor ihr dies tut kann man übrigens mittels hugo benchmark und hugo –templateMetrics herausfinden wie lange eure Seite und die einzelnen Komponenten zum Bauen brauchen. Dadurch findet man Bottlenecks und kann entsprechend optimieren. Ich konnte meine Build-Zeit dadurch vor kurzem von 140 Sekunden auf 40 drücken, wofür ich nur Änderungen in weniger als zehn Zeilen brauchte.

Damit sind wir auch schon beim Templating, welches relativ einfach ist was die Funktionalität angeht, doch dann noch lange nicht optimal ist. Einige wichtige Punkte sind:

  • Die Nutzung des with open_in_new Statements erspart diverse if / else Konstrukte und sollte definitiv betrachtet werden
  • Zur besseren Übersicht sind partials open_in_new extrem hilfreich, durch sie können Inhalte gekapselt und wiederverwendet werden
  • Für das Filtern von Inhalten in Iterationen via range open_in_new können where open_in_new Statements geschachtelt werden. Dies ist wesentlich besser als if Abfragen innerhalb der Iteration. Ich konnte mir dadurch extrem viele erneute Iterationen über alle Blog-Beiträge sparen
  • Ändern sich partials im Verlauf des Bauens nicht, werden aber sehr oft genutzt, sollte das partialCached open_in_new Statement näher betrachtet werden. Dies kann extreme Verbesserungen bringen. In meinem Beispiel muss die Seitennavigation nun nur noch ca. 5 Mal, statt ca. 20000 Mal gebaut werden
  • Hugo bietet weit mehr Out of the Box Funktionen als man zu Anfang vermutet. Es lohnt sich die Dokumentation zu lesen, vor allem für die Variablen open_in_new und die dazugehörigen Scopes, sowie für Funktionen open_in_new und deren Anwendungsgebiete
  • Die Hugo Config open_in_new bietet von Haus aus einiges und kann zusätzlich noch um eigene Variablen erweitert werden, dies sollte genutzt werden um wiederkehrende Werte in Themes zu vereinheitlichen
Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.