Ability to change lexer on the fly in raw views.
parent
8b21151ec8
commit
8626b23ce7
|
@ -8,8 +8,8 @@ urlpatterns = patterns('',
|
|||
url(r'^public/$', views.list_public, name='list-public'),
|
||||
url(r'^public/tag/(?P<tag_slug>[^/]+)/$', views.list_public, name='list-public-tag'),
|
||||
url(r'^embed/(?P<snipt_key>[^/]+)/$', views.embed, name='embed'),
|
||||
url(r'^raw/(?P<snipt_key>[^/]+)/$', views.raw, name='raw'),
|
||||
url(r'^s/(?P<snipt_key>[^/]+)/$', views.redirect, name='redirect'),
|
||||
url(r'^raw/(?P<snipt_key>[^/]+)/(?P<lexer>[^\?]+)?$', views.raw, name='raw'),
|
||||
url(r'^s/(?P<snipt_key>[^/]+)/(?P<lexer>[^\?]+)?$', views.redirect, name='redirect'),
|
||||
url(r'^(?P<username_or_custom_slug>[^/]+)/$', views.list_user, name='list-user'),
|
||||
url(r'^(?P<username_or_custom_slug>[^/]+)/tag/(?P<tag_slug>[^/]+)/$', views.list_user, name='list-user-tag'),
|
||||
url(r'^(?P<username>[^/]+)/favorites/$', views.favorites, name='favorites'),
|
||||
|
|
|
@ -2,6 +2,7 @@ from django.http import Http404, HttpResponseRedirect, HttpResponseBadRequest
|
|||
from django.shortcuts import get_object_or_404, render_to_response
|
||||
from django.core.paginator import Paginator, InvalidPage
|
||||
from annoying.functions import get_object_or_None
|
||||
from pygments.lexers import get_lexer_by_name
|
||||
from django.contrib.auth.models import User
|
||||
from django.template import RequestContext
|
||||
from annoying.decorators import render_to
|
||||
|
@ -236,9 +237,24 @@ def list_user(request, username_or_custom_slug, tag_slug=None):
|
|||
|
||||
return context
|
||||
|
||||
def raw(request, snipt_key):
|
||||
def raw(request, snipt_key, lexer=None):
|
||||
snipt = get_object_or_404(Snipt, key=snipt_key)
|
||||
|
||||
if request.user == snipt.user:
|
||||
if lexer:
|
||||
lexer = lexer.strip('/')
|
||||
|
||||
if lexer != snipt.lexer:
|
||||
|
||||
try:
|
||||
lexer_obj = get_lexer_by_name(lexer)
|
||||
except:
|
||||
lexer_obj = None
|
||||
|
||||
if lexer_obj:
|
||||
snipt.lexer = lexer
|
||||
snipt.save()
|
||||
|
||||
if snipt.lexer == 'js':
|
||||
mimetype='text/javascript'
|
||||
else:
|
||||
|
@ -252,7 +268,7 @@ def raw(request, snipt_key):
|
|||
context_instance=RequestContext(request),
|
||||
mimetype=mimetype)
|
||||
|
||||
def redirect(request, snipt_key):
|
||||
def redirect(request, snipt_key, lexer=None):
|
||||
snipt = get_object_or_404(Snipt, key=snipt_key)
|
||||
return HttpResponseRedirect(snipt.get_absolute_url())
|
||||
|
||||
|
|
Loading…
Reference in New Issue