import re from trac.wiki.formatter import * from django.template import Library, Node, Template, Context from django.template.defaultfilters import stringfilter from django.template.loader import render_to_string from django.utils.safestring import mark_safe from photologue.models import Photo def get_photologue_html(size,image): image = get_image(image) if not image: return "Bad image name" if size.lower() == "thumb": template = "photologue/thumb_snippet.html" else: template = "photologue/image_snippet.html" return render_to_string(template,{'image': image }) pattern = re.compile(r'\[\[([^:]+):(.+)\]\]') @register.filter @stringfilter def yeagowiki(content): content = pattern.sub(lambda match: get_photologue_html(match.group(1),match.group(2)),content) return mark_safe(content)