diff options
author | Guillermo Ramos | 2020-02-11 17:40:08 +0100 |
---|---|---|
committer | Guillermo Ramos | 2020-02-11 17:40:08 +0100 |
commit | a4d1e9a81551dea9d8d57ba34b0f9bc7be6c9321 (patch) | |
tree | 4df6ac1360985d9b178f3ce42e70070e115ec9d9 /lib/waev_web | |
parent | abad279fd6247b81e04efd9110ffe221bb096708 (diff) | |
download | waev-a4d1e9a81551dea9d8d57ba34b0f9bc7be6c9321.tar.gz |
Highlight URLs
Diffstat (limited to 'lib/waev_web')
-rw-r--r-- | lib/waev_web/templates/exports/show.html.eex | 2 | ||||
-rw-r--r-- | lib/waev_web/views/exports_view.ex | 12 |
2 files changed, 13 insertions, 1 deletions
diff --git a/lib/waev_web/templates/exports/show.html.eex b/lib/waev_web/templates/exports/show.html.eex index 9ac011e..6356804 100644 --- a/lib/waev_web/templates/exports/show.html.eex +++ b/lib/waev_web/templates/exports/show.html.eex @@ -26,7 +26,7 @@ <% _ -> %> <% end %> - <div><%= message.text %></div> + <div><%= highlight_urls(message.text) %></div> <div class="message-date"> <%= message.date %> </div> 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 |