Fix link regex edgecases
This commit is contained in:
		
							parent
							
								
									aae0e51154
								
							
						
					
					
						commit
						b31cc7bc25
					
				| 
						 | 
					@ -6,9 +6,9 @@ import ./types, ./utils
 | 
				
			||||||
from unicode import Rune, `$`
 | 
					from unicode import Rune, `$`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const
 | 
					const
 | 
				
			||||||
  urlRegex = re"((https?|ftp)://(-\.)?([^\s/?\.#]+\.?)+(/[^\s]*)?)"
 | 
					  urlRegex = re"((https?|ftp)://(-\.)?([^\s/?\.#]+\.?)+(/[^\s\)]*)?)"
 | 
				
			||||||
  emailRegex = re"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
 | 
					  emailRegex = re"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
 | 
				
			||||||
  usernameRegex = re"(^|[^\S\n]|\.|>)@([A-z0-9_]+)"
 | 
					  usernameRegex = re"(^|[^\S]|\.|>)@([A-z0-9_]+)"
 | 
				
			||||||
  picRegex = re"pic.twitter.com/[^ ]+"
 | 
					  picRegex = re"pic.twitter.com/[^ ]+"
 | 
				
			||||||
  cardRegex = re"(https?://)?cards.twitter.com/[^ ]+"
 | 
					  cardRegex = re"(https?://)?cards.twitter.com/[^ ]+"
 | 
				
			||||||
  ellipsisRegex = re" ?…"
 | 
					  ellipsisRegex = re" ?…"
 | 
				
			||||||
| 
						 | 
					@ -52,10 +52,9 @@ proc linkifyText*(text: string): string =
 | 
				
			||||||
  result = result.replace(ellipsisRegex, "")
 | 
					  result = result.replace(ellipsisRegex, "")
 | 
				
			||||||
  result = result.replace(emailRegex, reEmailToLink)
 | 
					  result = result.replace(emailRegex, reEmailToLink)
 | 
				
			||||||
  result = result.replace(urlRegex, reUrlToLink)
 | 
					  result = result.replace(urlRegex, reUrlToLink)
 | 
				
			||||||
  result = result.replace("\n", "<br>")
 | 
					 | 
				
			||||||
  result = result.replace(usernameRegex, reUsernameToLink)
 | 
					  result = result.replace(usernameRegex, reUsernameToLink)
 | 
				
			||||||
  result = result.replace(re"([^\s\(\n])<a", "$1 <a")
 | 
					  result = result.replace(re"([^\s\(\n%])<a", "$1 <a")
 | 
				
			||||||
  result = result.replace(re"</a>\s+([;.,!\)']|')", "</a>$1")
 | 
					  result = result.replace(re"</a>\s+([;.,!\)'%]|')", "</a>$1")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
proc stripTwitterUrls*(text: string): string =
 | 
					proc stripTwitterUrls*(text: string): string =
 | 
				
			||||||
  result = text
 | 
					  result = text
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue