Fork me on GitHub

Philo

Philo is a powerful content-management system built with Django.

Features

Philo allows the creation of complex site structures from Django’s web-based admin interface (or similar database-editing interface). For a simple site, you will use the following three objects, included in the Philo core.

  • Nodes are the basic building blocks of a website using Philo. They define the URL hierarchy and connect each URL to a View subclass instance, such as a Page.
  • Templates are Django templates, stored in the database and editable from the Django admin (or similar).
  • Pages are a simple view subclass which return a basic HTML page according to a template. They have related, editable Contentlets and Content References based on {% container %} tags used in the template.

Philo also provides a number of useful template tags, in particular {% container %}, which generates a relationship (and a field in the admin interface) on any pages which use that template.

A Simple Example

Put container tags in your template.
Edit the contentlets on the page.
See the results on your site!

You can use also collections, redirects, files, content references (all included in the Philo core), as well as the Philo contrib apps and your own code to create and manage more powerful, complex websites.

Batteries Included

Following Python and Django’s “batteries included” philosophy, Philo includes a number of optional packages that simplify common website structures. These are stored in philo.contrib and include the following:

  • Penfield Blog and newsletter management.
  • Shipherd Powerful site navigation.
  • Sobol Custom web and database searches.
  • Waldo Custom authentication systems.
  • (in development) Gilbert Alternative web-based admin.
  • (in development) Julian Calendar and events system.
  • (in development) Edmonia Asset management.
  • (in development) Bartleby Form generation and handling.
  • (planned) Forums.
  • (planned) Wikis.

Install Philo

git clone https://github.com/ithinksw/philo.git python philo/setup.py rm -rf philo