Ein leichter, in Python geschriebener statischer Site-Generator.
Merkmale:
pip install --upgrade gnrt
Möglicherweise müssen Sie $HOME/.local/bin zu Ihrem $PATH hinzufügen.
gnrt
gnrt sucht nach einer optionalen config.yml Datei im aktuellen Arbeitsverzeichnis, optionalen Jinja2-Vorlagen im templates , Markdown-Dateien im content und schreibt dann die generierten Ausgabedateien in den public Ordner, wobei der content und die Unterordner berücksichtigt werden. Ordnerstruktur.
Um eine Liste der Optionen zu erhalten, verwenden Sie:
gnrt -h
Die Konfiguration wird in config.yml gespeichert. Jedes Schlüssel-Wert-Paar ist zulässig. Diese Schlüssel und ihre Werte können in den Inhalts- und Vorlagendateien verwendet werden.
---
sitename: My awesome blog
baseurl: https://example.com
language: en
foo: bar
Wenn die Datei config.yml vorhanden ist, sucht gnrt nach den defaults und lists Einträge auf.
Hier definieren Sie Standardkonfigurationswerte, die in Inhaltsdateien überschrieben werden können.
Beispiel:
defaults:
template: default.j2
markdown-extras:
- break-on-newline
- fenced-code-blocks
nav: includes/nav.html
bar: foo
Diese Schlüssel haben eine bestimmte Bedeutung und ihre Werte können wie alle anderen default in Inhaltsdateien überschrieben werden.
markdown-extras : Ermöglicht die Aktivierung von Markdown-Erweiterungen. Eine Liste der Werte finden Sie unter Extrastemplate : Legt die Standard-Jinja-Vorlage fest, die beim Rendern von Inhaltsdateien verwendet werden sollHier werden Inhaltslisten definiert, die beispielsweise die Generierung von Linklisten ermöglichen.
Beispiel:
lists:
nav1:
filter:
key: category
value: page
template: nav-page.j2
nav2:
filter:
key: category
value: article
sort: published
reverse: true
template: nav-article.j2
rss:
filter:
key: category
value: article
sort: published
reverse: true
template: rss.j2
target: public/rss.xml
Listen können Inhalte über einen filter auswählen, der einen key und einen passenden value erhält.
Sie können nach Metadatenwert (z. B. einem Veröffentlichungsdatum, einer Ganzzahl, ...) in vorwärts (Standard) oder reverse Reihenfolge sortiert werden.
Beim Rendern wird der generierte Inhalt im includes -Ordner gespeichert (zum Zwischenspeichern), während der Dateipfad über den target angepasst werden kann. Dies ermöglicht beispielsweise die Generierung eines RSS-Feeds.
Inhaltsdateien haben die Erweiterung .md und werden im content gespeichert.
Inhaltsdateien können einen in YAML geschriebenen Inhalt haben, d. h. strukturierte Metadaten.
Hier können Standardwerte überschrieben werden.
Beispiel:
---
id: home
title: Home
link: /
nav-order: 3
---
id : die aktuelle Elementkennung, die in jeder Inhaltsdatei verwendet werden kann, um auf die Metadaten dieses Elements zuzugreifenlink : URL der generierten Seitetarget : Pfad der generierten Dateititle : Titel des aktuellen Elements Der body wird in Markdown geschrieben.
Es kann auch Jinja2-Syntax und Platzhalter enthalten, die das Einfügen von dataset ermöglichen, beispielsweise Links zu anderen Seiten:
Check the [about]({{ data.about.link }}) page or read the [articles]({{ data.articles.link }})!
Sehen Sie sich die Beispielwebsite in docs/example an, die Sie generieren können, indem Sie gnrt installieren, dieses Repository klonen, zu gnrt/docs/example wechseln und gnrt ausführen.
Sie können es dann unter http://localhost:8080/ durchsuchen, indem Sie in den generierten public Ordner wechseln und python3 -m http.server 8080 ausführen.
Vielleicht möchten Sie auch einen von GnRT erstellten Live-Blog ansehen und diesen Artikel über Gnrt lesen.