Noherring.com code warehouse

Soho

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:

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.

Note

If you do not know reStructuredText or TAL, do not run away. Well, not yet. ;) Take a look at the tutorial first. You might see that it is quite easy to grasp and that you do not need to master all their inner mysteries to build a simple web site, hopefully.

If you do not like TAL and/or reStructuredText, it should be quite easy to hack Soho so that it uses another template engine and/or another format for its source files. I am not currently interested in developing a generic solution: this is left as an exercise to the reader.

Examples

An example is worth tons of explanation. Take a look at these:

Requirements

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.

Installation

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 https://svn.noherring.com/code/soho/trunk

You can also browse the sources with the same URL.

Credits

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.

License

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.