[enh] add result_templates/code.html

This commit is contained in:
Thomas Pointhuber 2014-12-20 23:33:03 +01:00
parent 2e41bfcbdb
commit 7adb17452d
16 changed files with 352 additions and 1036 deletions

View file

@ -33,6 +33,9 @@ from flask import (
redirect, send_from_directory
)
from flask.ext.babel import Babel, gettext, format_date
from pygments import highlight
from pygments.lexers import get_lexer_by_name
from pygments.formatters import HtmlFormatter
from searx import settings, searx_dir
from searx.engines import (
categories, engines, get_engines_stats, engine_shortcuts
@ -90,6 +93,49 @@ def get_locale():
return locale
# code-highlighter
@app.template_filter('code_highlighter')
def code_highlighter(codelines, language=None):
if not language:
language = 'text'
# find lexer by programing language
lexer = get_lexer_by_name(language, stripall=True)
html_code = ''
tmp_code = ''
last_line = None
# parse lines
for line, code in codelines:
if not last_line:
line_code_start = line
# new codeblock is detected
if last_line != None and\
last_line +1 != line:
# highlight last codepart
formatter = HtmlFormatter(linenos='inline', linenostart=line_code_start)
html_code = html_code + highlight(tmp_code, lexer, formatter)
# reset conditions for next codepart
tmp_code = ''
line_code_start = line
# add codepart
tmp_code += code + '\n'
# update line
last_line = line
# highlight last codepart
formatter = HtmlFormatter(linenos='inline', linenostart=line_code_start)
html_code = html_code + highlight(tmp_code, lexer, formatter)
return html_code
def get_base_url():
if settings['server']['base_url']:
hostname = settings['server']['base_url']