34 lines
No EOL
904 B
Python
34 lines
No EOL
904 B
Python
"""
|
|
Jinja2 markdown2 extension
|
|
by Silas Swell
|
|
http://www.silassewell.com/blog/2010/05/10/jinja2-markdown-extension/
|
|
"""
|
|
|
|
import jinja2
|
|
import jinja2.ext
|
|
import markdown2
|
|
|
|
class Markdown2Extension(jinja2.ext.Extension):
|
|
tags = set(['markdown2'])
|
|
|
|
def __init__(self, environment):
|
|
super(Markdown2Extension, self).__init__(environment)
|
|
environment.extend(
|
|
markdowner=markdown2.Markdown()
|
|
)
|
|
|
|
def parse(self, parser):
|
|
lineno = parser.stream.next().lineno
|
|
body = parser.parse_statements(
|
|
['name:endmarkdown2'],
|
|
drop_needle=True
|
|
)
|
|
return jinja2.nodes.CallBlock(
|
|
self.call_method('_markdown_support'),
|
|
[],
|
|
[],
|
|
body
|
|
).set_lineno(lineno)
|
|
|
|
def _markdown_support(self, caller):
|
|
return self.environment.markdowner.convert(caller()).strip() |