Merge branch 'code_results' of https://github.com/pointhi/searx into pointhi-code_results

Conflicts:
	searx/static/themes/default/css/style.css
	searx/static/themes/oscar/css/oscar.min.css
	searx/templates/oscar/result_templates/torrent.html
This commit is contained in:
Adam Tauber 2015-01-15 18:26:00 +01:00
commit a04fafd419
26 changed files with 456 additions and 1018 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
@ -101,6 +104,54 @@ def get_locale():
return locale
# code-highlighter
@app.template_filter('code_highlighter')
def code_highlighter(codelines, language=None):
if not language:
language = 'text'
try:
# find lexer by programing language
lexer = get_lexer_by_name(language, stripall=True)
except:
# if lexer is not found, using default one
lexer = get_lexer_by_name('text', 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 is not 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']