Hello Bradley! It is generally as you said. Actually, these web-safe anchors are generated by Docutils, not Sphinx. Firstly, by nodes.make_id() function (https://repo.or.cz/docutils.git/blob/refs/heads/master:/docutils/docutils/nodes.py#l2232). In case of collision, "id1" anchors are coming from here https://repo.or.cz/docutils.git/blob/refs/heads/master:/docutils/docutils/nodes.py#l1423. I would not say it is a part of public API but is unlikely to be changed.
You might also consider setting explicit labels before titles. Either, manually .. _my-custom-label: Title ##### .. _set-to-anything-1: Heading 1 ********* Or, using an autosectionlabel builtin extension (https://www.sphinx-doc.org/en/master/usage/extensions/autosectionlabel.html). -- Matt https://techwriter.documatt.com > On 27. 12. 2021, at 12:10, bradley...@gmail.com <bradley.m.b...@gmail.com> > wrote: > > I want to generate links from web pages that are not generated by sphinx, > to headings and sub-headings in web pages that are generated by sphinx. > > I have noticed that sphinx automatically generates anchors for such links. > For example, using sphinx v4.1.2, if the test_link.rst file contains the text > > Title > ##### > > Heading 1 > ********* > > Heading 2 > ********* > > Heading-2 > ********* > > The the file test_link.hmtl generated by sphinx will contain the following > link anchor for the headings in test_link.html: > > Title: href="#title" > Heading 1: href="#heading-1" > Heading 2: href="#heading-2" > Heading-2: href="#id1" > > It seems that the heading text has been converted to lower case and that > spaces ' ' have been converted to dashes '-'. It also seems if a conversion > would yield the same value as a previous coversion, then a numbered id, that > increases by one each time it is needed, is used for the link. > > 1. Are these conversion rules for link anchors correct ? > > 2. Are there ther conversion rules; e.g., other times that the numbered ids > are inserted (and hence increase by one). > > 2. Are these rules part of the sphinx API; i.e., will it be the same in > future versions of sphinx ? > > -- > You received this message because you are subscribed to the Google Groups > "sphinx-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sphinx-users+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sphinx-users/fb03ed68-56ee-4611-af6b-a246bb7c7bben%40googlegroups.com. -- You received this message because you are subscribed to the Google Groups "sphinx-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to sphinx-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sphinx-users/B89696F2-2DDE-48FD-A610-926A4C40D2CC%40documatt.com.