Thu, 07 Dec 2006
What is PyBlosxom?
- weblogging system written in Python
- minimal core engine of about 3500 lines of code
- blog posts are stored as individual files in a category oriented hierarchy of directories in a filesystem
- no database is required - anything that can produce text files can be your source of blog entries
- much of the functionality of pyblosxom is delivered via a plug-in architecture
[23:59] |
[] |
#-permalink-#
About PyBlosxom
Originally started as a Python clone of Blosxom but has since evolved
into a beast of its own. Pyblosxom focuses on three things:
- Simplicity - uses the file system for all of its data storage
- Extensibility - most of the functionality is derived from its plugin framework
- Community - several hundred PyBlosxom users who have different needs, and work in different computing environments
- Hackable - easy to write plug-ins and tweak functionality
PyBlosxom got its name and inspiration from Rael Dornfest's Blosxom, which is written in Perl. In fact, there are a number of other Blosxom like packages written in various languages. All of the members of this family of blogging packages share the filesystem model and a plugin architecture of some sort.
[23:58] |
[] |
#-permalink-#
URI Representation
http://www.sauria.com/blog/2005/03/09/a-post
You can also use the hierarchical categories to provide the path to a posting:
http://www.sauria.com/blog/computers/internet/weblogs/pyblosxom/a-post
On my blog, both of these URIs refer to the same weblog posting. You
can also look at groups of entries by removing information at the end
of the URI:
http://www.sauria.com/blog/
shows the root of my blog
http://www.sauria.com/blog/2005/03/09/
shows all posts dated on the 9th of March in 2005
http://www.sauria.com/blog/2005/03/
shows all posts in March in 2005
http://www.sauria.com/blog/2005/
shows all posts in 2005
http://www.sauria.com/blog/computers/internet/weblogs/pyblosxom/
shows all posts in the computers/internet/weblogs/pyblosxom category
http://www.sauria.com/blog/computers/internet/
shows all posts in the computers/internet category
[23:57] |
[] |
#-permalink-#
Flavours
A flavour can be thought of as a theme or a type of output.
Another characteristic of Blosxom derived systems is the use of
flavours. By appending a ?flav=<label> to the end of any PyBlosxom URI,
you can specify what output format (aka flavour) you would like. The
weblog world is full of potential output formats: HTML, XHTML, RSS
(several different varieties), Atom, etc. The flavour system allows a
PyBlosxom user to define a new flavour in order to produce output in
one or more of these formats. Additionally, flavours can be
theme-oriented: sunshine, rainy-day, purple-pie-man, etc.
A flavour consists of a series of templates which are assembled to form
the completed output. Using this template system allows PyBlosxom
users to use flavour templates built by users of other *osxom systems
with only a few modifications.
[23:56] |
[] |
#-permalink-#
Plugins
The plugin system allows users to add functionality beyond what comes
with PyBlosxom by default. PyBlosxom plugins have access to the
information that the core engine has. They can read and introduce
variables that appear in PyBlosxom templates, they can inject new
entries into the rendering pipeline, they can render output, and they
can even work with the HTTP headers that accompanied the request for a
weblog page.
Here some examples of functionality that is provided via plugins:
- archives - create an access to archives, one link per month
- calendar nav - use a calendar as a way to navigate through archives
- xmlrpc - metaweblog - implement the Metaweblog XML-RPC API to allow
fancy posting/editing UI
- http 304 handling - implement conditional HTTP handling to save bandwidth
- autoping - ping all referenced urls that have trackback or pingback URI's
- logging - log HTTP information to a file
- lucene - use Lucene to provide full text search
- handle text formatting of blog posts formatted using text+html,
textile, or ReST
[23:55] |
[] |
#-permalink-#
Limitations
PyBlosxom is a small project. As such, we have no customer support hotline, our documentation will be eternally half-done, and it's likely you will run into problems eventually unless you want a bare-bones blog.
PyBlosxom is a CGI program at its heart. While there have been changes to make it work with WSGI and mod_python and other web-servers, it's still architected as a CGI program. Using it in other ways may cause headaches.
If this sort of thing infuriates you, we don't think you should use PyBlosxom.
PyBlosxom is not all things to all people. We have a framework that allows for plugins to be built, but if you're not into building plugins, then it's possible that PyBlosxom may not fit your needs.
[23:54] |
[] |
#-permalink-#