diff options
author | Ekaterina Vaartis <vaartis@kotobank.ch> | 2022-08-27 01:43:59 +0300 |
---|---|---|
committer | Ekaterina Vaartis <vaartis@kotobank.ch> | 2022-10-10 20:19:09 +0300 |
commit | 5a39866388c411f2bcee9848352f8c420513f34f (patch) | |
tree | 313f2b8e5ae64e1d5e3df6312e816ef855456ed3 /priv/scrubbers | |
parent | 6256822afd368e5f6b410d47c5ff9b584e50a461 (diff) | |
download | pleroma-5a39866388c411f2bcee9848352f8c420513f34f.tar.gz pleroma-5a39866388c411f2bcee9848352f8c420513f34f.zip |
Specifically strip mentions for search indexing
Diffstat (limited to 'priv/scrubbers')
-rw-r--r-- | priv/scrubbers/search_indexing.ex | 24 |
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 |