Skip to content

yannik-ammann/django-copywriting

 
 

Repository files navigation

Django Copywriting

Copywriting is the act of writing copy (text) for the purpose of advertising or marketing a product, business, person, opinion or idea. The addressee (reader, listener, etc.) of the copy is meant to be persuaded to buy the product advertised for, or subscribe to the viewpoint the text shares.

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

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 to your INSTALLED_APPS

INSTALLED_APPS = (
    ...,
    'copywriting',
)

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

Contribute

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

About

Copywriting is the act of writing copy (text) for the purpose of advertising or marketing a product, business, person, opinion or idea. The addressee (reader, listener, etc.) of the copy is meant to be persuaded to buy the product advertised for, or subscribe to the viewpoint the text shares.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%