diff options
author | Hélène <pleroma-dev@helene.moe> | 2022-08-23 14:49:05 +0200 |
---|---|---|
committer | Hélène <pleroma-dev@helene.moe> | 2022-09-03 17:17:48 +0200 |
commit | 4477c6baff6ea3c17ceca5d9113960b5b78d5ac3 (patch) | |
tree | 4c7d2e4195f54f911a1137c856250f92eb0b8188 /lib/pleroma | |
parent | 257601d67d00ffd351d01164dc085d3cbd167e9c (diff) | |
download | pleroma-4477c6baff6ea3c17ceca5d9113960b5b78d5ac3.tar.gz |
Metadata/Utils: use summary as description if set
When generating OpenGraph and TwitterCard metadata for a post, the
summary field will be used first if it is set to generate the post
description.
Diffstat (limited to 'lib/pleroma')
-rw-r--r-- | lib/pleroma/web/metadata/utils.ex | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/lib/pleroma/web/metadata/utils.ex b/lib/pleroma/web/metadata/utils.ex index 8052eaa44..15414a988 100644 --- a/lib/pleroma/web/metadata/utils.ex +++ b/lib/pleroma/web/metadata/utils.ex @@ -8,8 +8,8 @@ defmodule Pleroma.Web.Metadata.Utils do alias Pleroma.Formatter alias Pleroma.HTML - def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do - content + defp scrub_html_and_truncate_object_field(field, object) do + field # html content comes from DB already encoded, decode first and scrub after |> HtmlEntities.decode() |> String.replace(~r/<br\s?\/?>/, " ") @@ -19,6 +19,17 @@ defmodule Pleroma.Web.Metadata.Utils do |> Formatter.truncate() end + def scrub_html_and_truncate(%{data: %{"summary" => summary}} = object) + when is_binary(summary) and summary != "" do + summary + |> scrub_html_and_truncate_object_field(object) + end + + def scrub_html_and_truncate(%{data: %{"content" => content}} = object) do + content + |> scrub_html_and_truncate_object_field(object) + end + def scrub_html_and_truncate(content, max_length \\ 200) when is_binary(content) do content |> scrub_html |