Skip to content

Incorrect HTML anchors generated by singlehtml builder #14221

Description

@etrian-dev

Describe the bug

Using the singlehtml builder to generate index.html from the example below produces invalid internal HTML anchors having multiple # characters in them with certain combinations of glossaries and toctree inclusions. In the reproducer below, there is an index.rst file with a toctree that includes two glossary files in separate documents, each with their own glossary item definition. An equivalent behavior can be observed also by using .. include to include the files directly. The build command is sphinx-build -b singlehtml . _build/foo and the HTML file is tested with html5validator --root _build/foo --show-warnings. Issue #13037 might be related.

How to Reproduce

conf.py:

project = 'Glossary Test'
extensions = []

index.rst:

Main Documentation
==================

Welcome to the documentation.

.. toctree::
   :maxdepth: 2

   ch1
   glossary/term1
   glossary/term2

with the glossary files being trivial items:

.. glossary::

   API
      Lorem Ipsum.

The generate document contains:

<a class="reference internal" href="#document-glossary/term1#term-API"><span class="xref std std-term">API</span></a>

Environment Information

Platform:              linux; (Linux-6.14.0-37-generic-x86_64-with-glibc2.39)
Python version:        3.12.3 (main, Nov  6 2025, 13:44:16) [GCC 13.3.0])
Python implementation: CPython
Sphinx version:        9.0.4
Docutils version:      0.21.2
Jinja2 version:        3.1.4
Pygments version:      2.19.2

Sphinx extensions

None

Additional context

Some build warnings are generated, but they should not affect the outcome of the test

writing... /home/nicola/test-sphinx/index.rst:6: WARNING: toctree contains reference to document 'glossary/term1' that doesn't have a title: no link will be generated [toc.no_title]
/home/nicola/test-sphinx/index.rst:6: WARNING: toctree contains reference to document 'glossary/term2' that doesn't have a title: no link will be generated [toc.no_title]
/home/nicola/test-sphinx/index.rst:6: WARNING: toctree contains reference to document 'glossary/term1' that doesn't have a title: no link will be generated [toc.no_title]
/home/nicola/test-sphinx/index.rst:6: WARNING: toctree contains reference to document 'glossary/term2' that doesn't have a title: no link will be generated [toc.no_title]

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions