Code beautification

This commit is contained in:
2014-04-21 10:39:43 +02:00
parent 6ee2ddb2af
commit 337e1eea2b
7 changed files with 154 additions and 42 deletions

View File

@@ -5,9 +5,9 @@ from taggit.managers import TaggableManager
class Post(models.Model):
user = models.ForeignKey(User)
created_at = models.DateTimeField(auto_now_add=True)
created_at = models.DateTimeField(auto_now_add = True)
title = models.CharField(max_length = 100)
slug = models.SlugField(editable=False, max_length = 100)
slug = models.SlugField(editable = False, max_length = 100)
content = models.TextField()
draft = models.BooleanField()
tags = TaggableManager()
@@ -23,10 +23,10 @@ class Post(models.Model):
class CodeChunk(models.Model):
language = models.CharField(max_length = 20)
created_at = models.DateTimeField(auto_now_add=True)
created_at = models.DateTimeField(auto_now_add = True)
title = models.CharField(max_length = 100)
slug = models.SlugField(editable = False, max_length = 100)
description = models.TextField(blank=True)
description = models.TextField(blank = True)
content = models.TextField()
def save(self, *args, **kwargs):

View File

@@ -25,12 +25,17 @@ class CodeFormatter(HtmlFormatter):
def hilite(language, code):
lexer = get_lexer_by_name(language)
formatter = CodeFormatter(style = SolarizedDarkStyle, linenos = False, cssclass = language + " code", noclasses = True)
formatter = CodeFormatter(
style = SolarizedDarkStyle,
linenos = False,
cssclass = language + " code",
noclasses = True
)
return highlight(code, lexer, formatter)
@register.filter(needs_autoescape=True)
@register.filter(needs_autoescape = True)
@stringfilter
def remove_code_chunks(value, autoescape=None):
def remove_code_chunks(value, autoescape = None):
p = re.compile('\[\$ code:(?P<lang>[^:]+):(?P<slug>[^ ]+) \$\]')
i = p.finditer(value)
diff = 0
@@ -61,9 +66,9 @@ def remove_code_chunks(value, autoescape=None):
return mark_safe(value)
@register.filter(needs_autoescape=True)
@register.filter(needs_autoescape = True)
@stringfilter
def insert_code_chunks(value, autoescape=None):
def insert_code_chunks(value, autoescape = None):
p = re.compile('\[\$ code:(?P<lang>[^:]+):(?P<slug>[^ ]+) \$\]')
i = p.finditer(value)
diff = 0
@@ -74,8 +79,12 @@ def insert_code_chunks(value, autoescape=None):
start += diff
end += diff
try:
chunk = CodeChunk.objects.get(language = match.group('lang'), slug = match.group('slug'))
# TODO: This is an ugly hack, as it includes template logic in code. BAD!
chunk = CodeChunk.objects.get(
language = match.group('lang'),
slug = match.group('slug')
)
# TODO: This is an ugly hack, as it includes template logic in
# code. BAD!
newstr = "<div class=\"code-chunk\">" + hilite(match.group('lang'), chunk.content) + "</div>"
except CodeChunk.DoesNotExist:
newstr = ""
@@ -94,7 +103,8 @@ def insert_code_chunks(value, autoescape=None):
start += diff
end += diff
# TODO: This is an ugly hack, as it includes template logic in code. BAD!
# TODO: This is an ugly hack, as it includes template logic in code.
# BAD!
newstr = "<div class=\"code-chunk\">" + hilite(match.group('lang'), match.group('code')) + "</div>"
newlen = len(newstr)
@@ -103,9 +113,9 @@ def insert_code_chunks(value, autoescape=None):
return mark_safe(value)
@register.filter(needs_autoescape=True)
@register.filter(needs_autoescape = True)
@stringfilter
def syhilite(value, language, autoescape=None):
def syhilite(value, language, autoescape = None):
if language == "php":
value = "<?php\n" + value

View File

@@ -2,13 +2,49 @@ from django.conf.urls import patterns, url
from blog import views
urlpatterns = patterns('',
url(r'^$', views.index, name = 'index'),
url(r'^page/(?P<page>\d+)$', views.indexpage, name = 'indexpage'),
url(r'^tag/(?P<tag>[^/]+)$', views.taglist, name = 'taglist'),
url(r'^tag/(?P<tag>[^/]+)/page/(?P<page>\d+)$', views.tagpage, name = 'tagpage'),
url(r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/?$', views.datelist, name = 'datelist'),
url(r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/page/(?P<page>\d+)$', views.datepage, name = 'datepage'),
url(r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<slug>[^/]+)$', views.read, name = 'read'),
url(r'^code-chunk/(?P<language>[^/]+)/(?P<slug>[^/]+)$', views.codechunk, name = 'codechunk'),
url(r'^feed$', views.feed, name = 'feed'),
url(
r'^$',
views.index,
name = 'index'
),
url(
r'^page/(?P<page>\d+)$',
views.indexpage,
name = 'indexpage'
),
url(
r'^tag/(?P<tag>[^/]+)$',
views.taglist,
name = 'taglist'
),
url(
r'^tag/(?P<tag>[^/]+)/page/(?P<page>\d+)$',
views.tagpage,
name = 'tagpage'
),
url(
r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/?$',
views.datelist,
name = 'datelist'
),
url(
r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/page/(?P<page>\d+)$',
views.datepage,
name = 'datepage'
),
url(
r'^(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<slug>[^/]+)$',
views.read,
name = 'read'
),
url(
r'^code-chunk/(?P<language>[^/]+)/(?P<slug>[^/]+)$',
views.codechunk,
name = 'codechunk'
),
url(
r'^feed$',
views.feed,
name = 'feed'
),
)

View File

@@ -13,10 +13,10 @@ def listing(request, tag, year, month, day, page):
view = 'index'
if (tag == None):
view = "index"
view = 'index'
else:
kwargs['tags__slug'] = tag
view = "tag"
view = 'tag'
if (year != None):
kwargs['created_at__year'] = year
@@ -40,7 +40,11 @@ def listing(request, tag, year, month, day, page):
if paginator.num_pages > 1:
view = view + 'page'
return render(request, 'blog/listing.html', { 'posts': posts, 'tag': tag, 'view': "blog:" + view })
return render(request, 'blog/listing.html', {
'posts': posts,
'tag': tag,
'view': "blog:" + view
})
def index(request):
return listing(request, None, None, None, None, 1)
@@ -61,7 +65,13 @@ def datepage(request, year, month, day, page):
return listing(request, None, year, month, day, page)
def read(request, year, month, day, slug):
post = get_object_or_404(Post, created_at__year=int(year), created_at__month=int(month), created_at__day=int(day), slug=slug, draft=False)
post = get_object_or_404(Post,
created_at__year = int(year),
created_at__month = int(month),
created_at__day = int(day),
slug = slug,
draft = False
)
next_post = Post.objects.filter(created_at__gt = post.created_at).order_by('created_at')[0:1]
prev_post = Post.objects.filter(created_at__lt = post.created_at).order_by('-created_at')[0:1]
@@ -75,10 +85,14 @@ def read(request, year, month, day, slug):
else:
prev_post = prev_post[0]
return render(request, 'blog/view.html', {'post': post, 'prev_post': prev_post, 'next_post': next_post})
return render(request, 'blog/view.html', {
'post': post,
'prev_post': prev_post,
'next_post': next_post,
})
def codechunk(request, language, slug):
chunk = get_object_or_404(CodeChunk, language=language, slug=slug)
chunk = get_object_or_404(CodeChunk, language = language, slug = slug)
return render(request, 'blog/code-chunk.html', {'codechunk': chunk})
def feed(request):