Skip to main content

The Simplest Static Site Generator

Project description

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"
current_year: 2025

# 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bakesite-0.7.1.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bakesite-0.7.1-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

Details for the file bakesite-0.7.1.tar.gz.

File metadata

  • Download URL: bakesite-0.7.1.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using 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}

File hashes

Hashes for bakesite-0.7.1.tar.gz
Algorithm Hash digest
SHA256 e89dff86219f6cdcbed05322cd4ff698faa4f0b67e93fcfa289c3918203a60d1
MD5 4781a04d9e8365a4c41b567cac7165dc
BLAKE2b-256 a79f9a8f0b0aa6b469045e856613f58d469796340a1df1bc0939f5a8f48e3c68

See more details on using hashes here.

File details

Details for the file bakesite-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: bakesite-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 3
  • Uploaded using 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}

File hashes

Hashes for bakesite-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9d54cd8fe8812661204205c3de6d15fa83cb08a124d3415ff7239334b3454683
MD5 172a0be2d69a4c0eaf104523b8b14bdf
BLAKE2b-256 c81d9cead4d5b1a90d7057c44f634b2fabf9ee1b0d7834dcf831978e6d8f1a2e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page