aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/mix/tasks/pleroma/docs.ex6
-rw-r--r--lib/pleroma/docs/generator.ex (renamed from lib/pleroma/docs/formatter.ex)6
-rw-r--r--lib/pleroma/docs/json.ex5
-rw-r--r--lib/pleroma/docs/markdown.ex36
4 files changed, 36 insertions, 17 deletions
diff --git a/lib/mix/tasks/pleroma/docs.ex b/lib/mix/tasks/pleroma/docs.ex
index d68e02383..821ee74f9 100644
--- a/lib/mix/tasks/pleroma/docs.ex
+++ b/lib/mix/tasks/pleroma/docs.ex
@@ -8,11 +8,11 @@ defmodule Mix.Tasks.Pleroma.Docs do
Supports two formats: `markdown` and `json`.
- ## Generate markdown docs
+ ## Generate Markdown docs
`mix pleroma.docs`
- ## Generate json docs
+ ## Generate JSON docs
`mix pleroma.docs json`s
"""
@@ -30,7 +30,7 @@ defmodule Mix.Tasks.Pleroma.Docs do
{descriptions, _paths} = Mix.Config.eval!("config/description.exs")
{:ok, file_path} =
- Pleroma.Docs.Formatter.process(
+ Pleroma.Docs.Generator.process(
implementation,
descriptions[:pleroma][:config_description]
)
diff --git a/lib/pleroma/docs/formatter.ex b/lib/pleroma/docs/generator.ex
index a1c757936..e788712cc 100644
--- a/lib/pleroma/docs/formatter.ex
+++ b/lib/pleroma/docs/generator.ex
@@ -1,4 +1,4 @@
-defmodule Pleroma.Docs.Formatter do
+defmodule Pleroma.Docs.Generator do
@callback process(keyword()) :: {:ok, String.t()}
@spec process(module(), keyword()) :: {:ok, String.t()}
@@ -6,6 +6,7 @@ defmodule Pleroma.Docs.Formatter do
implementation.process(descriptions)
end
+ @spec uploaders_list() :: [module()]
def uploaders_list do
{:ok, modules} = :application.get_key(:pleroma, :modules)
@@ -17,6 +18,7 @@ defmodule Pleroma.Docs.Formatter do
end)
end
+ @spec filters_list() :: [module()]
def filters_list do
{:ok, modules} = :application.get_key(:pleroma, :modules)
@@ -27,6 +29,7 @@ defmodule Pleroma.Docs.Formatter do
end)
end
+ @spec mrf_list() :: [module()]
def mrf_list do
{:ok, modules} = :application.get_key(:pleroma, :modules)
@@ -38,6 +41,7 @@ defmodule Pleroma.Docs.Formatter do
end)
end
+ @spec richmedia_parsers() :: [module()]
def richmedia_parsers do
{:ok, modules} = :application.get_key(:pleroma, :modules)
diff --git a/lib/pleroma/docs/json.ex b/lib/pleroma/docs/json.ex
index 38f015017..aed730e78 100644
--- a/lib/pleroma/docs/json.ex
+++ b/lib/pleroma/docs/json.ex
@@ -1,5 +1,7 @@
defmodule Pleroma.Docs.JSON do
- @behaviour Pleroma.Docs.Formatter
+ @behaviour Pleroma.Docs.Generator
+
+ @spec process(keyword()) :: {:ok, String.t()}
def process(descriptions) do
config_path = "docs/generate_config.json"
{:ok, file} = File.open(config_path, [:write])
@@ -9,6 +11,7 @@ defmodule Pleroma.Docs.JSON do
{:ok, config_path}
end
+ @spec generate_json([keyword()]) :: String.t()
def generate_json(descriptions) do
Jason.encode!(descriptions)
end
diff --git a/lib/pleroma/docs/markdown.ex b/lib/pleroma/docs/markdown.ex
index 27a096631..c66640bf1 100644
--- a/lib/pleroma/docs/markdown.ex
+++ b/lib/pleroma/docs/markdown.ex
@@ -1,16 +1,17 @@
defmodule Pleroma.Docs.Markdown do
- @behaviour Pleroma.Docs.Formatter
+ @behaviour Pleroma.Docs.Generator
+ @spec process(keyword()) :: {:ok, String.t()}
def process(descriptions) do
config_path = "docs/config.md"
{:ok, file} = File.open(config_path, [:write])
- IO.write(file, "# Generated configuration\r\n\r\n")
+ IO.write(file, "# Configuration\r\n\r\n")
IO.write(file, "Date of generation: #{Date.utc_today()}\r\n\r\n")
IO.write(
file,
- "This file describe the configuration, it is recommended to edit the relevant *.secret.exs file instead of the others founds in the ``config`` directory.
-If you run Pleroma with ``MIX_ENV=prod`` the file is ``prod.secret.exs``, otherwise it is ``dev.secret.exs``.\r\n\r\n"
+ "This file describe the configuration, it is recommended to edit the relevant `*.secret.exs` file instead of the others founds in the ``config`` directory. \r\n
+ If you run Pleroma with ``MIX_ENV=prod`` the file is ``prod.secret.exs``, otherwise it is ``dev.secret.exs``.\r\n\r\n"
)
for group <- descriptions do
@@ -20,7 +21,6 @@ If you run Pleroma with ``MIX_ENV=prod`` the file is ``prod.secret.exs``, otherw
IO.write(file, "## #{inspect(group[:key])}\r\n\r\n")
end
- IO.write(file, "Type: `#{group[:type]}` \r\n")
IO.write(file, "#{group[:description]} \r\n\r\n")
for child <- group[:children] do
@@ -44,24 +44,36 @@ If you run Pleroma with ``MIX_ENV=prod`` the file is ``prod.secret.exs``, otherw
{:ok, config_path}
end
+ defp print_suggestion(file, suggestion) when is_list(suggestion) do
+ IO.write(file, " `#{inspect(suggestion)}`\r\n")
+ end
+
defp print_suggestion(file, suggestion) when is_function(suggestion) do
IO.write(file, " `#{inspect(suggestion.())}`\r\n")
end
- defp print_suggestion(file, suggestion) do
- IO.write(file, " `#{inspect(suggestion)}`\r\n")
+ defp print_suggestion(file, suggestion, as_list \\ false) do
+ list_mark = if as_list, do: "*", else: ""
+ IO.write(file, " #{list_mark} `#{inspect(suggestion)}`\r\n")
end
+ defp print_suggestions(_file, nil), do: nil
+
defp print_suggestions(file, suggestions) do
- IO.write(file, "Suggestions: \r\n")
+ IO.write(file, " Suggestions: \r\n")
- for suggestion <- suggestions do
- print_suggestion(file, suggestion)
+ if length(suggestions) > 1 do
+ for suggestion <- suggestions do
+ print_suggestion(file, suggestion, true)
+ end
+ else
+ print_suggestion(file, List.first(suggestions))
end
end
defp print_child_header(file, child) do
- IO.write(file, "* `#{inspect(child[:key])}`: #{child[:description]} \r\n")
- IO.write(file, "Type: `#{inspect(child[:type])}` \r\n")
+ IO.write(file, "* `#{inspect(child[:key])}` \r\n")
+ IO.write(file, " #{child[:description]} \r\n")
+ IO.write(file, " Type: `#{inspect(child[:type])}` \r\n")
end
end