IMPORTANT: This repository is no longer maintained
Python HTML Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
copywriting
docs
hooks
.bumpversion.cfg
.gitignore
.travis.yml
AUTHORS
CHANGELOG.txt
DESCRIPTION
LICENSE
MANIFEST.in
Makefile
README.rst
manage.py
requirements.txt
setup.cfg
setup.py
test_requirements.txt

README.rst

Django Copywriting

Django app for writing copy or blogposts. This repository is no longer maintained.

Features

  • Generic Author Model support
  • Articles
  • Automatically generated Feed
  • Tags / search by tags
  • Ping Google on publish
  • Workflow (Draft -> Review -> Ready to Publish -> Published)
  • Automatically register Articles for search if https://github.com/etianen/django-watson is installed
  • Get next/prev published article
  • Comments powered by https://disqus.com/

Installation

To get the latest stable release from PyPi

pip install django-copywriting (not pushed yet! use latest commit from GitHub)

To get the latest commit from GitHub

pip install -e git+git://github.com/arteria/django-copywriting.git#egg=copywriting

TODO: Describe further installation steps (edit / remove the examples below):

Add copywriting and its dependencies to your INSTALLED_APPS

INSTALLED_APPS = (
    ...,
    'copywriting',
    'transmeta',
    'arimagebucket',
    'filer',
    'mptt',
    'easy_thumbnails',
)

Add the copywriting URLs to your urls.py

urlpatterns = patterns('',
    ...
    url(r'^blog/', include('copywriting.urls')),
)

Before your tags/filters are available in your templates, load them by using

{% load blogtags %}

Don't forget to migrate your database

./manage.py migrate copywriting

Usage

Sitemaps

Add the following lines to your urls.py

from copywriting.sitemaps import BlogSitemap
sitemaps = {
    'blog': BlogSitemap,
}

# in patterns...

url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap', {'sitemaps': sitemaps}),

Make sure that 'django.contrib.sitemaps' is in your INSTALLED_APPS.

Comments

To use comments add a shortname and a context_processor to your settings:

DISQUS_SHORTNAME = 'example'

TEMPLATE_CONTEXT_PROCESSORS = (
        # ...
        'copywriting.context_processors.disqus_shortname',
        # ...
)

The comments will render where the div with the id="disqus_thread" is located:

<div id="disqus_thread"></div>

The comments are controlled with the comments_enabled boolean in the article entity.

Signals

You can catch a signal when a article changes to "ready to review" or "ready to publish". Here is an example:

from django.dispatch import receiver
from copywriting.signals import ready_to_review
from copywriting.signals import ready_to_publish

@receiver(ready_to_publish)
def notify_publisher(sender, **kwargs):
    print "New article with ID=%s" % kwargs['articleID']

TODO:

  • Describe usage or point to docs. Also describe available settings and templatetags.
  • Add dependencies
  • Better Installation Guide

Set the FEED_SETTINGS in your projects settings.py file, here is an example:

FEED_SETTINGS = {
    'title': "My awesome Blog",
    'link': "/blog/",
    'description': "Don't miss any of my new posts",
    'author_email': "me@domain.ch",
    'author_name': "Scrooge McDuck",
    'author_link': "https://www.domain.ch/",
    'feed_url': "https://www.domain.ch/blog/feed/",
    'categories': [
        'DuckTales',
        'Daisy Duck',
        ]
}

Known issues, TODOs and planned features

  • ImageBucketObject is missing! Issue #5
  • ImageCropping dependencies
  • Translation added for desc so manual migrations of the DB are required. Add the new rows and rename desc to your primary language. This would be desc_de in case you start with German. Migration hints can be found here: https://github.com/arteria/django-copywriting/issues/14

Contribute

If you want to contribute to this project, just send us your pull requests. Thanks.