pyssgA tiny-kernel, plugin-driven static site generator
Static site generator

pyssg

A tiny-kernel, plugin-driven static site generator

A static site generator built around a tiny kernel and a webpack-style plugin + lifecycle-hook architecture. The kernel knows nothing about Markdown, HTML or templates: every feature is a plugin that taps into lifecycle hooks.

This very site is generated by pyssg itself, using the built-in docs() preset.

Tiny, dependency-free kernel

The core is pure standard library. It only orchestrates a lifecycle and lets plugins do the work.

Everything is a plugin

Reading files, parsing frontmatter, rendering Markdown, templating, writing to disk - all plugins you can swap or extend.

One shared content model

Permalinks, collections, listings and navigation speak the same vocabulary, so templates only learn site, page, collections and menus.

Friendly presets

docs(), blog() and site() give you a working setup in one line; power users assemble plugins by hand.

A taste

# pyssg.config.py
from pyssg.config import Config
from pyssg_cli.presets import docs


def config() -> Config:
    return Config(src="content", out="public", plugins=docs())
pyssg build

That is the entire setup behind the site you are reading.

Where to next