| 
				
			 | 
			
			
				@@ -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
			 | 
			
			
				  
			 |