Skip to main content

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 page
  • author: Override the default author for this specific post
  • render: Set to true to 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)

Source distribution for bakesite 0.7.2
File Size Uploaded Provenance
bakesite-0.7.2.tar.gz 9.4 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for bakesite 0.7.2
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page