aboutsummaryrefslogtreecommitdiff
path: root/lib/waev_web
diff options
context:
space:
mode:
authorGuillermo Ramos2020-02-11 17:40:08 +0100
committerGuillermo Ramos2020-02-11 17:40:08 +0100
commita4d1e9a81551dea9d8d57ba34b0f9bc7be6c9321 (patch)
tree4df6ac1360985d9b178f3ce42e70070e115ec9d9 /lib/waev_web
parentabad279fd6247b81e04efd9110ffe221bb096708 (diff)
downloadwaev-a4d1e9a81551dea9d8d57ba34b0f9bc7be6c9321.tar.gz
Highlight URLs
Diffstat (limited to 'lib/waev_web')
-rw-r--r--lib/waev_web/templates/exports/show.html.eex2
-rw-r--r--lib/waev_web/views/exports_view.ex12
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