wok is a static website generator. It turns a pile of templates, content, and resources (like CSS and images) into a neat stack of plain html.
The idea is that you don't need a big PHP engine generating every page every visit: you can generate them all ahead of time, and only regenerate things when something has changed. A good way this could be done would be with a post-commit hook on a git repository containing your content or layout.
Note that wok is alpha-grade software at this point. It is under active development, and its features are still in flux and there are bugs. If you still want to use it, the recommended way to install wok is from the the Python Package Index with this command.
sudo pip install wok
Alternative, if you want to hack on wok or just need the latest code, you can run from git head, and if you want to you can install to your system directories with this command.
sudo python2 setup.py install
To run wok, go to the directory where your site files are located, and run wok. For now, no output will be given unless something goes wrong. If it returns without error, you should have a shiny new output folder containg some html, and your media that represents your shiny new site.
wok pulls the pieces of your site from three places. For each of these places, you can modify the path wok looks for them in the config file.
Pulled from a directory named
content by default. Content is written in a
mark up language, or as plain text, with an optional YAML header section. The
directory structure of the file mean nothing to wok. It builds the structure
of the site based on the titles and the category meta data.
templates by default. wok uses Jinja2 templates, with
various variables exposed to build pages. This is a very flexible templating
environment, with control flow, filters and other ways to slice and dice the
data that wok gives you.
Settings can be changed in the file
config in the current directory.
Possible configuration options (and their defaults) are
- output_dir ('output') - Where the outputted files are put.
- content_dir ('content') - Where to find the content.
- templates_dir ('templates') - Where the templates are.
- media_dir ('media') - Where the media files are copied from.
- site_title ('Some Random wok Site') - Available to templates as `site.title.