A Python-Powered Static Site Generator
Project description
With Thot you can write your sites, documentation or even your blog with your favourite text editor and then have everything rendered to static pages.
Thot understands Markdown, RST, Creole and Trac’s markup. You can still write everything as plaintext or HTML as well. For templating you can resort to Mako or Jinja2.
Still not what you’re looking for? You can replace almost everything by your own plugins. ;-)
Need an example? This is a blog powered by Thot: http://tsu.sarumindustries.de/2011/12/15-durchs-Lowsec-fliegen-oder-per-Blackops-Portal-springen.html
Usage
Quickstart
Run thot –quickstart mysite to have directory mysite created with a basic site skeleton. You will be asked a series of questions regarding author’s name and such by that script.
quickstart obeys the optional parameter -t <shortname>, with “shortname” being the shortname for a recognized templating engine. mako or jinja2 without any additional plugins.
Run the thot command to generate a site. The command looks for files with a .htm/.html, .xml, .rst and .md/.markdown extension and parses them. Directories and files that start with a dot or an underscore will be ignored. Everything else will be copied. The generated site will be available in the _output directory.
Basics
Place or edit your templates inside the templates directory of your site. You can assign a page template self (thus none) or any other by “template: “ keyword.
Every page consists of one header and one content section, in that order. It looks like this:
title: Hello World template: post.mak This is the content. Hello World!
The header is formatted in YAML. You can access it from within the content by variable page. With Mako by ${ page[‘title’] } or Jinja2 by {{ page.title }} for example.
Content can be anything, from plaintext over html to markup, which is determined by the file extension. Although the content will be subject to rendering by the templating engine of your choice, you are free to abstain from using it.
You can find your default timezone and other settings in _config.yml, which is parsed as YAML.
Thot can take advantage of…
LaTeX for math rendering. Needs dvipng and utf8x (Gentoo: dev-texlive/texlive-latexextra). Enables RST directives math for formulas (with optional attribute label) and eq for linking to labelled formulas.
Pyphen and Wordaxe for server-side hyphenation.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.