# some utilities for django THINGS from django.contrib.markup.templatetags.markup import markdown as md import BeautifulSoup def markdown(val): return md(val) def summarize(val, striptags=True): bs = BeautifulSoup.BeautifulSoup(markdown(val)) try: firstParagraph = bs('p')[0] except IndexError: return 'no summary available' if not striptags: return str(firstParagraph) return BeautifulStriptags(firstParagraph) def htmlstrip(htmlstr): bs = BeautifulSoup.BeautifulSoup(htmlstr) return BeautifulStriptags(bs).strip() def BeautifulStriptags(bfsobj): items = bfsobj.contents s = "" for item in items: if type(item) == BeautifulSoup.NavigableString: s += str(item) else: if len(item.contents): s += BeautifulStriptags(item) else: pass return s.strip()