Django Copywriting ============
Django app for writing copy or blogposts. This repository is no longer maintained.
- 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/
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
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
.
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
- Translation added for
desc
so manual migrations of the DB are required. Add the new rows and renamedesc
to your primary language. This would bedesc_de
in case you start with German. Migration hints can be found here: #14
If you want to contribute to this project, just send us your pull requests. Thanks.