links =
Regex.scan(@link_regex, text)
|> Enum.map(fn [url] -> {Ecto.UUID.generate(), url} end)
+ |> Enum.sort_by(fn {_, url} -> -String.length(url) end)
uuid_text =
links
subs ++
Enum.map(links, fn {uuid, url} ->
{:safe, link} = Phoenix.HTML.Link.link(url, to: url)
- link = link
- |> IO.iodata_to_binary
+
+ link =
+ link
+ |> IO.iodata_to_binary()
+
{uuid, link}
end)
ap_id = info["source_data"]["url"] || ap_id
short_match = String.split(match, "@") |> tl() |> hd()
- {uuid, "<span><a href='#{ap_id}'>@<span>#{short_match}</span></a></span>"}
+
+ {uuid,
+ "<span><a class='mention' href='#{ap_id}'>@<span>#{short_match}</span></a></span>"}
end)
{subs, uuid_text}