Skip to content

bmf-san/gohan

gohan

GitHub release CI codecov CodeQL Dependabot Updates Go Report Card Go Reference Sourcegraph License: MIT

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

gohan

This logo was created by gopherize.me.


Features

  • Incremental builds — Regenerate only changed files, minimising build time
  • Project scaffoldinggohan init bootstraps config.yaml, content folders, and archetype templates
  • Content lintergohan check validates duplicate slugs, missing front matter, and orphan translation keys
  • Archetype templatesgohan new --archetype=<name> renders custom front-matter skeletons from archetypes/<name>.md
  • Markdown + Front Matter — GitHub Flavored Markdown with YAML metadata
  • TOC / WordCount / ReadingTime — Auto-derived per article and exposed to templates
  • Scheduled posts — Future-dated articles are skipped by default; opt in with gohan build --future
  • Build observability--stats prints per-phase timing; --explain shows what triggered a rebuild
  • Syntax highlighting — Code blocks styled with chroma
  • Mermaid diagrams — Fenced mermaid blocks render as interactive diagrams
  • Taxonomy — Tag and category pages generated automatically
  • Atom feed & sitemapatom.xml and sitemap.xml generated automatically
  • Live-reload dev servergohan serve watches files and reloads the browser (CSS-only changes hot-swap stylesheets without a full reload)
  • 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 hreflang support
  • OGP image generation — Build-time 1200×630 Open Graph images, one per article
  • Pagination — Configurable per_page with 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

Installation

go install github.com/bmf-san/gohan/cmd/gohan@latest

Or build from source:

git clone https://github.com/bmf-san/gohan.git
cd gohan
make install

Pre-built binaries are available on GitHub Releases.


Quick Start

# 1. Scaffold a new project (creates config.yaml, content/, archetypes/, README.md)
gohan init myblog && cd myblog

# 2. Create your first article (uses archetypes/post.md)
gohan new --title="Hello, World!" hello-world

# 3. Validate the content (optional but recommended in CI)
gohan check

# 4. Build the site
gohan build

# 5. Preview locally with live reload
gohan serve   # open http://127.0.0.1:1313

See Configuration for all config.yaml options.


Documentation

Full documentation site: https://bmf-san.github.io/gohan/


Sites Built with gohan

Site Description
bmf-tech.com (source) Personal tech blog — i18n (EN/JA), 700+ articles, Cloudflare Pages

Contributing

See CONTRIBUTING.md for development setup and contribution guidelines.


Sponsor

If you'd like to support my work, please consider sponsoring me!

GitHub Sponsors – bmf-san

Or simply giving ⭐ on GitHub is greatly appreciated—it keeps me motivated to maintain and improve the project! :D


License

MIT

About

A simple, fast static site generator written in Go with differential builds

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors