diff --git a/lib/pleroma/formatter.ex b/lib/pleroma/formatter.ex index f062d9a58..7ccd7e7bb 100644 --- a/lib/pleroma/formatter.ex +++ b/lib/pleroma/formatter.ex @@ -1,7 +1,7 @@ defmodule Pleroma.Formatter do alias Pleroma.User - @link_regex ~r/https?:\/\/[\w\.\/?=\-#%&]+[\w]/u + @link_regex ~r/https?:\/\/[\w\.\/?=\-#%&@~]+[\w\/]/u def linkify(text) do Regex.replace(@link_regex, text, "\\0") end diff --git a/test/formatter_test.exs b/test/formatter_test.exs index d96f433f9..f91973881 100644 --- a/test/formatter_test.exs +++ b/test/formatter_test.exs @@ -7,10 +7,24 @@ defmodule Pleroma.FormatterTest do describe ".linkify" do test "turning urls into links" do text = "Hey, check out https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla." - expected = "Hey, check out https://www.youtube.com/watch?v=8Zg1-TufF%20zY?x=1&y=2#blabla." assert Formatter.linkify(text) == expected + + text = "https://mastodon.social/@lambadalambda" + expected = "https://mastodon.social/@lambadalambda" + + assert Formatter.linkify(text) == expected + + text = "@lambadalambda" + expected = "@lambadalambda" + + assert Formatter.linkify(text) == expected + + text = "http://www.cs.vu.nl/~ast/intel/" + expected = "http://www.cs.vu.nl/~ast/intel/" + + assert Formatter.linkify(text) == expected end end