- """
- tags = [re.escape(tag) for tag in tags.split()]
- tags_re = u'(%s)' % u'|'.join(tags)
- tag_re = re.compile(ur'<%s[^>]*>.*?</\s*\1\s*>' % tags_re, re.U)
- value = tag_re.sub(u'', value)
- return value
+@register.simple_tag
+def tag_url(category, slug):
+ return Tag.create_url(category, slug)
+
+
+@register.simple_tag
+def download_audio(book, daisy=True):
+ related = book.related_info()
+ links = []
+ if related['media'].get('mp3'):
+ links.append("<a href='%s'>%s</a>" %
+ (reverse('download_zip_mp3', args=[book.slug]),
+ BookMedia.formats['mp3'].name))
+ if related['media'].get('ogg'):
+ links.append("<a href='%s'>%s</a>" %
+ (reverse('download_zip_ogg', args=[book.slug]),
+ BookMedia.formats['ogg'].name))
+ if daisy and related['media'].get('daisy'):
+ for dsy in book.get_media('daisy'):
+ links.append("<a href='%s'>%s</a>" %
+ (dsy.file.url, BookMedia.formats['daisy'].name))
+ return ", ".join(links)
+
+
+@register.inclusion_tag("catalogue/snippets/custom_pdf_link_li.html")
+def custom_pdf_link_li(book):
+ return {
+ 'book': book,
+ 'NO_CUSTOM_PDF': settings.NO_CUSTOM_PDF,
+ }
+
+
+@register.inclusion_tag("catalogue/snippets/license_icon.html")
+def license_icon(license_url):
+ """Creates a license icon, if the license_url is known."""
+ known = LICENSES.get(license_url)
+ if known is None:
+ return {}
+ return {
+ "license_url": license_url,
+ "icon": "img/licenses/%s.png" % known['icon'],
+ "license_description": known['description'],
+ }