diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst index 71b29324d16..3464af8a13c 100644 --- a/doc/usage/configuration.rst +++ b/doc/usage/configuration.rst @@ -1070,6 +1070,12 @@ that use Sphinx's HTMLWriter class. This can now be a string to select the actual text of the link. Previously, only boolean values were accepted. +.. confval:: html_add_permalinks_html + + The text for the permalink can also be specified as an HTML string. If both + ``html_add_permalinks`` and ``html_add_permalinks_html`` are specified, + ``html_add_permalinks_html`` wins. + .. confval:: html_sidebars Custom sidebar templates, must be a dictionary that maps document names to diff --git a/sphinx/builders/html/__init__.py b/sphinx/builders/html/__init__.py index 626f173f543..32405639b28 100644 --- a/sphinx/builders/html/__init__.py +++ b/sphinx/builders/html/__init__.py @@ -1202,6 +1202,7 @@ def setup(app: Sphinx) -> Dict[str, Any]: app.add_config_value('html_additional_pages', {}, 'html') app.add_config_value('html_domain_indices', True, 'html', [list]) app.add_config_value('html_add_permalinks', '¶', 'html') + app.add_config_value('html_add_permalinks_html', None, 'html') app.add_config_value('html_use_index', True, 'html') app.add_config_value('html_split_index', False, 'html') app.add_config_value('html_copy_source', True, 'html') diff --git a/sphinx/writers/html.py b/sphinx/writers/html.py index deed9891c1a..b487554b11c 100644 --- a/sphinx/writers/html.py +++ b/sphinx/writers/html.py @@ -95,6 +95,8 @@ def __init__(self, document: nodes.document, builder: Builder) -> None: if not isinstance(self.permalink_text, str): self.permalink_text = '¶' if self.permalink_text else '' self.permalink_text = self.encode(self.permalink_text) + if self.config.html_add_permalinks_html: + self.permalink_text = self.config.html_add_permalinks_html self.secnumber_suffix = self.config.html_secnumber_suffix self.param_separator = '' self.optional_param_level = 0 diff --git a/sphinx/writers/html5.py b/sphinx/writers/html5.py index 9cbd50f6c07..c982d52e443 100644 --- a/sphinx/writers/html5.py +++ b/sphinx/writers/html5.py @@ -69,6 +69,8 @@ def __init__(self, document: nodes.document, builder: Builder) -> None: if not isinstance(self.permalink_text, str): self.permalink_text = '¶' if self.permalink_text else '' self.permalink_text = self.encode(self.permalink_text) + if self.config.html_add_permalinks_html: + self.permalink_text = self.config.html_add_permalinks_html self.secnumber_suffix = self.config.html_secnumber_suffix self.param_separator = '' self.optional_param_level = 0