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:
- The author submits a proposal to the editor, who accepts it.
- The author writes the article over several sessions.
- The editor does a preliminary review, and returns it to the author if he finds problems.
- The technical reviewer looks for errors and things the reader wouldn't understand, and may return it to the author for revison.
- The copy editor corrects spelling and grammar and clarifies wording, or returns it to the author if it contains too many errors.
- A "reader representative" evaluates the release candidate.
- 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
Pylowiki is a wiki /cms built on pylons
http://bitbucket.org/russellballestrini/pylowiki
The Pylons book has a SimpleSite application with some wiki features.
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.
Argonaut is a lightweight blogging engine based on Pylons. Many basic features standard to blogs have been implemented in the current alpha version and many more are planned. Additional developers are welcome to join the project if interested.
Pylons projects
This thread mentions a couple TG2 & Python 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.
Comments (4)
Jul 07, 2009
Richard Austin says:
How much interest is there in a full-featured "superwiki"? As a user of Mediawik...How much interest is there in a full-featured "superwiki"? As a user of Mediawiki for several years, I have some ideas of features I'd like to see, and would be quite interested in helping with such a project. One of the main problems I have with existing projects, at least with using existing projects for a cluster of wikis, is that I feel that there's a lot of repetition and redundancy of basic components (eg. user information, image repositories, and their related pages) across multiple wikis. Just a thought, if anyone's interested...
Jul 08, 2009
Anonymous says:
I would also like to assist in the efforts stated on this page. I personally ha...I would also like to assist in the efforts stated on this page. I personally have the need for this type of framework, and I would love to see if build off of pylons.
Jan 29, 2010
John Nowlan says:
Just wanted to add link to http://zine.pocoo.org/ 'Zine is an Open Source perso...Just wanted to add link to http://zine.pocoo.org/
'Zine is an Open Source personal publishing platform written in Python. It's written with security and extensibility in mind and inherits many ideas of WordPress and other existing blogging systems.'
Seems like it covers the 'blog' requirement, and doesn't have much exposure. Just trying to get people to combine efforts if at all possible.
May 22, 2010
Foxhop says:
Pylowiki http://bitbucket.org/russellballestrini/pylowiki Pylowiki, an advance...Pylowiki
http://bitbucket.org/russellballestrini/pylowiki
Pylowiki, an advanced same page section edit and preview, wiki solution.
Currently users can search, browse, and view articles.
Users make edits using reStructured Text(reST) and save changes on the same page.
A preview of the page is shown in real-time and in place.
The name Pylowiki is a portmanteau of the words Pylons and wiki.
A demo of pylowiki exists at http://foxhop.net