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
|
||||
-export([man/0, man/1, have_a2x/0]).
|
||||
|
||||
-include("ejabberd_commands.hrl").
|
||||
-include("translate.hrl").
|
||||
|
||||
%%%===================================================================
|
||||
|
@ -46,7 +47,8 @@ man(Lang) ->
|
|||
DocOpts = maps:get(opts, Map, []),
|
||||
Example = maps:get(example, 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} ->
|
||||
{ParentMod, Backend} = strip_backend_suffix(M),
|
||||
{Mods, dict:append(ParentMod, {M, Backend, DocOpts}, SubMods)};
|
||||
|
@ -113,7 +115,8 @@ man(Lang) ->
|
|||
format_versions(Lang, Example) ++ [io_lib:nl()] ++
|
||||
tr_multi(Lang, Descr) ++ [io_lib:nl()] ++
|
||||
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)),
|
||||
ListenOptions =
|
||||
[io_lib:nl(),
|
||||
|
@ -190,6 +193,34 @@ format_versions(_Lang, #{note := Note}) when Note /= [] ->
|
|||
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}) ->
|
||||
tr_multi(Lang, Desc).
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue