Gozer est un générateur de site statique rapide et simple écrit en Golang.
Exemples de sites Web utilisant Gozer :
Vous pouvez installer Gozer en installant d'abord un compilateur Go, puis en exécutant :
go install git.sr.ht/~dvko/gozer@latest
Exécutez gozer new
pour générer rapidement une structure de répertoires vide.
├── config.toml # Configuration file
├── content # Posts and pages
│ └── index.md
├── public # Static files
└── templates # Template files
└── default.html
Ensuite, exécutez gozer build
pour générer votre site.
Tous les fichiers Markdown placés dans votre répertoire content/
entraîneront une page HTML dans votre répertoire de build après avoir exécuté gozer build
.
Par exemple:
content/index.md
crée un fichier build/index.html
afin qu'il soit accessible via HTTP à l'adresse /
content/about.md
crée un fichier build/about/index.html
afin qu'il soit accessible via HTTP à /about/
. Exécutez gozer
sans aucun argument pour afficher le texte d'aide.
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)
Chaque fichier de votre répertoire content/
doit se terminer par .md
et avoir une présentation TOML spécifiant le titre de la page :
+++
title = " My page title "
+++
Page content here.
Le modèle par défaut pour chaque page est default.html
. Vous pouvez le remplacer en définissant la variable template
dans votre exposé.
+++
title = " My page title "
template = " special-page.html "
+++
Page content here.
Les modèles sont alimentés par le package html/template
standard de Go, vous pouvez donc utiliser toutes les actions décrites ici.
Chaque modèle reçoit l'ensemble de variables suivant :
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.
La variable Page
est une instance de l'objet ci-dessous :
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
}
Pour afficher une liste des 5 publications les plus récentes :
{{ range (slice .Posts 0 5) }}
<a href="{{ .Permalink }}">{{ .Title }}</a> <small>{{ .DatePublished.Format "Jan 02, 2006" }}</small><br />
{{ end }}
Le développement de Gozer se déroule sur Sourcehut. Les correctifs sont acceptés par e-mail.
Gozer est open source sous licence MIT.