WebCore

A lightweight and extremely fast Python web framework.

Contentment, the WebCore Content Management System

Please Note: This page is under development, as is the CMS itself. This is a hidden, private section of the WebCore website until Contentment reaches a point at which it can be released. For development, see GitHub and #webcore on irc.freenode.net.

Contentment, abbreviated c9t, is a content management system developed for and using WebCore to meet the needs of small to medium-sized businesses needing big-business tools. Contentment powers the WebCore website and soon, several others.

Rich Content Types Page, Folder, Event, File, and far more included in the core package.
Integrated Search Everything on the site is indexed for fast and efficient search, including PDFs.
Extensible API A clean API to customize and extend content types, page rendering, file types and file back-end storage.
Powerful Application Development You can combine Contentment with an existing WebCore application or base your application entirely on Contentment to make use of its many features and time-saving developer tools. Using Contentment alone, all you need is an .ini file.
Flexible Themes The WebCore website demonstrates the default theme, but developing your own is as easy as creating any other content type.
Access Control Lists Extensive security is provided through the use of ACLs and the ACL predicate system.
Full Text Search Using the Okapi BM25 algorithm, Contentment enables extremely rapid and powerful searching of content, including indexing of uploaded documents such as PDFs.

Contentment Development/Deployment Patterns

Contentment can be utilized in one of four ways (the last two being very similar to one another):

  1. As a standalone content management system. This is by far the easiest way to get going. Install Contentment and create a Paste INI file that “uses” WebCore, and reference Contentment’s Asset controller as the application root controller. Your entire site, managed, and configured by a single file. You can also install other Contentment components and make use of them—just remember to restart your application after installation of new components!
  2. As a web application development environment. Create a Python package, write a few custom components, and combine with no. 1, above.
  3. Alongside a custom WebCore application. You can attach Contentment’s Asset controller as a property of your own controllers to enable management of a section of your custom application.
  4. As a custom WebCore application. Instead of “mounting” Contentment as a subsection of your custom application, have your root controller descend from the Asset controller; now the entire site is managed except the parts you custom code. You can also do things like add custom Contentment views and actions!