1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
defmodule Pleroma.Docs.Markdown do
@behaviour Pleroma.Docs.Formatter
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, "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"
)
for group <- descriptions do
if is_nil(group[:key]) do
IO.write(file, "## #{inspect(group[:group])}\r\n\r\n")
else
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
print_child_header(file, child)
print_suggestions(file, child[:suggestions])
if child[:children] do
for subchild <- child[:children] do
print_child_header(file, subchild)
print_suggestions(file, subchild[:suggestions])
end
end
end
IO.write(file, "\r\n")
end
:ok = File.close(file)
{:ok, config_path}
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")
end
defp print_suggestions(file, suggestions) do
IO.write(file, "Suggestions: \r\n")
for suggestion <- suggestions do
print_suggestion(file, suggestion)
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")
end
end
|