Mercurial > public > sg101
view core/markup.py @ 943:cf9918328c64
Haystack tweaks for Django 1.7.7.
I had to upgrade to Haystack 2.3.1 to get it to work with Django
1.7.7. I also had to update the Xapian backend. But I ran into
problems.
On my laptop anyway (Ubuntu 14.0.4), xapian gets mad when search terms
are greater than 245 chars (or something) when indexing. So I created
a custom field that would simply omit terms greater than 64 chars and
used this field everywhere I previously used a CharField.
Secondly, the custom search form was broken now. Something changed in
the Xapian backend and exact searches stopped working. Fortunately the
auto_query (which I was using originally and broke during an upgrade)
started working again. So I cut the search form back over to doing an
auto_query. I kept the form the same (3 fields) because I didn't want
to change the form and I think it's better that way.
author | Brian Neal <bgneal@gmail.com> |
---|---|
date | Wed, 13 May 2015 20:25:07 -0500 |
parents | 98d2388b6bb2 |
children |
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.utils import SmilifyMarkdown from core.mdexts.urlize import UrlizeExtension from core.mdexts.deleted import DelExtension from core.html import clean_html class Markdown(object): """ This is a thin wrapper around the Markdown class. """ def __init__(self): self.md = _markdown.Markdown(extensions=[ UrlizeExtension(), 'markdown.extensions.nl2br', DelExtension(), ]) def convert(self, s): return clean_html(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)