gozer
1.0.0
Gozer 是一個用 Golang 寫的快速且簡單的靜態網站產生器。
使用 Gozer 的範例網站:
您可以透過先安裝 Go 編譯器然後執行以下命令來安裝 Gozer:
go install git.sr.ht/~dvko/gozer@latest
運行gozer new
快速生成空目錄結構。
├── config.toml # Configuration file
├── content # Posts and pages
│ └── index.md
├── public # Static files
└── templates # Template files
└── default.html
然後,執行gozer build
來產生您的網站。
執行gozer build
後,放置在content/
目錄中的任何 Markdown 檔案都會在建置目錄中產生 HTML 頁面。
例如:
content/index.md
建立一個檔案build/index.html
,以便可以透過 HTTP 存取/
content/about.md
建立一個檔案build/about/index.html
以便可以透過 HTTP 存取/about/
。 運行不帶任何參數的gozer
以查看幫助文字。
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)
content/
目錄中的每個檔案都應以.md
結尾,並具有指定頁面標題的 TOML 前面內容:
+++
title = " My page title "
+++
Page content here.
每個頁面的預設模板是default.html
。您可以透過在前面設定template
變數來覆蓋它。
+++
title = " My page title "
template = " special-page.html "
+++
Page content here.
模板由 Go 的標準html/template
套件提供支持,因此您可以使用此處描述的所有操作。
每個模板都會接收以下變數集:
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.
Page
變數是以下物件的實例:
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
}
若要顯示最近 5 篇貼文的清單:
{{ range (slice .Posts 0 5) }}
<a href="{{ .Permalink }}">{{ .Title }}</a> <small>{{ .DatePublished.Format "Jan 02, 2006" }}</small><br />
{{ end }}
Gozer 的開發發生在 Sourcehut 上。透過電子郵件接受補丁。
Gozer 在 MIT 許可下開源。