Overview

An overview of how to create a site with Beemo.

Posts

If you want to have a blog, create a posts directory and populate it 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 may contain images in an images directory, used within your post.

Pages

If you want to have pages, create a pages directory and populate it with your pages. Each page must be in its own directory. Page directories must contain a meta.yml and a content file (index.html, index.md or index.rst), and may contain images in an images directory, used within your page.

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, and Templates for the full list of templates and their variables.

Configuration

Configure your site by creating a config file (e.g. config.yml) and setting the appropriate settings. See Configuration for the full list of settings and their descriptions.

Build

Install Beemo:

pip install beemo

Build your site by running beemo build. Either set the BEEMO_CONFIG environment variable to point at a config file, or pass the build settings directly as command-line options — see beemo build for the full list. The site will be written to your configured output_dir.

You can then serve the built site locally with e.g. python -m http.server -d www and view it at e.g. http://localhost:8000. Make changes to your content or templates and rebuild to see them reflected in the built site.

Deploy

Once you’re happy with your site, you can deploy it to your hosting provider. This will depend on your provider, but typically involves copying the contents of your output_dir to your hosting provider’s server, or building your site on the server and moving the built files to the appropriate location.