Skip to main content

A Python-based static site generator. Bring your own content and templates and it'll quickly generate you a deployable HTML website/blog.

Project description

beemo

A Python-based static site generator. Bring your own content and templates and it'll quickly generate you a deployable HTML website/blog.

PyPI

Features

  • Content as HTML, markdown or reStructuredText
  • Pages
  • Posts
  • Tags
  • Archives (index, years and months)
  • XML sitemap
  • Atom feed
  • Custom Chameleon templates
  • Custom CSS, JS and other static files

Usage

Create content directories e.g. posts, pages, static and templates.

Posts

Populate your posts directory with your blog posts. Each post must be in its own directory but can be organised in any hierarchy e.g. by year, year/month or just flat. Post directories must contain a meta.yml and a content file (index.html, index.md or index.rst), and can contain images in an images directory, used within your post.

Pages

Populate your pages directory with your pages. Each page must be in its own directory. Post directories must contain a meta.yml and a content file (index.html, index.md or index.rst).

Static

Any files in your static directory will be copied into the site build root. Keep your CSS files and such in this directory.

Templates

Create Chameleon templates for your site in the templates directory. See the Chameleon docs for reference.

Configuration

The Beemo config file is a YAML file specifying some basic config about your site build.

For example, here pages_dir and posts_dir are both specified, and the site will be built with both pages and blog posts:

posts_dir: content/posts
pages_dir: content/pages
static_dir: static
templates_dir: templates
blog_root: blog
output_dir: www

If pages_dir is not specified, the site will be built without pages (i.e. blog only mode), e.g:

posts_dir: posts
static_dir: static
templates_dir: templates
output_dir: www

If posts_dir is not specified, the site will be built without pages (i.e. pages only mode), e.g:

pages_dir: pages
static_dir: static
templates_dir: templates
output_dir: www

If posts_dir is specified, this comes with archives, tag indexes and such which cannot currently be disabled.

Environment variables

The only environment variable required is BEEMO_CONFIG which must point to your site's config file:

export BEEMO_CONFIG=config.yml

Install

Install the latest release with:

pip install beemo

Development

Create a virtual environment and run make develop to install the library and its dependencies.

This can be served locally with e.g. python -m http.server -d www and viewed at e.g. http://localhost:8000.

Build

Build your site by running the command beemo with the environment variable BEEMO_CONFIG set pointing at a valid config file. It will build your site into your configured output_dir.

Examples

Sites built with Beemo:

If you wish to use this project for your own website, these examples will be a useful reference.

Licence

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

beemo-0.3.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

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

beemo-0.3.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file beemo-0.3.1.tar.gz.

File metadata

  • Download URL: beemo-0.3.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for beemo-0.3.1.tar.gz
Algorithm Hash digest
SHA256 e4a828868582e10c1c96696398f57102f27b9612662d37c8f8a840c91eda068d
MD5 04005a0ead465f21425448ae2fbf4df3
BLAKE2b-256 bf7263a6917544f5f50a6cf569b1778e07c710f736d541e7630ccfb34a124e6e

See more details on using hashes here.

File details

Details for the file beemo-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: beemo-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.6

File hashes

Hashes for beemo-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 18150eb7ff38e55e877fc92ee1fb88c8c34eb084c87cffdf6ea0315d5e151184
MD5 9fd7131f7e67389fb7c6ae90af01dacd
BLAKE2b-256 6df9191cb3a1f7a9d642d956e994a174b5e1ad687f705c322d32c53b8ccc0908

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