A simple, fast static site generator written in Go — featuring incremental builds, syntax highlighting, Mermaid diagrams, and a live-reload dev server.
日本語版: README.ja.md
This logo was created by gopherize.me.
- Incremental builds — Regenerate only changed files, minimising build time
- Markdown + Front Matter — GitHub Flavored Markdown with YAML metadata
- Syntax highlighting — Code blocks styled with chroma
- Mermaid diagrams — Fenced
mermaidblocks render as interactive diagrams - Taxonomy — Tag and category pages generated automatically
- Atom feed & sitemap —
atom.xmlandsitemap.xmlgenerated automatically - Live-reload dev server —
gohan servewatches files and reloads the browser - Customisable themes — Full control via Go
html/template - Plugin system — Built-in plugins enabled per-project via
config.yaml(no Go code required) - i18n — Multi-locale content with per-article translation links and
hreflangsupport - OGP image generation — Build-time
1200×630Open Graph images, one per article - Pagination — Configurable
per_pagewith automatic next/previous page links - GitHub source link — Per-article link to the source file on GitHub for easy editing
- Related articles — Automatic same-category article recommendations on article pages
go install github.com/bmf-san/gohan/cmd/gohan@latestOr build from source:
git clone https://github.com/bmf-san/gohan.git
cd gohan
make installPre-built binaries are available on GitHub Releases.
# 1. Create a project directory
mkdir myblog && cd myblog
# 2. Add config.yaml (see docs/guide/configuration.md for all options)
cat > config.yaml << 'EOF'
site:
title: My Blog
base_url: https://example.com
language: en
build:
content_dir: content
output_dir: public
theme:
name: default
EOF
# 3. Create your first article
gohan new --title="Hello, World!" hello-world
# 4. Build the site
gohan build
# 5. Preview locally with live reload
gohan serve # open http://127.0.0.1:1313| Guide | Description |
|---|---|
| Getting Started | Installation, first site, build & preview |
| Configuration | All config.yaml fields and Front Matter |
| Templates | Theme templates, variables, built-in functions |
| Taxonomy | Tags, categories, and archive pages |
| CLI Reference | All commands and flags |
| Feature | Description |
|---|---|
| i18n | Multi-locale content with translation links and hreflang |
| OGP Image Generation | Build-time Open Graph images per article |
| Pagination | Configurable per_page and page navigation |
| GitHub Source Link | Per-article link to the source file on GitHub |
| Plugin System | Built-in plugins (amazon_books, …) via config.yaml |
| Related Articles | Same-category article recommendations on article pages |
For architecture and design decisions see docs/DESIGN_DOC.md.
| Site | Description |
|---|---|
| bmf-tech.com (source) | Personal tech blog — i18n (EN/JA), 700+ articles, Cloudflare Pages |
See CONTRIBUTING.md for development setup and contribution guidelines.
If you'd like to support my work, please consider sponsoring me!
Or simply giving ⭐ on GitHub is greatly appreciated—it keeps me motivated to maintain and improve the project! :D