Static site generator
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Cosmin Humeniuc 9d3a7f1f98
Add Makefile to build and install in one step
2 months ago
src Ignore Emacs lock files 2 months ago
.gitignore Ignore .pyc files 3 months ago
LICENSE Add license (GPL v3) 11 months ago
Makefile Add Makefile to build and install in one step 2 months ago
README.md Add Makefile to build and install in one step 2 months ago
build.py Initial version 11 months ago
pyproject.toml Initial version 11 months ago
setup.py Initial version 11 months ago

README.md

Static Bee

Static Site Generator

Static Bee is a static site generator with no configuration, based on XML.

The structure of your site is a mirror of the structure of your sources.

The main idea is: layout + page = result.

For example, consider the following XHTML file as a layout...

<!DOCTYPE html>
<html xmlns:sb="https://cosmin.hume.ro/project/staticbee">
  <head>
    <title>
      <sb:title />
    </title>
  </head>
  <body>
    <sb:content />
  </body>
</html>

... and the following XML file as a page.

<?xml version='1.0' encoding='utf8'?>
<sb:page xmlns:sb="https://cosmin.hume.ro/project/staticbee">
  <sb:title>Example page</sb:title>
  <sb:content>
    <h1>Hello, world!</h1>
    <p>This is some content</p>
  </sb:content>
</sb:page>

Static Bee combines these two together and produces a HTML page for your site:

<!DOCTYPE html>
<html>
  <head>
    <title>Example page</title>
  </head>
  <body>
    <h1>Hello, world!</h1>
    <p>This is some content</p>
  </body>
</html>

Development

To build Static Bee, you need Python 3 and PyBuilder.

In the project directory, run:

pyb clean publish

To install:

cd target/dist/staticbee-1.0.dev0/
python3 setup.py install --user

Then edit ~/.local/bin/staticbee and fix the shebang.

Or do all these steps at once by running make in the project directory.

Dependencies

Dependencies are managed by PyBuilder.

For development we use:

At runtime we need:

  • Pygments, for highlighting syntax in the content of your site