|
@@ -25,6 +25,7 @@ from urlparse import urlparse
|
|
|
from searx import settings
|
|
|
import ConfigParser
|
|
|
import sys
|
|
|
+import re
|
|
|
from datetime import datetime
|
|
|
|
|
|
engine_dir = dirname(realpath(__file__))
|
|
@@ -106,8 +107,17 @@ def highlight_content(content, query):
|
|
|
# TODO better html content detection
|
|
|
if content.find('<') != -1:
|
|
|
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
|
|
|
|