Hugo Konfigurieren

[TOC]

Konfigurationsdatei

Hugo verwendet die config.toml, config.yaml oder config.json (falls im Wurzelverzeichnis zu finden) als Standard-Konfigurationsdatei. Man kann diesen Standard mit einer oder mehreren Site-Konfigurationsdateien überschreiben, indem der comma-separated string --config verwendet wird.

Beispiele:

# hugo --config debugconfig.toml
# hugo --config a.toml,b.toml,c.toml,c.toml

Mehrere Site-Konfigurationsdateien können als kommagetrennte Zeichenkette an den Schalter --config übergeben werden.

Photo by Hannes Wolf on Unsplash

Konfigurationsverzeichnis

Zusätzlich zur Verwendung einer Konfigurationsdatei für einen einzelnen Standort kann man das config -Verzeichnis (Standard ist /config) verwenden, um die Organisation und die umgebungsspezifischen Einstellungen zu vereinfachen.

Kommt hier jedoch nicht vor.

  • Jede Datei repräsentiert ein Konfigurations-Root-Objekt, wie z.B. Parameter, Menüs, Sprachen usw..
  • Jedes Verzeichnis enthält eine Gruppe von Dateien, die Einstellungen enthalten, die für eine Umgebung einzigartig sind.
  • Dateien können lokalisiert werden, um sprachspezifisch zu werden.
config
├── _default
│ ├─── config.toml
│ ├─── languages.toml
│ ├── Menüs.en.toml
│ ├── menus.zh.toml
│ └─── params.toml
├── Inszenierung
│ ├─── config.toml
│ └─── params.toml
└─── Produktion
    ├─── config.toml
    └─── params.toml

In Anbetracht der obigen Struktur wird Hugo bei der Ausführung von hugo --environment staging alle Einstellungen von config/_default verwenden und Staging’s darüber hinaus zusammenführen.

Photo by Mords Saligumba on Unsplash

Alle Konfigurationseinstellungen

Die von Hugo definierten Variablen (mit ihrem Standardwert in Klammern) sind in der folgenden alphabetischen Auflistung zu sehen. Benutzer können diese Werte in ihren Site-Konfigurationsdateien überschreiben. Fett dargestellt sind die Einstellungen der config.toml, die hier Verwendung finden.

  • archetypeDir (“archetypes”): Verzeichnis, in dem Hugo Archetype-Dateien (Inhaltsvorlagen) findet. Siehe auch hier.
  • assetDir (“Vermögenswerte”): Verzeichnis, in dem Hugo Asset-Dateien findet, die in Hugo Pipes verwendet werden.
  • baseURL: Hostname (und Pfad) zur Root, z.B. http://www.petersheim.de
  • blackfriday: Siehe hier oder in der offiziellen Dokumentation: Konfiguration von Blackfriday
  • buildDrafts (false): Einfügen von Entwürfen (drafts)
  • buildExpired (false): Einfügen von Inhalten, die bereits abgelaufen sind
  • buildFuture (false): Einfügen von Inhalten mit Datum der Veröffentlichung
  • Caches: Siehe Konfigurieren von Datei-Caches
  • canonifyURLs (true): Mit dem Aktivieren dieser Option (true) werden relative URLs in absolute umgewandelt
  • contentDir (“content”): Verzeichnis, aus dem Hugo Inhaltsdateien liest.
  • dataDir (“data”): Verzeichnis, aus dem Hugo Datendateien liest.
  • defaultContentLanguage (“en”): Inhalte ohne Sprachkennzeichen werden standardmäßig in dieser Sprache angezeigt
  • defaultContentLanguageInSubdir (en): die standardmäßige Inhaltssprache im Subdir, z.B. content/en wird umgewandelt. Die Wurzelverzeichnis wird dann zu /de/ umgeleitet
  • disableAliases (false): Deaktiviert die Generierung von Alias-Umleitungen. Zu beachten ist, dass selbst wenn disableAliases gesetzt ist, die Aliase selbst auf der Seite erhalten bleiben
  • disableHugoGeneratorInject (true): Hugo injiziert standardmäßig nur auf der Startseite ein Generator-Meta-Tag in den HTML-Kopf. Um die Verbreitung von Hugo zu unterstützen, sollte man dies nicht unterbinden - was man mit true tun kann
  • disableKinds ([]): Ermöglicht das Deaktivieren aller Seiten der angegebenen Arten. Erlaubte Werte in dieser Liste: “page”, “home”, “section”, “taxonomy”, “taxonomyTerm”, “RSS”, “sitemap”, “robotsTXT”, “404”
  • disableLiveReload (false) deaktivieren: Deaktiviert das automatische Live-Reload des Browserfensters
  • disablePathToLower (false): Konvertiert URL/Pfad nicht in Kleinbuchstaben
  • enableEmoji (true): Aktiviert die Unterstützung von Emoji Emoticons für Seiteninhalte; siehe Emoji Cheat Sheet 😜 😉
  • enableGitInfo (false): Aktiviert das .GitInfo-Objekt für jede Seite (wenn die Hugo-Seite von Git versioniert wird). Dadurch wird der Lastmod-Parameter für jede Seite mit dem letzten Git-Commit-Datum für diese Inhaltsdatei aktualisiert
  • enableInlineShortcodes (true): Aktiviert die Unterstützung von Inline-Shortcodes. Siehe Inline Shortcodes, z.B. hier oder Contentmanagemant - Shortcodes: Shortcodes are simple snippets inside your content files calling built-in or custom templates.
  • enableMissingTranslationPlaceholders (false): Zeigt einen Platzhalter anstelle des Standardwertes oder eine leere Zeichenkette an, wenn eine Übersetzung fehlt
  • enableRobotsTXT (true): Aktiviert die Generierung der Datei robots.txt
  • frontmatter: Nicht in der config.toml hier. Siehe Front Matter Configuration, bzw. Front Matter
  • footnoteAnchorPrefix ("""): Präfix für Fußnotenanker
  • footnoteReturnLinkContents ("""): Text, der für die Return Links der Fußnote angezeigt wird
  • googleAnalytics (""): Google Analytics Tracking ID
  • hasCJKLanguage (false): Wenn auf true gesetzt, wird Chinesische, Japanische, Koreanische Sprachen automatisch im Inhalt erkannt. Dadurch verhalten sich .Summary und .WordCount für CJK-Sprachen korrekt
  • imaging: Siehe Imaging Processing Config, siehe auch hier unter Image Processing Config und Image Processing oder auch Inline Shortcodes 😄
  • languages: Siehe Configure Languages
  • languageCode (““De-de”): Der Sprachcode der Sites
  • languageName (“”): Der Sprachname der Sites
  • disableLanguages: Siehe Disable a Language
  • layoutDir (“layouts”): Das Verzeichnis, aus dem Hugo Layouts (Vorlagen) liest.
  • logFile (”""): Pfad der Protokolldatei (falls gesetzt, Protokollierung automatisch aktiviert).
  • Menu: Siehe Add Non-content Entries to a Menu: Hinzufügen von nicht inhaltlichen Einträgen zu einem Menü und allgemein hier zu Menus 😃
  • metaDataFormat (“toml”): Vordergründiges Metadatenformat. Gültige Werte: “Toml”, “Yaml” oder “Json”
  • newContentEditor ("""): Der Editor, der bei der Erstellung neuer Inhalte verwendet werden soll
  • noChmod (false): Kein Synchronisieren des Berechtigungsmodus von Dateien.
  • noTimes (false): Kein Synchronisieren der Änderungszeit von Dateien.
  • paginiert (10): Standardanzahl der Elemente pro Seite in der Pagination (Seitenumbruch).
  • paginatePath (“Site”): Das Pfadelement, das beim Paginieren verwendet wird (https://example.com/page/2).
  • permalinks: Siehe Content Management (Inhaltsverwaltung). Siehe auch hier 😃
  • pluralizeListTitles (true): Pluralisieren von Titeln in Listen.
  • publishDir (“public”): Das Verzeichnis, in das Hugo die endgültige statische Seite schreibt (die HTML-Dateien usw.).
  • pygmentsCodeFencesGuessSyntax (false): Aktiviert die Syntaxüberprüfung für Codefences ohne angegebene Sprache.
  • pygmentsStyle (“monokai”): Farbthema oder Stil für die Syntaxhervorhebung. Siehe Pygments Color Themes.
  • pygmentsCodeFences (true):
  • pygmentsUseClasses (true): Aktiviert die Verwendung von externem CSS zur Syntaxhervorhebung.
  • related: Siehe Related Content.
  • relative URLs (false): Aktivieren, um alle relativen URLs relativ zum Content Root zu machen. Dies hat keine Auswirkungen auf absolute URLs.
  • refLinksErrorLevel (“ERROR”): Wenn ref oder relref verwendet wird, um Seitenlinks aufzulösen, und ein Link nicht aufgelöst werden kann, wird er mit dieser logg-Ebene protokolliert. Gültige Werte sind ERROR (Standard) oder WARNING. Jeder ERROR will fail build (exit -1).
  • refLinksNotFoundURL: URL, die als Platzhalter verwendet wird, wenn ein Seitenverweis nicht in ref oder relref gefunden werden kann. Wird so verwendet, wie es ist.
  • rssLimit (10): Maximale Anzahl der Elemente im RSS-Feed. 😁
  • sectionPagesMenu (“”): Siehe “Section Menu for Lazy Bloggers” (Abschnitt Menü für faule Blogger).
  • Sitemap: Standard sitemap configuration, siehe auch hier. 👨‍👧
  • staticDir (“static”): Ein Verzeichnis oder eine Liste von Verzeichnissen, aus denen Hugo statische Dateien (static files) liest. 🍏
  • stepAnalysis (false): Zeigt den Speicher und das Timing der verschiedenen Programmschritte an.
  • summaryLength (70):: Die Länge des Textes in Wörtern, der in einer Zusammenfassung angezeigt werden soll.
  • taxonomies: Siehe Configure Taxonomies bzw. hier.
  • theme (“hermit”): Zu verwendendes Thema (standardmäßig in /themes//).
  • themeColor = “[[494f5c]]”
  • themesDir (“themes”): Das Verzeichnis, in dem Hugo die Themen liest.
  • timeout(10000): Zeitüberschreitung für die Generierung von Seiteninhalten in Millisekunden (Standard: 10 Sekunden). Hinweis: Dies wird verwendet, um die Generierung rekursiver Inhalte zu umgehen. Wenn die Seiten nur langsam generiert werden (z.B. weil sie eine große Bildverarbeitung erfordern oder von entfernten Inhalten abhängen), muss diese Grenze möglicherweise erhöht werden.
  • title (" “): Titel der Website.
  • uglyURLs (false): Wenn aktiviert, wird eine URL der Form /filename.html anstelle von /filename/ erstellt. verbose (false): ermöglicht die ausführliche Ausgabe.
  • verboseLog (false): ermöglicht die ausführliche Protokollierung.
  • watch (false): ermöglicht das Beobachten des Dateisystems auf Änderungen.

Feurwehrzufahrt

Photo by Peter Kasprzyk on Unsplash

Konfiguration Nachschlageauftrag (Configuration Lookup Order)

Ähnlich wie bei der template lookup order (Template-Suchreihenfolge) verfügt Hugo über einen Standardsatz von Regeln für die Suche nach einer Konfigurationsdatei im Stammverzeichnis der Website als Standardverhalten:

./config.toml
./config.yaml
./config.json

In der Konfigurationsdatei wird festgelegt, wie die Website gerendert werden soll, welche Menüs die Website steuern und welche standortweiten Parameter des Projekts definiert sind.

Beispielkonfiguration der config.toml

Im Folgenden finden Sie ein typisches Beispiel für eine Konfigurationsdatei. Die unter params: verschachtelten Werte füllen die Variable .Site.Params variable zur Verwendung in Vorlagen (templates):

baseURL = "https://yoursite.example.com/"
footnoteReturnLinkContents = "↩"
title = "My Hugo Site"

[params]
  AuthorName = "Jon Doe"
  GitHubUser = "spf13"
  ListOfFoo = ["foo1", "foo2"]
  SidebarRecentLimit = 5
  Subtitle = "Hugo is Absurdly Fast!"

[permalinks]
  posts = "/:year/:month/:title/"

Konfigurieren mit Umgebungsvariablen

Zusätzlich zu den bereits erwähnten 3 Konfigurationsoptionen können Konfigurationsschlüsselwerte über Betriebssystemumgebungsvariablen definiert werden.

Der folgende Befehl setzt beispielsweise den Titel einer Website effektiv auf Unix-ähnlichen Systemen:

$ env HUGO_TITLE="Some Title" hugo

Dies ist sehr nützlich, wenn Sie einen Dienst wie Netlify zur Bereitstellung Ihrer Website verwenden. Schauen Sie sich zum Beispiel die Hugo Netlify configuration file an.

Namen müssen mit HUGO_ vorangestellt werden und der Konfigurationsschlüssel muss beim Setzen von Betriebssystemumgebungsvariablen in Großbuchstaben gesetzt werden.