From a4d1e9a81551dea9d8d57ba34b0f9bc7be6c9321 Mon Sep 17 00:00:00 2001 From: Guillermo Ramos Date: Tue, 11 Feb 2020 17:40:08 +0100 Subject: Highlight URLs --- lib/waev_web/templates/exports/show.html.eex | 2 +- lib/waev_web/views/exports_view.ex | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) (limited to 'lib/waev_web') 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 %> -
<%= message.text %>
+
<%= highlight_urls(message.text) %>
<%= message.date %>
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 """ 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, "#{url}", global: false) + |> raw() + end) + end end -- cgit v1.2.3