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