"""
Usage:

{% load tracwiki %}

{{ object.body|tracwiki }}

# Logic from http://groups.google.com/group/trac-dev/msg/479decac43883dc0
"""

from trac.test import EnvironmentStub, Mock, MockPerm 
from trac.mimeview import Context 
from trac.wiki.formatter import HtmlFormatter 
from trac.web.href import Href

from django.utils.safestring import mark_safe
from django import template
register = template.Library()

env = EnvironmentStub() 
req = Mock(href=Href('/'), abs_href=Href('http://www.example.com/'), 
           authname='anonymous', perm=MockPerm(), args={})
context = Context.from_request(req, 'wiki')

@register.filter
def tracwiki(s):
    return mark_safe(HtmlFormatter(env, context, s).generate())