pasteque/paste/renderers.py

34 lines
1.1 KiB
Python
Raw Normal View History

2013-04-04 17:37:30 +00:00
from django.template import RequestContext
from django.template.loader import get_template
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import get_formatter_by_name
from paste.tools import cache_exists, cache_fetch, cache_store
def render_pygments(request, paste, data):
"""Renders Pygments template."""
key = paste.slug+'_pygments.cache'
if cache_exists(key):
highlighted_content = cache_fetch(key)
else:
lexer = get_lexer_by_name(paste.language.slug)
2013-04-04 17:37:30 +00:00
formatter = get_formatter_by_name('html')
highlighted_content = highlight(paste.content, lexer, formatter)
cache_store(key, highlighted_content)
data['paste'] = paste
data['highlighted'] = highlighted_content
2018-05-06 21:19:49 +00:00
return get_template('paste/show-pygments.html').render(data)
2013-04-04 17:37:30 +00:00
def render_form(request, paste, data):
"""Renders Form template."""
data['paste'] = paste
2018-05-06 21:19:49 +00:00
return get_template('paste/show-form.html').render(data)
2013-04-04 17:37:30 +00:00
def render_raw(request, paste, data):
"""Renders RAW content."""
data['paste'] = paste
2018-05-06 21:19:49 +00:00
return get_template('paste/show-raw.html').render(data)