skip to navigation
skip to content

soho 0.7

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

Downloads ↓

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.

Note

If you do not know reStructuredText or TAL, do not run away. Well, not yet. ;) Take a look at 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, another program that can build a website from reStructuredText sources.

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 website 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.

 
File Type Py Version Uploaded on Size # downloads
soho-0.7-py2.4.egg (md5) Python Egg 2.4 2008-02-17 23KB 583
soho-0.7-py2.5.egg (md5) Python Egg 2.5 2008-02-17 23KB 602
soho-0.7.tar.gz (md5) Source 2009-03-17 64KB 454