diff options
Diffstat (limited to 'lib/waev_web/views/exports_view.ex')
-rw-r--r-- | lib/waev_web/views/exports_view.ex | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/waev_web/views/exports_view.ex b/lib/waev_web/views/exports_view.ex index c4a1b59..4fc9a9e 100644 --- a/lib/waev_web/views/exports_view.ex +++ b/lib/waev_web/views/exports_view.ex @@ -22,4 +22,16 @@ defmodule WaevWeb.ExportsView do <img class="avatar <%= modifier %>" src="<%= Routes.exports_path(@conn, :get_avatar, @id, party.name) %>" /> """ end + + def highlight_urls(nil), do: "" + def highlight_urls(text) do + url_re = ~r/https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&\/\/=]*)/ + + url_re + |> Regex.scan(text) + |> Enum.reduce(text, fn [url|_], t -> + String.replace(t, url, "<a target=\"_blank\" href=#{url}>#{url}</a>", global: false) + |> raw() + end) + end end |