diff options
author | stwf <steven.fuchs@dockyard.com> | 2020-05-12 11:08:00 -0400 |
---|---|---|
committer | stwf <steven.fuchs@dockyard.com> | 2020-05-29 14:15:24 -0400 |
commit | d67b302810c53d92ace7c347c77eecc10be6bcd6 (patch) | |
tree | d278d3be9def4c5c9492ad20c000188aef2fa3df /lib/pleroma/web/preload.ex | |
parent | 219d2b3146ee72abc0bb8bd163c0ddcd986988fc (diff) | |
download | pleroma-d67b302810c53d92ace7c347c77eecc10be6bcd6.tar.gz |
preload data into index.html
Diffstat (limited to 'lib/pleroma/web/preload.ex')
-rw-r--r-- | lib/pleroma/web/preload.ex | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/pleroma/web/preload.ex b/lib/pleroma/web/preload.ex new file mode 100644 index 000000000..c2211c597 --- /dev/null +++ b/lib/pleroma/web/preload.ex @@ -0,0 +1,30 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Preload do + alias Phoenix.HTML + require Logger + + def build_tags(_conn, params) do + preload_data = + Enum.reduce(Pleroma.Config.get([__MODULE__, :providers], []), %{}, fn parser, acc -> + Map.merge(acc, parser.generate_terms(params)) + end) + + rendered_html = + preload_data + |> Jason.encode!() + |> build_script_tag() + |> HTML.safe_to_string() + + rendered_html + end + + def build_script_tag(content) do + HTML.Tag.content_tag(:script, HTML.raw(content), + id: "initial-results", + type: "application/json" + ) + end +end |