From 6294c947045f5179a39ecdf65fb905324c476c21 Mon Sep 17 00:00:00 2001 From: "byte[]" Date: Sat, 11 Jan 2020 13:57:58 -0500 Subject: [PATCH] more complete tokenization of urls with internal parentheses --- lib/textile/lexer.ex | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/textile/lexer.ex b/lib/textile/lexer.ex index 53a9fc0c..0be3308f 100644 --- a/lib/textile/lexer.ex +++ b/lib/textile/lexer.ex @@ -91,10 +91,19 @@ defmodule Textile.Lexer do image_url_scheme ]) + defparsec( + :unbracketed_url_inside, + choice([ + string("(") |> parsec(:unbracketed_url_inside) |> string(")"), + lookahead_not(end_of_link) |> utf8_char([]) + ]) + |> repeat() + ) + unbracketed_url = string(":") |> concat(link_url_scheme) - |> repeat(lookahead_not(end_of_link) |> utf8_char([])) + |> parsec(:unbracketed_url_inside) unbracketed_image_url = unbracketed_url