diff options
Diffstat (limited to 'lib/pleroma/docs/json.ex')
-rw-r--r-- | lib/pleroma/docs/json.ex | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/pleroma/docs/json.ex b/lib/pleroma/docs/json.ex new file mode 100644 index 000000000..6508a7bdb --- /dev/null +++ b/lib/pleroma/docs/json.ex @@ -0,0 +1,24 @@ +defmodule Pleroma.Docs.JSON do + @behaviour Pleroma.Docs.Generator + + @spec process(keyword()) :: {:ok, String.t()} + def process(descriptions) do + with path <- "docs/generated_config.json", + {:ok, file} <- File.open(path, [:write, :utf8]), + formatted_descriptions <- + Pleroma.Docs.Generator.convert_to_strings(descriptions), + json <- Jason.encode!(formatted_descriptions), + :ok <- IO.write(file, json), + :ok <- File.close(file) do + {:ok, path} + end + end + + def compile do + with config <- Pleroma.Config.Loader.load("config/description.exs") do + config[:pleroma][:config_description] + |> Pleroma.Docs.Generator.convert_to_strings() + |> Jason.encode!() + end + end +end |