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).
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:
- I write the content of my website as reStructuredText files in multiple folders and sub-folders if needed.
- I write a template in TAL.
- 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.
- 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:
- Noherring.com code warehouse (this very site);
- Bosnie-Herzégovine et Croatie : notes de voyage (trip notes, in French).
Requirements
You need the following programs and libraries to run Soho:
- Python 2.4 or higher;
- Docutils 0.5 or higher. Prior versions might work, too;
- zope.pagetemplate 3.4 or higher. Prior versions might work, too.
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 | |
- Author: Damien Baty
- Home Page: http://code.noherring.com/soho
- Download URL: http://cheeseshop.python.org/pypi/soho
- Keywords: rest zpt website generator template
- License: GNU GPL
-
Categories
- Development Status :: 4 - Beta
- Intended Audience :: Developers
- Intended Audience :: End Users/Desktop
- License :: OSI Approved :: GNU General Public License (GPL)
- Operating System :: OS Independent
- Programming Language :: Python
- Topic :: Documentation
- Topic :: Internet :: WWW/HTTP
- Topic :: Text Processing :: Markup :: HTML
- Package Index Owner: dbaty
- DOAP record: soho-0.7.xml
