|
12345678910111213141516171819202122232425262728293031323334 |
- """
- 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()
|