Skip to main content

Django-based Page CMS and CMS building toolkit.

Project description

https://travis-ci.org/feincms/feincms.svg?branch=next https://travis-ci.org/feincms/feincms.svg?branch=master

When was the last time, that a pre-built software package you wanted to use got many things right, but in the end, you still needed to modify the core parts of the code just because it wasn’t (easily) possible to customize the way, a certain part of the system behaved?

Django came to rescue all of us, who were not happy with either doing everything on our own or customizing another software package until it was impossible to update.

The biggest strength of a framework-like design is, that it tries not to have a too strong view of what the user should do. It should make some things easy, but just GET OUT OF THE WAY most of the time.

Just after discovering the benefits of a framework-like approach to software design, we fall back into the rewrite everything all the time mindset and build a CMS which has very strong views how content should be structured. One rich text area, a media library and some templates, and we have a simple CMS which will be good enough for many pages. But what if we want more? If we want to be able to add custom content? What if the user can’t be trusted to resize images before uploading them? What if you’d like to add a gallery somewhere in between other content? What if the user should be able to administer not only the main content, but also a sidebar, the footer?

With FeinCMS, this does not sound too good to be true anymore. And it’s not even complicated.

FeinCMS is an extremely stupid content management system. It knows nothing about content – just enough to create an admin interface for your own page content types. It lets you reorder page content blocks using a drag-drop interface, and you can add as many content blocks to a region (f.e. the sidebar, the main content region or something else which I haven’t thought of yet). It provides helper functions, which provide ordered lists of page content blocks. That’s all.

Adding your own content types is extremely easy. Do you like markdown that much, that you’d rather die than using a rich text editor? Then add the following code to your project, and you can go on using the CMS without being forced to use whatever the developers deemed best:

from markdown2 import markdown
from feincms.module.page.models import Page
from django.db import models

class MarkdownPageContent(models.Model):
    content = models.TextField()

    class Meta:
        abstract = True

    def render(self, **kwargs):
        return markdown(self.content)

Page.create_content_type(MarkdownPageContent)

That’s it. Not even ten code lines for your own page content type.

Getting started

Visit these sites

Repository branches

The FeinCMS repository on github has several branches. Their purpose and rewinding policies are described below.

  • maint: Maintenance branch for the second-newest version of FeinCMS.

  • master: Stable version of FeinCMS.

master and maint are never rebased or rewound.

  • next: Upcoming version of FeinCMS. This branch is rarely rebased if ever, but this might happen. A note will be sent to the official mailing list whenever next has been rebased.

  • pu or feature branches are used for short-lived projects. These branches aren’t guaranteed to stay around and are not meant to be deployed into production environments.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

FeinCMS-1.14.0.tar.gz (333.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

FeinCMS-1.14.0-py2.py3-none-any.whl (450.0 kB view details)

Uploaded Python 2Python 3

File details

Details for the file FeinCMS-1.14.0.tar.gz.

File metadata

  • Download URL: FeinCMS-1.14.0.tar.gz
  • Upload date:
  • Size: 333.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.2.1 requests/2.18.4 setuptools/38.5.1 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.5

File hashes

Hashes for FeinCMS-1.14.0.tar.gz
Algorithm Hash digest
SHA256 21bac256b4e2cf6ca1f416b3975c6b3e37caa94e24c28701acebf64a539a80e6
MD5 2cda8c6d862e76bd77ab7e278b97a1d6
BLAKE2b-256 eca611247f801105fb30900011c61c6543c472c9fb0ae3cbba4c7d4c4e9a08ae

See more details on using hashes here.

File details

Details for the file FeinCMS-1.14.0-py2.py3-none-any.whl.

File metadata

  • Download URL: FeinCMS-1.14.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 450.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.10.0 pkginfo/1.2.1 requests/2.18.4 setuptools/38.5.1 requests-toolbelt/0.8.0 tqdm/4.19.5 CPython/3.6.5

File hashes

Hashes for FeinCMS-1.14.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7b1f5c6951df18d6f5d0642c1668a0afa0c64143592592b2be1dfea622256bb8
MD5 b34b7ce59d45874742a75ca304f317da
BLAKE2b-256 4b255ec6f26cefcf3532c80733acd5be1b6b8b99c20f1fb05b02ca690cd205ca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page