Просмотр исходного кода

Fix username linkification bug

Zed 7 лет назад
Родитель
Сommit
3ea926550b
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      src/formatters.nim

+ 3 - 3
src/formatters.nim

@@ -8,7 +8,7 @@ from unicode import Rune, `$`
 const
   urlRegex = re"((https?|ftp)://(-\.)?([^\s/?\.#]+\.?)+([/\?][^\s\)]*)?)"
   emailRegex = re"([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)"
-  usernameRegex = re"(^|[^A-z0-9_?])@([A-z0-9_]+)"
+  usernameRegex = re"(^|[^A-z0-9_?\/])@([A-z0-9_]+)"
   picRegex = re"pic.twitter.com/[^ ]+"
   ellipsisRegex = re" ?…"
   hashtagRegex = re"([^\S])?([#$][A-z0-9]+)"
@@ -77,15 +77,15 @@ proc replaceUrl*(url: string; prefs: Prefs): string =
 
 proc linkifyText*(text: string; prefs: Prefs; rss=false): string =
   result = xmltree.escape(stripText(text))
-  result = result.replace(ellipsisRegex, "")
+  result = result.replace(ellipsisRegex, " ")
   result = result.replace(emailRegex, reEmailToLink)
-  result = result.replace(hashtagRegex, reHashtagToLink)
   if rss:
     result = result.replace(urlRegex, reUrlToLink)
     result = result.replace(usernameRegex, reUsernameToFullLink)
   else:
     result = result.replace(urlRegex, reUrlToShortLink)
     result = result.replace(usernameRegex, reUsernameToLink)
+  result = result.replace(hashtagRegex, reHashtagToLink)
   result = result.replace(re"([^\s\(\n%])<a", "$1 <a")
   result = result.replace(re"</a>\s+([;.,!\)'%]|&apos;)", "</a>$1")
   result = result.replace(re"^\. <a", ".<a")