[enh] incasesensitive query highlighting

This commit is contained in:
asciimoo 2013-11-10 21:41:01 +01:00
parent 14cd1d6faf
commit cbb397939d
1 changed files with 12 additions and 2 deletions

View File

@ -25,6 +25,7 @@ from urlparse import urlparse
from searx import settings from searx import settings
import ConfigParser import ConfigParser
import sys import sys
import re
from datetime import datetime from datetime import datetime
engine_dir = dirname(realpath(__file__)) engine_dir = dirname(realpath(__file__))
@ -106,8 +107,17 @@ def highlight_content(content, query):
# TODO better html content detection # TODO better html content detection
if content.find('<') != -1: if content.find('<') != -1:
return content return content
for chunk in query.split():
content = content.replace(chunk, '<b>{0}</b>'.format(chunk)) if content.lower().find(query.lower()) > -1:
query_regex = '({0})'.format(re.escape(query))
content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
else:
for chunk in query.split():
if len(chunk) == 1:
query_regex = '(\W+{0}\W+)'.format(re.escape(chunk))
else:
query_regex = '({0})'.format(re.escape(chunk))
content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
return content return content