24
1
mirror of https://github.com/processone/ejabberd.git synced 2024-06-08 21:43:07 +02:00

Use new shorthand to provide URLs relative to ejabberd Docs

This commit is contained in:
Badlop 2024-03-14 12:38:03 +01:00
parent 569f0b303b
commit 8be6dc7758
18 changed files with 50 additions and 56 deletions

View File

@ -131,7 +131,7 @@ get_commands_spec() ->
"only on log files generated by some modules.\n" "only on log files generated by some modules.\n"
"This can be useful when an external tool is " "This can be useful when an external tool is "
"used for log rotation. See " "used for log rotation. See "
"[Log Files](https://docs.ejabberd.im/admin/guide/troubleshooting/#log-files).", "_`../../admin/guide/troubleshooting.md#log-files|Log Files`_.",
policy = admin, policy = admin,
module = ?MODULE, function = reopen_log, module = ?MODULE, function = reopen_log,
args = [], result = {res, rescode}}, args = [], result = {res, rescode}},

View File

@ -81,7 +81,7 @@
get_commands_spec() -> get_commands_spec() ->
[ [
#ejabberd_commands{name = oauth_issue_token, tags = [oauth], #ejabberd_commands{name = oauth_issue_token, tags = [oauth],
desc = "Issue an [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) token for the given jid", desc = "Issue an _`oauth.md|OAuth`_ token for the given jid",
module = ?MODULE, function = oauth_issue_token, module = ?MODULE, function = oauth_issue_token,
args = [{jid, string},{ttl, integer}, {scopes, string}], args = [{jid, string},{ttl, integer}, {scopes, string}],
policy = restricted, policy = restricted,
@ -92,7 +92,7 @@ get_commands_spec() ->
result = {result, {tuple, [{token, string}, {scopes, string}, {expires_in, string}]}} result = {result, {tuple, [{token, string}, {scopes, string}, {expires_in, string}]}}
}, },
#ejabberd_commands{name = oauth_issue_token, tags = [oauth], #ejabberd_commands{name = oauth_issue_token, tags = [oauth],
desc = "Issue an [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) token for the given jid", desc = "Issue an _`oauth.md|OAuth`_ optionredir token for the given jid",
module = ?MODULE, function = oauth_issue_token, module = ?MODULE, function = oauth_issue_token,
version = 1, version = 1,
note = "updated in 24.02", note = "updated in 24.02",
@ -105,7 +105,7 @@ get_commands_spec() ->
result = {result, {tuple, [{token, string}, {scopes, {list, {scope, string}}}, {expires_in, string}]}} result = {result, {tuple, [{token, string}, {scopes, {list, {scope, string}}}, {expires_in, string}]}}
}, },
#ejabberd_commands{name = oauth_list_tokens, tags = [oauth], #ejabberd_commands{name = oauth_list_tokens, tags = [oauth],
desc = "List [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) tokens, user, scope, and seconds to expire (only Mnesia)", desc = "List _`oauth.md|OAuth`_ tokens, user, scope, and seconds to expire (only Mnesia)",
longdesc = "List OAuth tokens, their user and scope, and how many seconds remain until expirity", longdesc = "List OAuth tokens, their user and scope, and how many seconds remain until expirity",
module = ?MODULE, function = oauth_list_tokens, module = ?MODULE, function = oauth_list_tokens,
args = [], args = [],
@ -113,7 +113,7 @@ get_commands_spec() ->
result = {tokens, {list, {token, {tuple, [{token, string}, {user, string}, {scope, string}, {expires_in, string}]}}}} result = {tokens, {list, {token, {tuple, [{token, string}, {user, string}, {scope, string}, {expires_in, string}]}}}}
}, },
#ejabberd_commands{name = oauth_revoke_token, tags = [oauth], #ejabberd_commands{name = oauth_revoke_token, tags = [oauth],
desc = "Revoke authorization for an [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) token", desc = "Revoke authorization for an _`oauth.md|OAuth`_ token",
note = "changed in 22.05", note = "changed in 22.05",
module = ?MODULE, function = oauth_revoke_token, module = ?MODULE, function = oauth_revoke_token,
args = [{token, binary}], args = [{token, binary}],
@ -122,7 +122,7 @@ get_commands_spec() ->
result_desc = "Result code" result_desc = "Result code"
}, },
#ejabberd_commands{name = oauth_add_client_password, tags = [oauth], #ejabberd_commands{name = oauth_add_client_password, tags = [oauth],
desc = "Add [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) client_id with password grant type", desc = "Add _`oauth.md|OAuth`_ client_id with password grant type",
module = ?MODULE, function = oauth_add_client_password, module = ?MODULE, function = oauth_add_client_password,
args = [{client_id, binary}, args = [{client_id, binary},
{client_name, binary}, {client_name, binary},
@ -131,7 +131,7 @@ get_commands_spec() ->
result = {res, restuple} result = {res, restuple}
}, },
#ejabberd_commands{name = oauth_add_client_implicit, tags = [oauth], #ejabberd_commands{name = oauth_add_client_implicit, tags = [oauth],
desc = "Add [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) client_id with implicit grant type", desc = "Add _`oauth.md|OAuth`_ client_id with implicit grant type",
module = ?MODULE, function = oauth_add_client_implicit, module = ?MODULE, function = oauth_add_client_implicit,
args = [{client_id, binary}, args = [{client_id, binary},
{client_name, binary}, {client_name, binary},
@ -140,7 +140,7 @@ get_commands_spec() ->
result = {res, restuple} result = {res, restuple}
}, },
#ejabberd_commands{name = oauth_remove_client, tags = [oauth], #ejabberd_commands{name = oauth_remove_client, tags = [oauth],
desc = "Remove [OAuth](https://docs.ejabberd.im/developer/ejabberd-api/oauth/) client_id", desc = "Remove _`oauth.md|OAuth`_ client_id",
module = ?MODULE, function = oauth_remove_client, module = ?MODULE, function = oauth_remove_client,
args = [{client_id, binary}], args = [{client_id, binary}],
policy = restricted, policy = restricted,

View File

@ -37,13 +37,13 @@ doc() ->
#{value => "[Options, ...]", #{value => "[Options, ...]",
desc => desc =>
?T("The option for listeners configuration. See the " ?T("The option for listeners configuration. See the "
"http://../listen/[Listen Modules] section " "_`listen.md|Listen Modules`_ section "
"for details.")}}, "for details.")}},
{modules, {modules,
#{value => "{Module: Options}", #{value => "{Module: Options}",
desc => desc =>
?T("The option for modules configuration. See " ?T("The option for modules configuration. See "
"http://../modules/[Modules] section " "_`modules.md|Modules`_ section "
"for details.")}}, "for details.")}},
{loglevel, {loglevel,
#{value => #{value =>
@ -221,7 +221,7 @@ doc() ->
#{value => "{AccessName: {allow|deny: ACLRules|ACLName}}", #{value => "{AccessName: {allow|deny: ACLRules|ACLName}}",
desc => desc =>
?T("This option defines " ?T("This option defines "
"http://../basic/#access-rules[Access Rules]. " "_`basic.md#access-rules|Access Rules`_. "
"Each access rule is " "Each access rule is "
"assigned a name that can be referenced from other parts " "assigned a name that can be referenced from other parts "
"of the configuration file (mostly from 'access' options of " "of the configuration file (mostly from 'access' options of "
@ -255,7 +255,7 @@ doc() ->
{acme, {acme,
#{value => ?T("Options"), #{value => ?T("Options"),
desc => desc =>
?T("http://../basic/#acme[ACME] configuration, to automatically " ?T("_`basic.md#acme|ACME`_ configuration, to automatically "
"obtain SSL certificates for the domains served by ejabberd, " "obtain SSL certificates for the domains served by ejabberd, "
"which means that certificate requests and renewals are " "which means that certificate requests and renewals are "
"performed to some CA server (aka \"ACME server\") in a fully " "performed to some CA server (aka \"ACME server\") in a fully "
@ -303,8 +303,8 @@ doc() ->
#{value => "true | false", #{value => "true | false",
desc => desc =>
?T("Whether to allow installation of third-party modules or not. " ?T("Whether to allow installation of third-party modules or not. "
"See https://docs.ejabberd.im/developer/extending-ejabberd/modules/#ejabberd-contrib" "See _`../../developer/extending-ejabberd/modules.md#ejabberd-contrib|ejabberd-contrib`_ "
"[ejabberd-contrib] documentation section. " "documentation section. "
"The default value is 'true'.")}}, "The default value is 'true'.")}},
{allow_multiple_connections, {allow_multiple_connections,
#{value => "true | false", #{value => "true | false",
@ -328,8 +328,7 @@ doc() ->
desc => desc =>
?T("Define the permissions for API access. Please consult the " ?T("Define the permissions for API access. Please consult the "
"ejabberd Docs web -> For Developers -> ejabberd ReST API -> " "ejabberd Docs web -> For Developers -> ejabberd ReST API -> "
"https://docs.ejabberd.im/developer/ejabberd-api/permissions/" "_`../../developer/ejabberd-api/permissions.md|API Permissions`_.")}},
"[API Permissions].")}},
{append_host_config, {append_host_config,
#{value => "{Host: Options}", #{value => "{Host: Options}",
desc => desc =>
@ -373,7 +372,7 @@ doc() ->
note => "improved in 20.01", note => "improved in 20.01",
desc => desc =>
[?T("The option defines in what format the users passwords " [?T("The option defines in what format the users passwords "
"are stored, plain text or in http://../authentication/#scram[SCRAM] format:"), "", "are stored, plain text or in _`authentication.md#scram|SCRAM`_ format:"), "",
?T("* 'plain': The password is stored as plain text " ?T("* 'plain': The password is stored as plain text "
"in the database. This is risky because the passwords " "in the database. This is risky because the passwords "
"can be read if your database gets compromised. " "can be read if your database gets compromised. "
@ -392,7 +391,7 @@ doc() ->
{auth_scram_hash, {auth_scram_hash,
#{value => "sha | sha256 | sha512", #{value => "sha | sha256 | sha512",
desc => desc =>
?T("Hash algorithm that should be used to store password in http://../authentication/#scram[SCRAM] format. " ?T("Hash algorithm that should be used to store password in _`authentication.md#scram|SCRAM`_ format. "
"You shouldn't change this if you already have passwords generated with " "You shouldn't change this if you already have passwords generated with "
"a different algorithm - users that have such passwords will not be able " "a different algorithm - users that have such passwords will not be able "
"to authenticate. The default value is 'sha'.")}}, "to authenticate. The default value is 'sha'.")}},
@ -418,7 +417,7 @@ doc() ->
"corresponding JID(s) in 'subjectAltName' field. " "corresponding JID(s) in 'subjectAltName' field. "
"There is no default value."), "", "There is no default value."), "",
?T("You can use _`host_config`_ to specify this option per-vhost."), "", ?T("You can use _`host_config`_ to specify this option per-vhost."), "",
?T("To set a specific file per listener, use the listener's http://../listen-options/#cafile[cafile] option. Please notice that 'c2s_cafile' overrides the listener's 'cafile' option."), "" ?T("To set a specific file per listener, use the listener's _`listen-options.md#cafile|cafile`_ option. Please notice that 'c2s_cafile' overrides the listener's 'cafile' option."), ""
]}}, ]}},
{c2s_ciphers, {c2s_ciphers,
#{value => "[Cipher, ...]", #{value => "[Cipher, ...]",
@ -468,7 +467,7 @@ doc() ->
#{value => ?T("Path | ModuleName"), #{value => ?T("Path | ModuleName"),
note => "improved in 23.01", note => "improved in 23.01",
desc => desc =>
?T("Full path to a script that generates http://../basic/#captcha[CAPTCHA] images. " ?T("Full path to a script that generates _`basic.md#captcha|CAPTCHA`_ images. "
"'@VERSION@' is replaced with ejabberd version number in 'XX.YY' format. " "'@VERSION@' is replaced with ejabberd version number in 'XX.YY' format. "
"'@SEMVER@' is replaced with ejabberd version number in semver format " "'@SEMVER@' is replaced with ejabberd version number in semver format "
"when compiled with Elixir's mix, or XX.YY format otherwise. " "when compiled with Elixir's mix, or XX.YY format otherwise. "
@ -481,7 +480,7 @@ doc() ->
{captcha_limit, {captcha_limit,
#{value => "pos_integer() | infinity", #{value => "pos_integer() | infinity",
desc => desc =>
?T("Maximum number of http://../basic/#captcha[CAPTCHA] generated images per minute for " ?T("Maximum number of _`basic.md#captcha|CAPTCHA`_ generated images per minute for "
"any given JID. The option is intended to protect the server " "any given JID. The option is intended to protect the server "
"from CAPTCHA DoS. The default value is 'infinity'.")}}, "from CAPTCHA DoS. The default value is 'infinity'.")}},
{captcha_host, {captcha_host,
@ -491,7 +490,7 @@ doc() ->
#{value => ?T("URL | auto | undefined"), #{value => ?T("URL | auto | undefined"),
note => "improved in 23.04", note => "improved in 23.04",
desc => desc =>
?T("An URL where http://../basic/#captcha[CAPTCHA] requests should be sent. NOTE: you need " ?T("An URL where _`basic.md#captcha|CAPTCHA`_ requests should be sent. NOTE: you need "
"to configure 'request_handlers' for 'ejabberd_http' listener " "to configure 'request_handlers' for 'ejabberd_http' listener "
"as well. " "as well. "
"If set to 'auto', it builds the URL using a 'request_handler' " "If set to 'auto', it builds the URL using a 'request_handler' "
@ -696,8 +695,8 @@ doc() ->
note => "added in 23.10", note => "added in 23.10",
desc => desc =>
?T("Modules to install from " ?T("Modules to install from "
"https://docs.ejabberd.im/developer/extending-ejabberd/modules/#ejabberd-contrib" "_`../../developer/extending-ejabberd/modules.md#ejabberd-contrib|ejabberd-contrib`_ "
"[ejabberd-contrib] at start time. " "at start time. "
"The default value is an empty list of modules: '[]'.")}}, "The default value is an empty list of modules: '[]'.")}},
{jwt_auth_only_rule, {jwt_auth_only_rule,
#{value => ?T("AccessName"), #{value => ?T("AccessName"),
@ -1156,7 +1155,7 @@ doc() ->
{s2s_access, {s2s_access,
#{value => ?T("Access"), #{value => ?T("Access"),
desc => desc =>
?T("This http://../basic/#access-rules[Access Rule] defines to " ?T("This _`basic.md#access-rules|Access Rule`_ defines to "
"what remote servers can s2s connections be established. " "what remote servers can s2s connections be established. "
"The default value is 'all'; no restrictions are applied, it is" "The default value is 'all'; no restrictions are applied, it is"
" allowed to connect s2s to/from all remote servers.")}}, " allowed to connect s2s to/from all remote servers.")}},

View File

@ -410,6 +410,5 @@ listen_options() ->
" method may be removed in a future ejabberd release. You are " " method may be removed in a future ejabberd release. You are "
"encouraged to define ejabberd_xmlrpc inside request_handlers " "encouraged to define ejabberd_xmlrpc inside request_handlers "
"option of ejabberd_http listen module. See the ejabberd " "option of ejabberd_http listen module. See the ejabberd "
"documentation for details: https://docs.ejabberd.im/admin/" "documentation for details: _`/admin/configuration/listen/#ejabberd-xmlrpc|ejabberd_xmlrpc listener`_.", []),
"configuration/listen/#ejabberd-xmlrpc", []),
[]. [].

View File

@ -632,6 +632,6 @@ mod_doc() ->
#{desc => #{desc =>
?T("This module can be used to update existing SQL database " ?T("This module can be used to update existing SQL database "
"from the default to the new schema. Check the section " "from the default to the new schema. Check the section "
"http://../database/#default-and-new-schemas[Default and New Schemas] for details. " "_`database.md#default-and-new-schemas|Default and New Schemas`_ for details. "
"Please note that only MS SQL, MySQL, and PostgreSQL are supported. " "Please note that only MS SQL, MySQL, and PostgreSQL are supported. "
"When the module is loaded use _`update_sql`_ API.")}. "When the module is loaded use _`update_sql`_ API.")}.

View File

@ -301,6 +301,6 @@ mod_doc() ->
desc => desc =>
?T("Whether to generate CAPTCHA or not in response to " ?T("Whether to generate CAPTCHA or not in response to "
"messages from strangers. See also section " "messages from strangers. See also section "
"http://../#captcha" "_`basic.md#captcha|CAPTCHA`_"
"[CAPTCHA] of the Configuration Guide. " " of the Configuration Guide. "
"The default value is 'false'.")}}]}. "The default value is 'false'.")}}]}.

View File

@ -256,9 +256,9 @@ mod_doc() ->
?T("Several options were improved in ejabberd 22.05."), "", ?T("Several options were improved in ejabberd 22.05."), "",
?T("To use this module, in addition to adding it to the 'modules' " ?T("To use this module, in addition to adding it to the 'modules' "
"section, you must also enable it in 'listen' -> 'ejabberd_http' -> " "section, you must also enable it in 'listen' -> 'ejabberd_http' -> "
"http://../listen-options/#request_handlers[request_handlers]."), "", "_`listen-options.md#request_handlers|request_handlers`_."), "",
?T("Make sure either 'mod_bosh' or 'ejabberd_http_ws' " ?T("Make sure either 'mod_bosh' or 'ejabberd_http_ws' "
"http://../listen-options/#request_handlers[request_handlers] " "_`listen-options.md#request_handlers|request_handlers`_ "
"are enabled."), "", "are enabled."), "",
?T("When 'conversejs_css' and 'conversejs_script' are 'auto', " ?T("When 'conversejs_css' and 'conversejs_script' are 'auto', "
"by default they point to the public Converse client.") "by default they point to the public Converse client.")

View File

@ -214,7 +214,7 @@ mod_doc() ->
?T("This module is available since ejabberd 22.05."), "", ?T("This module is available since ejabberd 22.05."), "",
?T("To use this module, in addition to adding it to the 'modules' " ?T("To use this module, in addition to adding it to the 'modules' "
"section, you must also enable it in 'listen' -> 'ejabberd_http' -> " "section, you must also enable it in 'listen' -> 'ejabberd_http' -> "
"http://../listen-options/#request_handlers[request_handlers]."), "", "_`listen-options.md#request_handlers|request_handlers`_."), "",
?T("Notice it only works if ejabberd_http has tls enabled.")], ?T("Notice it only works if ejabberd_http has tls enabled.")],
example => example =>
["listen:", ["listen:",

View File

@ -534,11 +534,11 @@ mod_options(_) ->
mod_doc() -> mod_doc() ->
#{desc => #{desc =>
[?T("This module provides a ReST interface to call " [?T("This module provides a ReST interface to call "
"https://docs.ejabberd.im/developer/ejabberd-api[ejabberd API] " "_`../../developer/ejabberd-api/index.md|ejabberd API`_ "
"commands using JSON data."), "", "commands using JSON data."), "",
?T("To use this module, in addition to adding it to the 'modules' " ?T("To use this module, in addition to adding it to the 'modules' "
"section, you must also enable it in 'listen' -> 'ejabberd_http' -> " "section, you must also enable it in 'listen' -> 'ejabberd_http' -> "
"http://../listen-options/#request_handlers[request_handlers]."), "", "_`listen-options.md#request_handlers|request_handlers`_."), "",
?T("To use a specific API version N, when defining the URL path " ?T("To use a specific API version N, when defining the URL path "
"in the request_handlers, add a 'vN'. " "in the request_handlers, add a 'vN'. "
"For example: '/api/v2: mod_http_api'"), "", "For example: '/api/v2: mod_http_api'"), "",

View File

@ -234,7 +234,7 @@ mod_doc() ->
"another URL from which that file can later be downloaded."), "", "another URL from which that file can later be downloaded."), "",
?T("In order to use this module, it must be enabled " ?T("In order to use this module, it must be enabled "
"in 'listen' -> 'ejabberd_http' -> " "in 'listen' -> 'ejabberd_http' -> "
"http://../listen-options/#request_handlers[request_handlers].")], "_`listen-options.md#request_handlers|request_handlers`_.")],
opts => opts =>
[{host, [{host,
#{desc => ?T("Deprecated. Use 'hosts' instead.")}}, #{desc => ?T("Deprecated. Use 'hosts' instead.")}},

View File

@ -108,9 +108,7 @@ mod_doc() ->
"the MIX protocol is going to replace the MUC protocol " "the MIX protocol is going to replace the MUC protocol "
"in the future (see _`mod_muc`_)."), "", "in the future (see _`mod_muc`_)."), "",
?T("To learn more about how to use that feature, you can refer to " ?T("To learn more about how to use that feature, you can refer to "
"our tutorial: https://docs.ejabberd.im/tutorials/mix-010/" "our tutorial: _`../../tutorials/mix-010.md|Getting started with MIX`_"), "",
"[Getting started with XEP-0369: Mediated Information "
"eXchange (MIX) v0.1]."), "",
?T("The module depends on _`mod_mam`_.")], ?T("The module depends on _`mod_mam`_.")],
opts => opts =>
[{access_create, [{access_create,

View File

@ -282,7 +282,7 @@ listen_options() ->
mod_doc() -> mod_doc() ->
#{desc => #{desc =>
?T("This module adds " ?T("This module adds "
"https://docs.ejabberd.im/admin/guide/mqtt/[support for the MQTT] " "_`../guide/mqtt/index.md|support for the MQTT`_ "
"protocol version '3.1.1' and '5.0'. Remember to configure " "protocol version '3.1.1' and '5.0'. Remember to configure "
"'mod_mqtt' in 'modules' and 'listen' sections."), "'mod_mqtt' in 'modules' and 'listen' sections."),
opts => opts =>

View File

@ -1732,7 +1732,7 @@ mod_doc() ->
?T("When a user tries to join a room where they have no " ?T("When a user tries to join a room where they have no "
"affiliation (not owner, admin or member), the room " "affiliation (not owner, admin or member), the room "
"requires them to fill a CAPTCHA challenge (see section " "requires them to fill a CAPTCHA challenge (see section "
"http://../#captcha[CAPTCHA] " "_`basic.md#captcha|CAPTCHA`_ "
"in order to accept their join in the room. " "in order to accept their join in the room. "
"The default value is 'false'.")}}, "The default value is 'false'.")}},
{description, {description,
@ -1824,8 +1824,7 @@ mod_doc() ->
#{value => "true | false", #{value => "true | false",
desc => desc =>
?T("Allow users to subscribe to room events as described in " ?T("Allow users to subscribe to room events as described in "
"https://docs.ejabberd.im/developer/xmpp-clients-bots/extensions/muc-sub/" "_`../../developer/xmpp-clients-bots/extensions/muc-sub.md|Multi-User Chat Subscriptions`_. "
"[Multi-User Chat Subscriptions]. "
"The default value is 'false'.")}}, "The default value is 'false'.")}},
{title, {title,
#{value => ?T("Room Title"), #{value => ?T("Room Title"),

View File

@ -1247,8 +1247,8 @@ mod_doc() ->
"are currently open."), "", "are currently open."), "",
?T("NOTE: 'ejabberdctl' has a command to " ?T("NOTE: 'ejabberdctl' has a command to "
"delete expired messages (see chapter " "delete expired messages (see chapter "
"https://docs.ejabberd.im/admin/guide/managing" "_`../guide/managing.md|Managing an ejabberd server`_ "
"[Managing an ejabberd server] in online documentation.")], "in online documentation.")],
opts => opts =>
[{access_max_user_messages, [{access_max_user_messages,
#{value => ?T("AccessName"), #{value => ?T("AccessName"),

View File

@ -671,7 +671,7 @@ mod_doc() ->
{captcha_protected, {captcha_protected,
#{value => "true | false", #{value => "true | false",
desc => desc =>
?T("Protect registrations with http://../basic/#captcha[CAPTCHA]. " ?T("Protect registrations with _`basic.md#captcha|CAPTCHA`_. "
"The default is 'false'.")}}, "The default is 'false'.")}},
{ip_access, {ip_access,
#{value => ?T("AccessName"), #{value => ?T("AccessName"),

View File

@ -615,7 +615,7 @@ mod_doc() ->
?T("- Register a new account on the server."), "", ?T("- Register a new account on the server."), "",
?T("- Change the password from an existing account on the server."), "", ?T("- Change the password from an existing account on the server."), "",
?T("- Unregister an existing account on the server."), "", ?T("- Unregister an existing account on the server."), "",
?T("This module supports http://../basic/#captcha[CAPTCHA] " ?T("This module supports _`basic.md#captcha|CAPTCHA`_ "
"to register a new account. " "to register a new account. "
"To enable this feature, configure the " "To enable this feature, configure the "
"top-level _`captcha_cmd`_ and " "top-level _`captcha_cmd`_ and "
@ -625,7 +625,7 @@ mod_doc() ->
"important to include the last / character in the URL, " "important to include the last / character in the URL, "
"otherwise the subpages URL will be incorrect."), "", "otherwise the subpages URL will be incorrect."), "",
?T("This module is enabled in 'listen' -> 'ejabberd_http' -> " ?T("This module is enabled in 'listen' -> 'ejabberd_http' -> "
"http://../listen-options/#request_handlers[request_handlers], " "_`listen-options.md#request_handlers|request_handlers`_, "
"no need to enable in 'modules'."), "no need to enable in 'modules'."),
?T("The module depends on _`mod_register`_ where all the " ?T("The module depends on _`mod_register`_ where all the "
"configuration is performed.")], "configuration is performed.")],

View File

@ -678,10 +678,10 @@ mod_doc() ->
?T("- Connection parameters: The module also accepts the " ?T("- Connection parameters: The module also accepts the "
"connection parameters, all of which default to the top-level " "connection parameters, all of which default to the top-level "
"parameter of the same name, if unspecified. " "parameter of the same name, if unspecified. "
"See http://../ldap/#ldap-connection[LDAP Connection] " "See _`ldap.md#ldap-connection|LDAP Connection`_ "
"section for more information about them."), "", "section for more information about them."), "",
?T("Check also the http://../ldap/#ldap-examples" ?T("Check also the _`ldap.md#ldap-examples|Configuration examples`_ "
"[Configuration examples] section to get details about " "section to get details about "
"retrieving the roster, " "retrieving the roster, "
"and configuration examples including Flat DIT and Deep DIT.")], "and configuration examples including Flat DIT and Deep DIT.")],
opts => opts =>
@ -710,13 +710,13 @@ mod_doc() ->
"name of roster entries (usually full names of people in " "name of roster entries (usually full names of people in "
"the roster). See also the parameters 'ldap_userdesc' and " "the roster). See also the parameters 'ldap_userdesc' and "
"'ldap_useruid'. For more information check the LDAP " "'ldap_useruid'. For more information check the LDAP "
"http://../ldap/#filters[Filters] section.")}}, "_`ldap.md#filters|Filters`_ section.")}},
{ldap_filter, {ldap_filter,
#{desc => #{desc =>
?T("Additional filter which is AND-ed together " ?T("Additional filter which is AND-ed together "
"with \"User Filter\" and \"Group Filter\". " "with \"User Filter\" and \"Group Filter\". "
"For more information check the LDAP " "For more information check the LDAP "
"http://../ldap/#filters[Filters] section.")}}, "_`ldap.md#filters|Filters`_ section.")}},
%% Attributes: %% Attributes:
{ldap_groupattr, {ldap_groupattr,
#{desc => #{desc =>
@ -774,8 +774,7 @@ mod_doc() ->
#{desc => #{desc =>
?T("A regex for extracting user ID from the value of the " ?T("A regex for extracting user ID from the value of the "
"attribute named by 'ldap_memberattr'. Check the LDAP " "attribute named by 'ldap_memberattr'. Check the LDAP "
"http://../ldap/#control-parameters" "_`ldap.md#control-parameters|Control Parameters`_ section.")}},
"[Control Parameters] section.")}},
{ldap_auth_check, {ldap_auth_check,
#{value => "true | false", #{value => "true | false",
desc => desc =>

View File

@ -383,7 +383,7 @@ mod_doc() ->
?T("NOTE: It is not enough to just load this module. " ?T("NOTE: It is not enough to just load this module. "
"You should also configure listeners and DNS records " "You should also configure listeners and DNS records "
"properly. For details see the section about the " "properly. For details see the section about the "
"http://../listen/#ejabberd_sip[ejabberd_sip] listen module " "_`listen.md#ejabberd_sip|ejabberd_sip`_ listen module "
"in the ejabberd Documentation.")], "in the ejabberd Documentation.")],
opts => opts =>
[{always_record_route, [{always_record_route,