aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@feld.me>2021-06-11 14:33:13 -0500
committerMark Felder <feld@feld.me>2021-06-11 14:35:05 -0500
commitbaf7fd2142a28ff2219c6be8906861490a9f0753 (patch)
tree673143ce191f70fddb6067ef50bb75e60bfe7a52 /lib
parent65137044c1d68eade974e5b5ac5caea4352e6a44 (diff)
downloadpleroma-baf7fd2142a28ff2219c6be8906861490a9f0753.tar.gz
Introduce a scrubber that filters only everything except breaks
Add more tests for scrub_html_and_truncate/2
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/metadata/utils.ex4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/pleroma/web/metadata/utils.ex b/lib/pleroma/web/metadata/utils.ex
index 3c0dfb6ad..a519fbf01 100644
--- a/lib/pleroma/web/metadata/utils.ex
+++ b/lib/pleroma/web/metadata/utils.ex
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.Metadata.Utils do
alias Pleroma.Activity
alias Pleroma.Emoji
alias Pleroma.Formatter
+ alias Pleroma.HTML
def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do
content
@@ -21,8 +22,9 @@ defmodule Pleroma.Web.Metadata.Utils do
def scrub_html_and_truncate(content, max_length \\ 200) when is_binary(content) do
content
|> Emoji.Formatter.demojify()
+ |> HTML.filter_tags(Pleroma.HTML.Scrubber.BreaksOnly)
|> HtmlEntities.decode()
- |> String.replace(~r/<br\s?\/?>/, " ")
+ |> String.replace(~r/<br\s?\/?>/, "&#10;&#13;")
|> Formatter.truncate(max_length)
end