Gozer ist ein schneller und einfacher statischer Site-Generator, der in Golang geschrieben ist.
Beispiel-Websites mit Gozer:
Sie können Gozer installieren, indem Sie zuerst einen Go-Compiler installieren und dann Folgendes ausführen:
go install git.sr.ht/~dvko/gozer@latest Führen Sie gozer new aus, um schnell eine leere Verzeichnisstruktur zu generieren.
├── config.toml # Configuration file
├── content # Posts and pages
│ └── index.md
├── public # Static files
└── templates # Template files
└── default.html Führen Sie dann gozer build aus, um Ihre Website zu erstellen.
Alle in Ihrem content/ -Verzeichnis abgelegten Markdown-Dateien führen nach der Ausführung von gozer build zu einer HTML-Seite in Ihrem Build-Verzeichnis.
Zum Beispiel:
content/index.md erstellt eine Datei build/index.html sodass über HTTP unter / darauf zugegriffen werden kann.content/about.md erstellt eine Datei build/about/index.html , sodass über HTTP unter /about/ darauf zugegriffen werden kann. Führen Sie gozer ohne Argumente aus, um den Hilfetext anzuzeigen.
Gozer - a fast & simple static site generator
Usage: gozer [OPTIONS] <COMMAND>
Commands:
build Deletes the output directory if there is one and builds the site
serve Builds the site and starts an HTTP server on http://localhost:8080
new Creates a new site structure in the given directory
Options:
-r, --root <ROOT> Directory to use as root of project (default: .)
-c, --config <CONFIG> Path to configuration file (default: config.toml)
Jede Datei in Ihrem content/ -Verzeichnis sollte auf .md enden und eine TOML-Titelzeile haben, die den Seitentitel angibt:
+++
title = " My page title "
+++
Page content here. Die Standardvorlage für jede Seite ist default.html . Sie können es überschreiben, indem Sie die template in Ihrem Titelblatt festlegen.
+++
title = " My page title "
template = " special-page.html "
+++
Page content here. Vorlagen basieren auf dem standardmäßigen html/template Paket von Go, sodass Sie alle hier beschriebenen Aktionen verwenden können.
Jede Vorlage erhält den folgenden Satz Variablen:
Pages # Slice of all pages in the site
Posts # Slice of all posts in the site (any page with a date in the filename)
Site # Global site properties: Url, Title
Page # The current page: Title, Permalink, UrlPath, DatePublished, DateModified
Title # The current page title, shorthand for Page.Title
Content # The current page's HTML content.
Die Page Variable ist eine Instanz des folgenden Objekts:
type Page struct {
// Title of this page
Title string
// Template this page uses for rendering. Defaults to "default.html".
Template string
// Time this page was published (parsed from file name).
DatePublished time.Time
// Time this page was last modified on the filesystem.
DateModified time.Time
// The full URL to this page, including the site URL.
Permalink string
// URL path for this page, relative to site URL
UrlPath string
// Path to source file for this page, relative to content root
Filepath string
}
So zeigen Sie eine Liste der 5 neuesten Beiträge an:
{{ range (slice .Posts 0 5) }}
<a href="{{ .Permalink }}">{{ .Title }}</a> <small>{{ .DatePublished.Format "Jan 02, 2006" }}</small><br />
{{ end }}
Die Gozer-Entwicklung findet auf Sourcehut statt. Patches werden per E-Mail akzeptiert.
Gozer ist Open-Source unter der MIT-Lizenz.