diff --git a/CHANGES b/CHANGES index f6181d90175..341f3029644 100644 --- a/CHANGES +++ b/CHANGES @@ -37,6 +37,8 @@ Features added * #8070: html search: Support searching for 2characters word * #7830: Add debug logs for change detection of sources and templates * #8201: Emit a warning if toctree contains duplicated entries +* Allow to suppress "duplicated ToC entry found" warnings from epub builder using + :confval:`suppress_warnings`. Bugs fixed ---------- diff --git a/doc/usage/configuration.rst b/doc/usage/configuration.rst index b4682dd21bd..5421e029596 100644 --- a/doc/usage/configuration.rst +++ b/doc/usage/configuration.rst @@ -316,6 +316,7 @@ General configuration * ``toc.circular`` * ``toc.secnum`` * ``epub.unknown_project_files`` + * ``epub.duplicated_toc_entry`` * ``autosectionlabel.*`` You can choose from these types. @@ -340,6 +341,11 @@ General configuration Added ``autosectionlabel.*`` + + .. versionchanged:: 3.2.2 + + Added ``epub.duplicated_toc_entry`` + .. confval:: needs_sphinx If set to a ``major.minor`` version string like ``'1.1'``, Sphinx will diff --git a/sphinx/builders/_epub_base.py b/sphinx/builders/_epub_base.py index 7a2c102072e..6a2b312d90a 100644 --- a/sphinx/builders/_epub_base.py +++ b/sphinx/builders/_epub_base.py @@ -213,7 +213,12 @@ def check_refnodes(self, nodes: List[Dict[str, Any]]) -> None: appeared = set() # type: Set[str] for node in nodes: if node['refuri'] in appeared: - logger.warning(__('duplicated ToC entry found: %s'), node['refuri']) + logger.warning( + __('duplicated ToC entry found: %s'), + node['refuri'], + type="epub", + subtype="duplicated_toc_entry", + ) else: appeared.add(node['refuri'])