Bakesite :pie:
A refreshingly simple static site generator.
Write in Markdown, get HTML out.
Installation
Install Bakesite using pip:
pip install bakesite
Getting Started
To create a new site, run the following command:
bakesite init
This will create a couple of files, including the content directory and the bakesite.yaml file necessary for building the site.
To bake the site and view it locally, run
bakesite serve --bake
This will generate the static files and start a local server.
Then visit http://localhost:8200
bakesite.yaml Configuration
Configure your site by editing the bakesite.yaml file in your project root:
# Base path for the site (leave empty for root directory)
base_path: ""
# Site metadata
subtitle: "My Awesome Website"
author: "John Doe"
site_url: "https://example.com"
# Social links
github_url: "https://github.com/yourusername"
linkedin_url: "https://www.linkedin.com/in/yourprofile"
# Analytics
gtag_id: "G-XXXXXXXXXX"
# Custom domain (optional)
cname: "yourcustomdomain.com"
Front Matter
Add metadata to your markdown files using YAML front matter at the top of each file:
---
title: My First Blog Post
author: Jane Doe
render: true
---
Your content goes here...
Available Front Matter Fields
title: The title of your post or pageauthor: Override the default author for this specific postrender: Set totrueto enable Jinja2 template rendering within your markdown content, allowing you to use template variables and parameters- Any custom fields you define will be available in your templates
Example with Template Rendering
When render: true is set, you can use template variables in your markdown:
---
title: About {{ author }}
render: true
---
Welcome to {{ site_url }}! This site was built in {{ current_year }}.
Motivation
While I have used Jekyll, Pelican and Hugo for different iterations of my personal blog, I always felt the solution to the simple problem of static site building was over-engineered.
If you look into the code bases of these projects, understanding, altering or contributing back is a daunting task.
Why did it have to be so complicated? And how hard could it be to build?
In addition, I wanted a workflow for publishing posts from my Obsidian notes to be simple and fast.
Acknowledgements
Thanks to a previous project by Sunaina Pai, Makesite, for providing the foundations of this project.
Philosophy
Make the easy things simple, and the hard things possible.
This site was built to last.
A Heads Up
If you are looking for a site generator with reactive html elements, this project is most likely not for you.
Metadata
Release files for bakesite 0.7.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| bakesite-0.7.2.tar.gz | 9.4 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bakesite-0.7.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 25.0 kB
Release files / bakesite-0.7.2.tar.gz
| Download URL | bakesite-0.7.2.tar.gz |
|---|---|
| Size | 9.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59ec8d5e63a5d9d5ae16e0024782d287817619b2c6b0d5cc8d019a276c93b2f5
|
|
BLAKE2b-256 checksum How to use checksums |
324650cf10026b04c586eb6dad83f4798b3f565e3d8f2c26a1f709912352172b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / bakesite-0.7.2-py3-none-any.whl
| Download URL | bakesite-0.7.2-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
23f29432b7d441aa0fa2a64529d272c89e95b71fa8f3e39fbff665de70a7adc3
|
|
BLAKE2b-256 checksum How to use checksums |
605283a82f48508d3e653effd4f504e2ba1151343045a0492c5e64db2f44239e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Security for bakesite 0.7.2
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.