FeinCMS


NameFeinCMS JSON
Version 24.4.1 PyPI version JSON
download
home_pagehttp://github.com/feincms/feincms/
SummaryDjango-based Page CMS and CMS building toolkit.
upload_time2024-04-16 08:18:05
maintainerNone
docs_urlhttps://pythonhosted.org/FeinCMS/
authorMatthias Kestenholz
requires_python>=3.6
licenseBSD-3-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ========================================
FeinCMS - An extensible Django-based CMS
========================================

.. image:: https://github.com/feincms/feincms/workflows/Tests/badge.svg
    :target: https://github.com/feincms/feincms

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:

.. code-block:: python

    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
-----------------

* FeinCMS Website: http://www.feincms.org/
* Read the documentation: https://feincms-django-cms.readthedocs.io/
* See the Google Groups page at http://groups.google.com/group/django-feincms
* FeinCMS on github: https://github.com/feincms/feincms/

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.
* ``main``: Stable version of FeinCMS.

``main`` 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.

            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/feincms/feincms/",
    "name": "FeinCMS",
    "maintainer": null,
    "docs_url": "https://pythonhosted.org/FeinCMS/",
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Matthias Kestenholz",
    "author_email": "mk@feinheit.ch",
    "download_url": "https://files.pythonhosted.org/packages/ed/48/0ad0cefc6b5065fb1b59250dbfbe1285cffbe2b7e77e95a01d8881b83de2/feincms-24.4.1.tar.gz",
    "platform": "OS Independent",
    "description": "========================================\nFeinCMS - An extensible Django-based CMS\n========================================\n\n.. image:: https://github.com/feincms/feincms/workflows/Tests/badge.svg\n    :target: https://github.com/feincms/feincms\n\nWhen was the last time, that a pre-built software package you wanted to\nuse got many things right, but in the end, you still needed to modify\nthe core parts of the code just because it wasn't (easily) possible to\ncustomize the way, a certain part of the system behaved?\n\nDjango came to rescue all of us, who were not happy with either doing\neverything on our own or customizing another software package until it\nwas impossible to update.\n\nThe biggest strength of a framework-like design is, that it tries not\nto have a too strong view of what the user should do. It should make some\nthings easy, but just GET OUT OF THE WAY most of the time.\n\nJust after discovering the benefits of a framework-like approach to\nsoftware design, we fall back into the rewrite everything all the time\nmindset and build a CMS which has very strong views how content should\nbe structured. One rich text area, a media library and some templates,\nand we have a simple CMS which will be good enough for many pages. But\nwhat if we want more? If we want to be able to add custom content? What\nif the user can't be trusted to resize images before uploading them?\nWhat if you'd like to add a gallery somewhere in between other content?\nWhat if the user should be able to administer not only the main content,\nbut also a sidebar, the footer?\n\nWith FeinCMS, this does not sound too good to be true anymore. And it's\nnot even complicated.\n\n\nFeinCMS is an extremely stupid content management system. It knows\nnothing about content -- just enough to create an admin interface for\nyour own page content types. It lets you reorder page content blocks\nusing a drag-drop interface, and you can add as many content blocks\nto a region (f.e. the sidebar, the main content region or something\nelse which I haven't thought of yet). It provides helper functions,\nwhich provide ordered lists of page content blocks. That's all.\n\n\nAdding your own content types is extremely easy. Do you like markdown\nthat much, that you'd rather die than using a rich text editor?\nThen add the following code to your project, and you can go on using the\nCMS without being forced to use whatever the developers deemed best:\n\n.. code-block:: python\n\n    from markdown2 import markdown\n    from feincms.module.page.models import Page\n    from django.db import models\n\n    class MarkdownPageContent(models.Model):\n        content = models.TextField()\n\n        class Meta:\n            abstract = True\n\n        def render(self, **kwargs):\n            return markdown(self.content)\n\n    Page.create_content_type(MarkdownPageContent)\n\n\nThat's it. Not even ten code lines for your own page content type.\n\n\n\nGetting started\n===============\n\nVisit these sites\n-----------------\n\n* FeinCMS Website: http://www.feincms.org/\n* Read the documentation: https://feincms-django-cms.readthedocs.io/\n* See the Google Groups page at http://groups.google.com/group/django-feincms\n* FeinCMS on github: https://github.com/feincms/feincms/\n\nRepository branches\n-------------------\n\nThe FeinCMS repository on github has several branches. Their purpose and\nrewinding policies are described below.\n\n* ``maint``: Maintenance branch for the second-newest version of FeinCMS.\n* ``main``: Stable version of FeinCMS.\n\n``main`` and ``maint`` are never rebased or rewound.\n\n* ``next``: Upcoming version of FeinCMS. This branch is rarely rebased\n  if ever, but this might happen. A note will be sent to the official\n  mailing list whenever ``next`` has been rebased.\n* ``pu`` or feature branches are used for short-lived projects. These\n  branches aren't guaranteed to stay around and are not meant to be\n  deployed into production environments.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Django-based Page CMS and CMS building toolkit.",
    "version": "24.4.1",
    "project_urls": {
        "Homepage": "http://github.com/feincms/feincms/"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6056a33765ea1ed5497cfc1ac13007099039a9d9ca5a6cc21aec4c9cb5d7af7d",
                "md5": "2ca5ca302d46956b91bf370a1fcb21f8",
                "sha256": "4cd4c5ab49a1572dc170c8dad0902ffda5bc1a6fdade0eda9da38f4ceacc05b3"
            },
            "downloads": -1,
            "filename": "FeinCMS-24.4.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2ca5ca302d46956b91bf370a1fcb21f8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 443356,
            "upload_time": "2024-04-16T08:18:08",
            "upload_time_iso_8601": "2024-04-16T08:18:08.639467Z",
            "url": "https://files.pythonhosted.org/packages/60/56/a33765ea1ed5497cfc1ac13007099039a9d9ca5a6cc21aec4c9cb5d7af7d/FeinCMS-24.4.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "ed480ad0cefc6b5065fb1b59250dbfbe1285cffbe2b7e77e95a01d8881b83de2",
                "md5": "c3d8819a318269d5ca7f05087e37a0f5",
                "sha256": "d38a0455206725a7c5beec1ce22810d63ea0e8a5610a0445c3853e242070f292"
            },
            "downloads": -1,
            "filename": "feincms-24.4.1.tar.gz",
            "has_sig": false,
            "md5_digest": "c3d8819a318269d5ca7f05087e37a0f5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 342131,
            "upload_time": "2024-04-16T08:18:05",
            "upload_time_iso_8601": "2024-04-16T08:18:05.478096Z",
            "url": "https://files.pythonhosted.org/packages/ed/48/0ad0cefc6b5065fb1b59250dbfbe1285cffbe2b7e77e95a01d8881b83de2/feincms-24.4.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-16 08:18:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "feincms",
    "github_project": "feincms",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "feincms"
}
        
Elapsed time: 0.27568s