Skip to main content
Help us improve PyPI by participating in user testing. All experience levels needed!

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:



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.


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

Release history Release notifications

This version
History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
thot-1.1.0-py2.7.egg (76.8 kB) Copy SHA256 hash SHA256 Egg 2.7 Mar 6, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page