Dashboard > Pylons Projects > Home > Blog, CMS, and Wiki software
  Pylons Projects Log In | Sign Up   View a printable version of the current page.  
  Blog, CMS, and Wiki software
Added by Mike Orr, last edited by Filip de Waard on Sep 08, 2008  (view change) show comment
Labels: 
(None)

There has been persistent interest in blog/CMS/wiki software for Pylons. Many of the parts exist already but nobody has put them together. This section describes what's needed, the pieces that are available, and (eventually) the products developed by the Pylons community. This will likely become several overlapping projects, so please migrate sections to child pages when they start getting pretty long.

The need

One product cannot meet everybody's needs, so we should offer a variety of cooperating products and suggestions on how to structure your own niche product. Even the words "blog", "CMS", and "wiki" mean different things to different people. Here is how we envision them.

Blog

Blogs have three distinguishing characteristics: a single author writes and approves each article, readers can post comments at the bottom of the article, and articles are organized mainly by date. "Approval" is a key phrase: the author needs to save unfinished drafts but not publish them until they're ready. Blogs may consist of mainly short articles (e.g., 3 paragraphs), magazine-sized articles (4 printed pages), or scholarly papers (10 printed pages). Short blogs may be presented in a "running diary" format with several entries per page, while longer blogs must have a separate page per article, although the home page may contain a selection of abstracts or first paragraphs. In a full-featured blog, an article consists of:

  • markup text (in HTML or another source format)
  • title
  • date
  • author (if the site has multiple authors)
  • keywords for searching (and for a thematic TOC)
  • multimedia attachments
  • readers' comments
  • a permanent URL

This definition is intentionally broad, to cover not only diary-style blogs but also article-driven websites that may not look like a stereotypical blog. The latter often put each article in a hierarchy of folders, and may have multi-article series (part 1, part 2, etc).

CMS

CMS means "content management system", a workflow for producing articles. A typical magazine workflow looks like this:

  1. The author submits a proposal to the editor, who accepts it.
  2. The author writes the article over several sessions.
  3. The editor does a preliminary review, and returns it to the author if he finds problems.
  4. The technical reviewer looks for errors and things the reader wouldn't understand, and may return it to the author for revison.
  5. The copy editor corrects spelling and grammar and clarifies wording, or returns it to the author if it contains too many errors.
  6. A "reader representative" evaluates the release candidate.
  7. The editor approves and publishes the final work.

If the same person fulfills all these roles, a blog product as described above may be sufficient. But coordinating between multiple people requires more features in the software, in the same way collaborative software development requires a version control system. Multiple people also requires a permissions system to allow different people to access different modes of the software. Larger operations may also require these features:

  • Start time: the editor may wish the article to be automatically published at a certain time.
  • Stop time: the article may have an intrinsic expiration date, and should be automatically hidden after that time.
  • Versioning: the author may need to update the article over several sessions, without publishing intermediate drafts. (This can be useful in blogs too.)

Wiki

A wiki is characterized by reader-written articles, often collaboratively written.

Superwiki

There has been some interest in a full-featured wiki product, one that can replace Confluence for the Pylons documentation.

Existing pieces

Plone is a full-featured CMS written for Zope. It is not very Pylons-compatible due to its Zope dependencies, but it provides a behavioral and structural example that has been peer reviewed and well accepted. However, the recently-released Repoze allows it to run as a WSGI application, meaning it could be embedded into a larger Pylons website. This opens the door to some very interesting possibilities in the future. One criticism of Plone is its high learning curve: it has features that many users don't need, and you have to learn the features in order to work around them. Zope also offers a rich set of user-interface widgets, a fine-grained permission system, an object database, and search features, etc – which should be further explored for possible use or imitation in Pylons products.

QuickWiki provides a minimal wiki implementation. An advanced version for the Pylons Book is expected to contain a SQL database, advanced forms, and Javascript. However, QuickWiki's primary function is to be a Pylons tutorial, so it cannot fulfill all the goals above. However, pieces of the code may still be useful.

TurboGears has a wiki app that QuickWiki was modeled after. Django has an "interactive book", whatever that means. These might have useful features.

MoinMoin is a robust wiki written in Python. Pylonauts have had some success embedding MoinMoin in a Pylons application, but MoinMoin's features have not yet been modularized for individual use in a Pylons app.

TRAC is a software project management tool with integrated wiki, trouble-ticket, and Subversion browser components. It has recent support for WSGI but we're not sure if that code has been proven in production yet. TRAC's components seem to be less modular than MoinMoin's, meaning Pylons developers who want to use them individually may have to imitate them rather than using them, though this also requires further research to verify.

Pylons projects

nCMS is a Content Management System designed to be a scalable and user-friendly solution to managing websites, including large ones. The SQLAlchemy database schema is robust and supports multiple languages and article tags. However, the management screens and documentation are not there yet. Not actively developed at the moment, but might be picked up again in the future or provide inspiration for a fresh project.

Gazest is a Pylons based wiki system with a storage model inspired by distributed revision control systems like Git and Mercurial. Check out the demo site to test its features.

Pagoda is a TurboGears project which seems to have stalled though its developers say it's still active.

Site running on a free Atlassian Confluence Open Source Project License granted to Pylons. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.3.3 Build:#645 Feb 13, 2007) - Bug/feature request - Contact Administrators