summaryrefslogtreecommitdiff
path: root/priv/scrubbers
diff options
context:
space:
mode:
authorEkaterina Vaartis <vaartis@kotobank.ch>2022-08-27 01:43:59 +0300
committerEkaterina Vaartis <vaartis@kotobank.ch>2022-10-10 20:19:09 +0300
commit5a39866388c411f2bcee9848352f8c420513f34f (patch)
tree313f2b8e5ae64e1d5e3df6312e816ef855456ed3 /priv/scrubbers
parent6256822afd368e5f6b410d47c5ff9b584e50a461 (diff)
downloadpleroma-5a39866388c411f2bcee9848352f8c420513f34f.tar.gz
pleroma-5a39866388c411f2bcee9848352f8c420513f34f.zip
Specifically strip mentions for search indexing
Diffstat (limited to 'priv/scrubbers')
-rw-r--r--priv/scrubbers/search_indexing.ex24
1 files changed, 24 insertions, 0 deletions
diff --git a/priv/scrubbers/search_indexing.ex b/priv/scrubbers/search_indexing.ex
new file mode 100644
index 000000000..02756ab79
--- /dev/null
+++ b/priv/scrubbers/search_indexing.ex
@@ -0,0 +1,24 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.HTML.Scrubber.SearchIndexing do
+ @moduledoc """
+ An HTML scrubbing policy that scrubs things for searching.
+ """
+
+ require FastSanitize.Sanitizer.Meta
+ alias FastSanitize.Sanitizer.Meta
+
+ # Explicitly remove mentions
+ def scrub({:a, attrs, children}) do
+ if(Enum.any?(attrs, fn {att, val} -> att == "class" and String.contains?(val, "mention") end),
+ do: nil,
+ # Strip the tag itself, leave only children (text, presumably)
+ else: children
+ )
+ end
+
+ Meta.strip_comments()
+ Meta.strip_everything_not_covered()
+end