from django.template.loader import get_template from django.utils.safestring import mark_safe from django_social_share.templatetags.social_share import ( post_to_facebook_url, post_to_gplus_url, post_to_twitter_url, ) from . import registry SHARES = [ ( "post_to_twitter", "django_social_share/templatetags/post_to_twitter.html", post_to_twitter_url, ), ( "post_to_facebook", "django_social_share/templatetags/post_to_facebook.html", post_to_facebook_url, ), ( "post_to_gplus", "django_social_share/templatetags/post_to_gplus.html", post_to_gplus_url, ), # For future versions: # ('post_to_linkedin', 'django_social_share/templatetags/post_to_linkedin.html', post_to_linkedin_url), # ('post_to_reddit', 'django_social_share/templatetags/post_to_reddit.html', post_to_reddit_url), ] def make_func(name, template, url_func): def func(request, *args): link_text = args[-1] context = {"request": request, "link_text": mark_safe(link_text)} context = url_func(context, *args[:-1]) return mark_safe(get_template(template).render(context)) func.__name__ = name registry.function(name, func) for name, template, url_func in SHARES: make_func(name, template, url_func) @registry.function def recaptcha_init(language=None): return get_template("snowpenguin/recaptcha/recaptcha_init.html").render( {"explicit": False, "language": language} )