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):
- 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!
- As a web application development environment. Create a Python package, write a few custom components, and combine with no. 1, above.
- 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.
- 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!