|
@@ -25,6 +25,7 @@ from urlparse import urlparse
|
25
|
25
|
from searx import settings
|
26
|
26
|
import ConfigParser
|
27
|
27
|
import sys
|
|
28
|
+import re
|
28
|
29
|
from datetime import datetime
|
29
|
30
|
|
30
|
31
|
engine_dir = dirname(realpath(__file__))
|
|
@@ -106,8 +107,17 @@ def highlight_content(content, query):
|
106
|
107
|
# TODO better html content detection
|
107
|
108
|
if content.find('<') != -1:
|
108
|
109
|
return content
|
109
|
|
- for chunk in query.split():
|
110
|
|
- content = content.replace(chunk, '<b>{0}</b>'.format(chunk))
|
|
110
|
+
|
|
111
|
+ if content.lower().find(query.lower()) > -1:
|
|
112
|
+ query_regex = '({0})'.format(re.escape(query))
|
|
113
|
+ content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
|
|
114
|
+ else:
|
|
115
|
+ for chunk in query.split():
|
|
116
|
+ if len(chunk) == 1:
|
|
117
|
+ query_regex = '(\W+{0}\W+)'.format(re.escape(chunk))
|
|
118
|
+ else:
|
|
119
|
+ query_regex = '({0})'.format(re.escape(chunk))
|
|
120
|
+ content = re.sub(query_regex, '<b>\\1</b>', content, flags=re.I)
|
111
|
121
|
|
112
|
122
|
return content
|
113
|
123
|
|