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.
- 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
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=copywritingTODO: 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 copywritingAdd 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.
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.
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',
]
}- ImageBucketObject is missing! Issue #5
- ImageCropping dependencies
If you want to contribute to this project, just send us your pull requests. Thanks.