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