mirror of
https://github.com/processone/ejabberd
synced 2025-10-03 09:49:18 +02:00
ejabberd_doc: Document commands tags for modules
This commit is contained in:
parent
73a8fbdfb5
commit
214b76f763
1 changed files with 33 additions and 2 deletions
|
@ -24,6 +24,7 @@
|
||||||
%% API
|
%% API
|
||||||
-export([man/0, man/1, have_a2x/0]).
|
-export([man/0, man/1, have_a2x/0]).
|
||||||
|
|
||||||
|
-include("ejabberd_commands.hrl").
|
||||||
-include("translate.hrl").
|
-include("translate.hrl").
|
||||||
|
|
||||||
%%%===================================================================
|
%%%===================================================================
|
||||||
|
@ -46,7 +47,8 @@ man(Lang) ->
|
||||||
DocOpts = maps:get(opts, Map, []),
|
DocOpts = maps:get(opts, Map, []),
|
||||||
Example = maps:get(example, Map, []),
|
Example = maps:get(example, Map, []),
|
||||||
Note = maps:get(note, Map, []),
|
Note = maps:get(note, Map, []),
|
||||||
{[{M, Descr, DocOpts, #{example => Example, note => Note}}|Mods], SubMods};
|
Apitags = get_module_apitags(M),
|
||||||
|
{[{M, Descr, DocOpts, #{example => Example, note => Note, apitags => Apitags}}|Mods], SubMods};
|
||||||
#{opts := DocOpts} ->
|
#{opts := DocOpts} ->
|
||||||
{ParentMod, Backend} = strip_backend_suffix(M),
|
{ParentMod, Backend} = strip_backend_suffix(M),
|
||||||
{Mods, dict:append(ParentMod, {M, Backend, DocOpts}, SubMods)};
|
{Mods, dict:append(ParentMod, {M, Backend, DocOpts}, SubMods)};
|
||||||
|
@ -113,7 +115,8 @@ man(Lang) ->
|
||||||
format_versions(Lang, Example) ++ [io_lib:nl()] ++
|
format_versions(Lang, Example) ++ [io_lib:nl()] ++
|
||||||
tr_multi(Lang, Descr) ++ [io_lib:nl()] ++
|
tr_multi(Lang, Descr) ++ [io_lib:nl()] ++
|
||||||
opts_to_man(Lang, [{M, '', DocOpts}|Backends]) ++
|
opts_to_man(Lang, [{M, '', DocOpts}|Backends]) ++
|
||||||
format_example(0, Lang, Example)
|
format_example(0, Lang, Example) ++ [io_lib:nl()] ++
|
||||||
|
format_apitags(Lang, Example)
|
||||||
end, lists:keysort(1, ModDoc1)),
|
end, lists:keysort(1, ModDoc1)),
|
||||||
ListenOptions =
|
ListenOptions =
|
||||||
[io_lib:nl(),
|
[io_lib:nl(),
|
||||||
|
@ -190,6 +193,34 @@ format_versions(_Lang, #{note := Note}) when Note /= [] ->
|
||||||
format_versions(_, _) ->
|
format_versions(_, _) ->
|
||||||
[].
|
[].
|
||||||
|
|
||||||
|
%% @format-begin
|
||||||
|
get_module_apitags(M) ->
|
||||||
|
AllCommands = ejabberd_commands:get_commands_definition(),
|
||||||
|
Tags = [C#ejabberd_commands.tags || C <- AllCommands, C#ejabberd_commands.module == M],
|
||||||
|
TagsClean =
|
||||||
|
lists:sort(
|
||||||
|
misc:lists_uniq(
|
||||||
|
lists:flatten(Tags))),
|
||||||
|
TagsStrings = [atom_to_list(C) || C <- TagsClean],
|
||||||
|
TagFiltering =
|
||||||
|
fun ("internal") ->
|
||||||
|
false;
|
||||||
|
([$v | Rest]) ->
|
||||||
|
{error, no_integer} == string:to_integer(Rest);
|
||||||
|
(_) ->
|
||||||
|
true
|
||||||
|
end,
|
||||||
|
TagsFiltered = lists:filter(TagFiltering, TagsStrings),
|
||||||
|
TagsUrls =
|
||||||
|
[["_`../../developer/ejabberd-api/admin-tags.md#", C, "|", C, "`_"] || C <- TagsFiltered],
|
||||||
|
lists:join(", ", TagsUrls).
|
||||||
|
|
||||||
|
format_apitags(_Lang, #{apitags := TagsString}) when TagsString /= "" ->
|
||||||
|
["**API Tags:** ", TagsString];
|
||||||
|
format_apitags(_, _) ->
|
||||||
|
[].
|
||||||
|
%% @format-end
|
||||||
|
|
||||||
format_desc(Lang, #{desc := Desc}) ->
|
format_desc(Lang, #{desc := Desc}) ->
|
||||||
tr_multi(Lang, Desc).
|
tr_multi(Lang, Desc).
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue