@
life 在v2ex\templatetags\
filters.py加入:
def bbcode_content(value):
pat = re.compile(r'<([^>]*?)>', re.DOTALL | re.M)
value = re.sub(pat, '<\\1>', value)
bbdata = [
(r'\[url\](.+?)\[/url\]', r'<a href="\1">\1</a>'),
(r'\[url=(.+?)\](.+?)\[/url\]', r'<a class="link-segment" href="\1">\2</a>'),
(r'\[email\](.+?)\[/email\]', r'<a href="mailto:\1">\1</a>'),
(r'\[email=(.+?)\](.+?)\[/email\]', r'<a href="mailto:\1">\2</a>'),
(r'\[img\](.+?)\[/img\]', r'<img src="\1">'),
(r'\[img=(.+?)\](.+?)\[/img\]', r'<img src="\1" alt="\2">'),
(r'\[b\](.+?)\[/b\]', r'<b>\1</b>'),
(r'\[i\](.+?)\[/i\]', r'<i>\1</i>'),
(r'\[u\](.+?)\[/u\]', r'<u>\1</u>'),
(r'\[quote\](.+?)\[/quote\]', r'<blockquote class="content-quote">\1</blockquote>'),
(r'\[center\](.+?)\[/center\]', r'<div align="center">\1</div>'),
(r'\[code\]\s?(.+?)\[/code\]', r'<blockquote class="code-segment"><code><pre>\1</pre></code></blockquote>'),
(r'\[big\](.+?)\[/big\]', r'<big>\1</big>'),
(r'\[small\](.+?)\[/small\]', r'<small>\1</small>'),
]
for bbset in bbdata:
p = re.compile(bbset[0], re.DOTALL)
value = p.sub(bbset[1], value)
return value
register.filter(bbcode_content)
----
然后在调用就好了
"tpl\portion\topic_content.html"(1,25):{{ topic.content|escape|bbcode_content|youtube|youku|imgly|clly|mentions|gist|urlize|linebreaksbr }}
"tpl\portion\topic_replies.html"(14,76): <div class="content reply_content">{{ reply.content|escape|bbcode_content|youku|imgly|clly|mentions|gist|urlize|linebreaksbr }}</div>