X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Fcommon_api%2Futils.ex;h=a36ab5c158ae6984680f2843da7aff935b173d3c;hb=9adc80afff5ea42e1773c6ada5e078ec6c1cadc8;hp=ce0926b99b65fb097ce48599e852921ab4ee0ab4;hpb=2592b3c81a5af20536c3cc9709e3971d6cfb1e68;p=akkoma
diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex
index ce0926b99..a36ab5c15 100644
--- a/lib/pleroma/web/common_api/utils.ex
+++ b/lib/pleroma/web/common_api/utils.ex
@@ -1,3 +1,7 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors
+# SPDX-License-Identifier: AGPL-3.0-only
+
defmodule Pleroma.Web.CommonAPI.Utils do
alias Calendar.Strftime
alias Comeonin.Pbkdf2
@@ -112,33 +116,43 @@ defmodule Pleroma.Web.CommonAPI.Utils do
Enum.join([text | attachment_text], "
")
end
- def format_input(text, mentions, tags, "text/plain") do
+ def format_input(text, mentions, tags, format, options \\ [])
+
+ @doc """
+ Formatting text to plain text.
+ """
+ def format_input(text, mentions, tags, "text/plain", options) do
text
|> Formatter.html_escape("text/plain")
|> String.replace(~r/\r?\n/, "
")
|> (&{[], &1}).()
|> Formatter.add_links()
- |> Formatter.add_user_links(mentions)
+ |> Formatter.add_user_links(mentions, options[:user_links] || [])
|> Formatter.add_hashtag_links(tags)
|> Formatter.finalize()
end
- def format_input(text, mentions, _tags, "text/html") do
+ @doc """
+ Formatting text to html.
+ """
+ def format_input(text, mentions, _tags, "text/html", options) do
text
|> Formatter.html_escape("text/html")
- |> String.replace(~r/\r?\n/, "
")
|> (&{[], &1}).()
- |> Formatter.add_user_links(mentions)
+ |> Formatter.add_user_links(mentions, options[:user_links] || [])
|> Formatter.finalize()
end
- def format_input(text, mentions, tags, "text/markdown") do
+ @doc """
+ Formatting text to markdown.
+ """
+ def format_input(text, mentions, tags, "text/markdown", options) do
text
+ |> Formatter.mentions_escape(mentions)
|> Earmark.as_html!()
|> Formatter.html_escape("text/html")
- |> String.replace(~r/\r?\n/, "")
|> (&{[], &1}).()
- |> Formatter.add_user_links(mentions)
+ |> Formatter.add_user_links(mentions, options[:user_links] || [])
|> Formatter.add_hashtag_links(tags)
|> Formatter.finalize()
end