A web log for Django.
Switch branches/tags
Clone or download
#5 Compare This branch is 161 commits ahead, 13 commits behind nathanborror:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



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.


Wordpress Import

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.



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


  1. Add vellum to your settings.INSTALLED_APPS.
  2. Add vellum.context_processors.blog_settings to your settings.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!