{"id":16533551,"url":"https://github.com/af/turrentine","last_synced_at":"2026-05-08T22:05:57.029Z","repository":{"id":137143964,"uuid":"2613874","full_name":"af/turrentine","owner":"af","description":"A very simple CMS for django with a different take on WYSIWYG editing. See the README for more details.","archived":false,"fork":false,"pushed_at":"2012-01-02T23:34:32.000Z","size":130,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-10-18T07:05:12.497Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/af.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-10-20T15:04:15.000Z","updated_at":"2013-12-17T09:04:54.000Z","dependencies_parsed_at":"2023-03-26T16:05:46.614Z","dependency_job_id":null,"html_url":"https://github.com/af/turrentine","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/af%2Fturrentine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/af%2Fturrentine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/af%2Fturrentine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/af%2Fturrentine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/af","download_url":"https://codeload.github.com/af/turrentine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241672255,"owners_count":20000748,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-11T18:15:11.607Z","updated_at":"2026-05-08T22:05:56.986Z","avatar_url":"https://github.com/af.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"==========\nTurrentine\n==========\n\nTurrentine is a simple content management app for Django (1.3 and later). It's\ndesigned to allow HTML-savvy users to add and edit pages and files with a minimum of\nhassle.\n\nFeatures\n--------\n\n* Live previews while editing pages in the admin (this uses javascript and\n  CSS3, so a modern browser is highly recommended).\n* Very basic file uploads in the admin.\n* Optional version tracking for pages, if you install ``django-reversion``.\n* No hard dependencies.\n* Easy on the database. A user viewing a CMS page should never generate more\n  than one or two simple database queries.\n\nThings Turrentine does **not** do:\n----------------------------------\n\n* Tree-like page hierarchies. Like flatpages, with turrentine you just specify\n  the page's URL directly.\n* WYSIWYG editing. It's assumed that page authors know some basic HTML.\n* Auto-generated menus.\n* Template editing in the admin.\n* Multi-site support.\n* Commenting on pages.\n* Internationalization (although this might be worth adding later).\n\nConsider Turrentine if...\n-------------------------\n\n* You don't need any of the stuff in the previous section.\n* You have page authors who are comfortable writing HTML, but you don't want\n  them to have to write (or even think about) django templates. You have\n  developers/designers that will develop your templates for CMS pages.\n* You want a simple CMS app that is easy to configure, and for the most part\n  just gets out of your way.\n\n\nSetup\n=====\n\n#. Install turrentine. Pip is recommended and can be used as follows::\n\n    pip install -e git://github.com/af/turrentine.git#egg=turrentine\n\n#. Add 'turrentine' to your installed apps in settings.py::\n\n    INSTALLED_APPS = (\n        # Your other apps here\n        'turrentine',\n    )\n\n#. Add turrentine at the **end** of your root urlconf::\n\n    urlpatterns = patterns('',\n        # Your other urls go here\n\n        (r'^', include('turrentine.urls')),     # Make sure this is the last entry\n    )\n\n#. If you haven't already, you probably also want to enable django's dev static\n   file serving in your `urls.py`. This will ensure that turrentine's admin css/js will work\n   while in development::\n\n        from django.contrib.staticfiles.urls import staticfiles_urlpatterns\n\n        # ... the rest of your URLconf here ...\n\n        urlpatterns += staticfiles_urlpatterns()\n\n        # Again, make sure turrentine comes last, even after the staticfiles_urlpatterns:\n        urlpatterns += patterns('',\n            (r'^', include('turrentine.urls')),\n        )\n\n   More info and background on this can be found at\n   https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/#staticfiles-development-view\n\n#. Run ``python manage.py syncdb`` to add turrentine's tables to your database.\n\n#. Back in settings.py, define ``TURRENTINE_TEMPLATE_ROOT`` and ``TURRENTINE_TEMPLATE_SUBDIR``.\n   The former is the directory on your filesystem where you keep most of your templates\n   (generally this is $PROJECT_ROOT/templates). The latter is the subdirectory where you\n   want to put templates that the cms can use.\n   The following will probably work for your project::\n\n    import os.path\n    PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))\n    TURRENTINE_TEMPLATE_ROOT = os.path.join(PROJECT_ROOT, 'templates')\n    TURRENTINE_TEMPLATE_SUBDIR = os.path.join(TURRENTINE_TEMPLATE_ROOT, 'cms')\n\n#. Create a directory for your CMS templates, corresponding to the setting you\n   made in the previous step::\n\n    mkdir -p templates/cms\n\n#. Create template(s) in the ``TURRENTINE_TEMPLATE_SUBDIR`` directory, so they can be\n   used by your pages. You'll probably want to use the following template variables\n   (which are hopefully self-explanatory):\n\n    - ``{{ page.title }}``\n    - ``{{ page.content }}``\n    - ``{{ page.meta_description }}``\n    - ``{{ page.meta_keywords }}``\n\n\nAdding Support for Versioned Content\n------------------------------------\n\nOut of the box, turrentine doesn't track revisions of your content. However, if\nyou'd like to enable version tracking, install the very nice `django-reversion\n\u003chttps://github.com/etianen/django-reversion\u003e`_ app. Once ``django-reversion`` is `installed and\nconfigured \u003chttps://github.com/etianen/django-reversion/wiki\u003e`_, you'll be able to access\nprevious versions of Turrentine CMS pages in the admin (using the \"History\" link in the\ntop right corner).\n\n\nThe Name\n---------\n\nIn fine django tradition, turrentine is named after a jazz musician, the late\ngreat tenor saxophonist Stanley Turrentine. Nicknamed \"The Sugar Man\",\nTurrentine was famous for his bluesy feel and big sound. Check out his album\n\"Hustlin'\", and his classic recordings with organist Jimmy Smith.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faf%2Fturrentine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faf%2Fturrentine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faf%2Fturrentine/lists"}