gozer
1.0.0
Gozer は、Golang で書かれた高速かつシンプルな静的サイト ジェネレーターです。
Gozer を使用したサンプル Web サイト:
Gozer をインストールするには、まず Go コンパイラーをインストールしてから、以下を実行します。
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
実行してサイトを生成します。
content/
ディレクトリに配置された Markdown ファイルは、 gozer build
実行後にビルド ディレクトリに HTML ページが作成されます。
例えば:
content/index.md
ファイルbuild/index.html
を作成し、 /
で HTTP 経由でアクセスできるようにします。content/about.md
ファイルbuild/about/index.html
を作成し、 /about/
で HTTP 経由でアクセスできるようにします。 ヘルプ テキストを表示するには、引数を指定せずに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 ライセンスに基づいてオープンソースです。