Allow additionnal schemes in the config
authorHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Mon, 30 Jul 2018 19:59:04 +0000 (21:59 +0200)
committerHaelwenn (lanodan) Monnier <contact@hacktivis.me>
Wed, 1 Aug 2018 00:52:42 +0000 (02:52 +0200)
config/config.exs
lib/pleroma/formatter.ex

index 3a730134882ce3192a5a7781eb7ae15369bd59c8..ef5bcd65cdf3740b03808399edde4f4cffeb30e6 100644 (file)
@@ -16,6 +16,8 @@ config :pleroma, Pleroma.Upload,
 
 config :pleroma, :emoji, shortcode_globs: ["/emoji/custom/**/*.png"]
 
+config :pleroma, :uri_schemes, additionnal_schemes: []
+
 # Configures the endpoint
 config :pleroma, Pleroma.Web.Endpoint,
   url: [host: "localhost"],
index fe3da09ac3e1e02481c6f3d1e76cf07e5961b86d..e15c08fd6d69dacd264c6da60408660ac5918ae1 100644 (file)
@@ -199,10 +199,14 @@ defmodule Pleroma.Formatter do
 
   @doc "changes scheme:... urls to html links"
   def add_links({subs, text}) do
+    additionnal_schemes =
+      Application.get_env(:pleroma, :uri_schemes, [])
+      |> Keyword.get(:additionnal_schemes, [])
+
     links =
       text
       |> String.split([" ", "\t", "<br>"])
-      |> Enum.filter(fn word -> String.starts_with?(word, @uri_schemes) end)
+      |> Enum.filter(fn word -> String.starts_with?(word, @uri_schemes ++ additionnal_schemes) end)
       |> Enum.filter(fn word -> Regex.match?(@link_regex, word) end)
       |> Enum.map(fn url -> {Ecto.UUID.generate(), url} end)
       |> Enum.sort_by(fn {_, url} -> -String.length(url) end)