A Django web log application.
This application began life as part of Nathan Borror's django-basic-apps, a collection of simple prebuilt Django applications.
When I first decided I wanted to move to a Django-based blog, I looked around to see if there were any existing projects I could use. There was certainly no shortage of blog applications, but none of them were exactly what I was looking for. Nathan's basic blog was close, but, as the name implies, very basic. Kevin Fricovsky's django-mingus, which is itself built on top of Nathan's basic blog, appealed to me the most, but still had aspects that I did not like. So I decided to create my own.
In true open source fashion, I forked django-basic-apps. It provided an excellent framework to work from -- had I started from scratch, I would have ended up recreating a lot of what Nathan had already done. With that fork, along with some ideas inspired by django-mingus and Wordpress, I was able to craft a blog application that suited me perfectly. I think it's pretty nice -- and it turns out it suits some other people pretty well, too!
The only thing I did not like about it was that the blog was part of a larger collection of Django applications, most of which I did not use. I am happy to put my name on the blog, but I did not want to maintain or vouch for the numerous other apps. So, I spun off the two other applications that I did use (django-media and django-inlineobjects), deleted the rest, and renamed the blog.
Thus, django-vellum.
A management script is included to import blog posts from a Wordpress-generated XML file. For more information, run ./manage.py wordpress_import
.
Disqus comments are supported (and recommended).
An author can manually specify content to use as the tease of a post. If they choose not to do this, they may instead choose to display an excerpt which is automatically generated by truncating the post body.
Posts can be written in traditional HTML, plaintext, or any number of markup languages (Markdown is recommended).
If Markdown is used, an enjoyable writing experience is provided by django-wmd.
- django-inlineobjects is required for including content objects inside of blog posts.
- django-simplesearch is required for searching posts.
- django-taggit is required for tagging.
- django-taggit-templatetags is required for generating a tag cloud.
- django-markup is required for markup language support.
- The Python Markdown library is required for Markdown support. (Markdown support can be disabled, but it is the default choice. If the user does not specify otherwise, all posts are put through Markdown.)
- The Django comment framework must be installed, unless Disqus support is enabled (see below).
The following packages are not required, but are suggested to take full advantage of django-vellum.
- django-disqus is suggested for Disqus-powered comments.
- smartypants is suggested for smart typography (curly quotes, en- and em-dashes, ellipses, etc.).
- django-wmd is suggested for an enhanced Markdown experience.
- django-media may be used in conjuction with (the previously mentioned) django-inlineobjects to include photos in posts.
django-vellum is available on PyPI and can be installed with PIP.
pip install django-vellum
Alternatively, you may download the source and install it.
python setup.py install
- Add
vellum
to yoursettings.INSTALLED_APPS
. - Add
vellum.context_processors.blog_settings
to yoursettings.TEMPLATE_CONTEXT_PROCESSORS
.
If you have any questions, or encounter any issues, email me at pm@pig-monkey.com.
Full documentation is coming, I promise!