I use postmarkup in my django projects as a filter. It's just: # django/template/defaultfilters.py def BBCode(value): markup = postmarkup.Create() return markup(value) BBCode = stringfilter(BBCode) and then: register.filter('BBCode',BBCode) Why there is a latin1 coding ? It should be better to do that in utf8, it'll be more flexible. When I change code to coding utf8, i get: Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 272, in run self.result = application(self.environ, self.start_response) File "/usr/lib/python2.5/site-packages/django/core/servers/basehttp.py", line 614, in __call__ return self.application(environ, start_response) File "/usr/lib/python2.5/site-packages/django/core/handlers/wsgi.py", line 189, in __call__ response = self.get_response(request) File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py", line 111, in get_response return debug.technical_500_response(request, *sys.exc_info()) File "/usr/lib/python2.5/site-packages/django/views/debug.py", line 140, in technical_500_response return HttpResponseServerError(t.render(c), mimetype='text/html') File "/usr/lib/python2.5/site-packages/django/template/__init__.py", line 172, in render return self.nodelist.render(context) File "/usr/lib/python2.5/site-packages/django/template/__init__.py", line 723, in render return ''.join(bits) TypeError: sequence item 32: expected string, IfNode found When I use postmarkup with 'latin1' my django project (which is utf8) shows some Chinese characters ;-) Any idea ?