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
  • Markdown + Front Matter — GitHub Flavored Markdown with YAML metadata
  • 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
  • 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. 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

User Guide

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 Documentation

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

Design

For architecture and design decisions see docs/DESIGN_DOC.md.


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