diff --git a/src/parser.pegjs b/src/parser.pegjs
index f350763a495574a2aa2ab01141da81f68c0c321c..34233e0b4a758a2e85f8058110cc4a63bc24d425 100644
--- a/src/parser.pegjs
+++ b/src/parser.pegjs
@@ -354,7 +354,7 @@ hashtagChar
 // inline: URL
 
 url
-	= "<" url:urlFormat ">"
+	= "<" url:altUrlFormat ">"
 {
 	return N_URL(url);
 }
@@ -364,14 +364,11 @@ url
 }
 
 urlFormat
-	= "http" "s"? "://" urlContent
+	= "http" "s"? "://" urlContentPart+
 {
 	return text();
 }
 
-urlContent
-	= urlContentPart+
-
 urlContentPart
 	= urlBracketPair
 	/ [.,] &urlContentPart // last char is neither "." nor ",".
@@ -381,6 +378,12 @@ urlBracketPair
 	= "(" urlContentPart* ")"
 	/ "[" urlContentPart* "]"
 
+altUrlFormat
+	= "http" "s"? "://" (!">" CHAR)+
+{
+	return text();
+}
+
 // inline: link
 
 link