Mercurial > public > sg101
view core/markup.py @ 848:32ebe22f0cad
For issue #79 update to Markdown 2.5.1.
This commit follows new Markdown conventions for extensions.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Tue, 28 Oct 2014 19:33:14 -0500 |
parents | 7429c98c8ece |
children | ff645a692791 |
line wrap: on
line source
""" Markup related utitlities useful for the entire project. """ import markdown as _markdown from django.utils.encoding import force_unicode from smiley import SmilifyMarkdown from core.mdexts.urlize import UrlizeExtension from core.mdexts.deleted import DelExtension class Markdown(object): """ This is a thin wrapper around the Markdown class. """ def __init__(self, safe_mode='escape'): self.md = _markdown.Markdown(safe_mode=safe_mode, extensions=[ UrlizeExtension(), 'markdown.extensions.nl2br', DelExtension(), ]) def convert(self, s): return self.md.convert(force_unicode(s)) def markdown(s): """ A convenience function for one-off markdown jobs. """ md = Markdown() return md.convert(s) class SiteMarkup(object): """ This class provides site markup by combining markdown and our own smiley markup. The relative_urls parameter controls whether the smileys are generated with relative or absolute URLs. """ def __init__(self, relative_urls=True): self.md = Markdown() self.smiley = SmilifyMarkdown(relative_urls=relative_urls) def convert(self, s): return self.md.convert(self.smiley.convert(s)) def site_markup(s, relative_urls=True): """ Convenience function for one-off site markup jobs. """ sm = SiteMarkup(relative_urls=relative_urls) return sm.convert(s)