This release is a pre-release and may not be stable for production use.
pycobello
A blazing fast, dependency-light static site generator (SSG) for Python 3.12+.
- Markdown + YAML front matter → HTML
- Jinja2 themes (
.htmltemplates) - CLI-first (Typer):
init,new,build,preview,check,deploy - Incremental builds with a JSON cache and write-avoidance by content hash
- Preview server via stdlib
http.server; optional--watchwith[watch]extra - Diagnostics (
check): duplicate URLs, required front matter, internal links - Plugin system via Python entry points (
pycobello.plugins)
Install
uv add pycobello
# or
pip install pycobello
Optional watch support (live rebuild on file changes):
uv add "pycobello[watch]"
Quick start
# Create a new site
pycobello init
# Build
pycobello build
# Serve the built site
pycobello preview
Commands
| Command | Description |
|---|---|
pycobello init [DIR] |
Create scaffold: pycobello.yml, content, theme, static |
pycobello new post "Title" |
Create a new post (with date prefix) |
pycobello new page "Title" |
Create a new page |
pycobello build [--clean] |
Build site into dist/ (default: incremental) |
pycobello preview [--port 8000] [--watch] |
Serve dist/; optional watch + rebuild |
pycobello check |
Run diagnostics (URLs, front matter, links) |
pycobello deploy github-pages |
Generate GitHub Actions workflow for GitHub Pages |
Config
Config file: pycobello.yml in the project root (YAML only).
- site:
title,base_url,author - build:
content_dir,theme_dir,static_dir,output_dir,clean_urls,ignore - collections:
postsandpages(each:path,url_prefix,template) - plugins:
enabled(list of plugin names)
Theme contract
Templates live in theme/templates/. Required:
base.html– base layoutpage.html– pagespost.html– postsindex.html– index (blog listing)
Context: site, collections, current page or post. Helpers: url_for, filter datefmt.
Development
uv sync --all-groups
uv run pre-commit install
Linting (ruff check) and formatting (ruff format) run automatically before each commit. To run them manually: uv run ruff check ., uv run ruff format ., and uv run pytest.
License
Apache License 2.0. See LICENSE.
Release files for pycobello 0.1.1a0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pycobello-0.1.1a0.tar.gz | 15.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pycobello-0.1.1a0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 44.2 kB
Release files / pycobello-0.1.1a0.tar.gz
| Download URL | pycobello-0.1.1a0.tar.gz |
|---|---|
| Size | 15.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f983a62c532b9926414616c3a8c15a1f59750d6922f277b716c00ed1a0a529a1
|
|
BLAKE2b-256 checksum How to use checksums |
aee3171251b05cd337ba65094cd20d09c4c30311fbae31dabbe34643701686f2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / pycobello-0.1.1a0-py3-none-any.whl
| Download URL | pycobello-0.1.1a0-py3-none-any.whl |
|---|---|
| Size | 28.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3fe5842378a3edb5b10fff9ff27c65021e3ce80c624f2e059a1df1f44e8b0262
|
|
BLAKE2b-256 checksum How to use checksums |
36a3dc2b3b7b56a7ae53d53c7b84689471c5c60d6e624c68a4b9c0d2f945bebc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|