Skip to main content
Help us improve Python packaging – donate today!

Soho lets you build a web site from a set of reStructuredText source files (the content) and a template file (the layout).

Project Description

Soho lets you build a web site from a set of reStructuredText source files (the content) and a template file (the layout).

Why do I need this

Soho comes from a simple need that I have: I need to easily build static (or mostly static) web sites. There are lots of ways this can be done, but I want:

  • to use a template: I want the content to be separated from the appearance. I also want to have an homogeneous site, with an unique layout. I use and like TAL (a.k.a. ZPT, Zope Page Template) a lot, so this seems to be a good choice. To me, at least. ;)
  • to avoid writing HTML. reStructuredText is great. It lets you easily write any text in a readable fashion and can be processed to produce files in HTML, LaTeX and other formats. Moreover, this format is used to document a lot of Python code (Python itself but also Python programs and libraries). I hence use it for my own code, and can therefore re-use the documentation to produce a web site, without changing anything;
  • a static web site that can be served by a standard web server (Apache, Lighttpd, Nginx, etc.) or even without any web server.

Typical scenario

In a nutshell, here is the process:

  1. I write the content of my website as reStructuredText files in multiple folders and sub-folders if needed.
  2. I write a template in TAL.
  3. I run Soho, with specific options if needed. For example, I can set a list of filters that will be run on each file before or after the reStructuredText->HTML conversion.
  4. I configure Apache or any other web server to serve my HTML files or write them on a CD-ROM, or send them to my low-price hosting provider.


You need the following programs and libraries to run Soho:

See also

If Soho does not fit your need, you may want to try out rest2web or Sphinx.


If you have easy_install, then the following should do the trick:

$ easy_install soho

For further details, see the Installation chapter.

Subversion repository

Soho source code lives in a Subversion repository. To checkout the trunk:

$ svn co

You can also browse the sources with the same URL.


Soho has been written by Damien Baty. The very first version was based on grok2html, a small utility that was used to generate the first version of the web site of Grok.


Soho is copyright 2008 by Damien Baty.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see the section about licenses of the GNU web site.

Release history Release notifications

History Node


This version
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
soho-0.7.tar.gz (66.4 kB) Copy SHA256 hash SHA256 Source None Aug 17, 2012

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