[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 Sie dies, um alle relativen URLs relativ zum Content Root zu machen. Beachten Sie, dass dies keine Auswirkungen auf absolute URLs hat.
  • refLinksErrorLevel (“ERROR”): Wenn Sie ref oder relref verwenden, 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 WARNUNG. Jeder FEHLER schlägt den Build fehl (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 (unbegrenzt): Maximale Anzahl der Elemente im RSS-Feed.
  • Abschnitt SeitenMenü (“”“): Siehe “Abschnitt Menü für faule Blogger”.
  • Sitemap: Standard-Sitemap-Konfiguration.
  • staticDir (“static”): Ein Verzeichnis oder eine Liste von Verzeichnissen, aus denen Hugo statische Dateien 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.
  • theme (“”): Zu verwendendes Thema (standardmäßig in /themes/Themename/).
  • themesDir (“themes”): Das Verzeichnis, in dem Hugo die Themen liest.
  • Zeitüberschreitung (10000): Timeout für die Generierung von Seiteninhalten in Millisekunden (Standard: 10 Sekunden). Hinweis: Dies wird verwendet, um die Generierung rekursiver Inhalte zu umgehen. Wenn Ihre Seiten nur langsam generiert werden (z.B. weil sie eine große Bildverarbeitung erfordern oder von entfernten Inhalten abhängen), müssen Sie diese Grenze möglicherweise erhöhen.
  • title (“”“): Titel der Website.
  • uglyURLs (false): Wenn aktiviert, wird eine URL der Form /filename.html anstelle von /filename/ erstellt. wortreich (false): Aktivieren Sie die ausführliche Ausgabe.
  • verboseLog (falsch): Aktivieren Sie die ausführliche Protokollierung.
  • beobachten (falsch): Beobachten Sie das Dateisystem auf Änderungen und erstellen Sie es nach Bedarf neu.

Feurwehrzufahrt

Photo by Peter Kasprzyk on Unsplash

Wenn Sie Ihre Website auf einem *nix-Rechner entwickeln, finden Sie hier eine praktische Abkürzung, um eine Konfigurationsoption über die Befehlszeile zu finden:

cd ~/sites/yourhugosite hugo config | grep emoji

die die Ausgabe wie folgt anzeigt

enableemoji: true

Variablen der Konfigurationsumgebung

HUGO_NUMWORKERMULTIPLIKATOR Kann so eingestellt werden, dass die Anzahl der für die Parallelverarbeitung in Hugo eingesetzten Mitarbeiter erhöht oder reduziert wird. Wenn nicht gesetzt, wird die Anzahl der logischen CPUs verwendet.

Konfiguration Nachschlageauftrag

Ähnlich wie bei der Template-Suchreihenfolge verfügt Hugo über einen Standardsatz von Regeln für die Suche nach einer Konfigurationsdatei im Stammverzeichnis des Quellverzeichnisses Ihrer Website als Standardverhalten:

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

In Ihrer Konfigurationsdatei können Sie Hugo mitteilen, wie Ihre Website gerendert werden soll, die Menüs Ihrer Website steuern und beliebig standortweite Parameter definieren, die spezifisch für Ihr Projekt sind. Beispielkonfiguration

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

baseURL = “ https://yoursite.example.com/ “. FußnoteRücksendungLinkInhalte = “↩”. title = “ Meine Hugo-Seite “.

(author) Autorenname = “Jon Doe”. GitHubUser = “spf13”. ListOfFoo = [“foo1”, “foo2”]] SidebarRecentLimit = 5 Untertitel = “Hugo ist absurd schnell!”

(permalinks) Beiträge = “/:Jahr/:Monat/:Titel/“.

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 docs Netlify Konfigurationsdatei an.

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

Die folgende Anweisung in ./config.toml bewirkt, dass Hugo beim Rendern Dateien ignoriert, die mit .foo und .boo enden:

ignoreFiles = [ “\.foo$“, “\.boo$” ] ]

Das Obige ist eine Liste von regulären Ausdrücken. Beachten Sie, dass