Hi,

I wrote something like this in Python to link to documentation from the
application.

The script is here:

https://developer.blender.org/diffusion/BDT/browse/master/utils_doc/rna_manual_reference_updater.py

And it outputs this:

https://developer.blender.org/diffusion/BA/browse/master/modules/rna_manual_reference.py

This could easily be adapted to be a json output. If you do this,
https://github.com/bskinn/sphobjinv will be your friend.

On Fri, Mar 8, 2019, 3:28 PM Gert van Dijk <[email protected]> wrote:

> On Friday, 8 March 2019 17:52:50 UTC+1, Rex East wrote:
>>
>> OK thanks, I will try that!
>>
>> On Thursday, March 7, 2019 at 2:03:50 AM UTC+9, Stefano David wrote:
>>>
>>>
>>>
>>> On Wednesday, 6 March 2019 15:55:58 UTC+1, Rex East wrote:
>>>>
>>>> Hi, I have a Sphinx project hosted on readthedocs.org. I want a way to
>>>> link from outside websites to a particular section in my documentation. And
>>>> I need it to be stable -- currently the URLs to sections look like this:
>>>>
>>>>
>>>> https://mysite.readthedocs.io/en/latest/models.html#built-in-fields-and-methods
>>>>
>>>>
>>>> But that URL is generated from the text of the section header,
>>>> "Built-in fields and methods". The link will break if I edit the section
>>>> heading or move that section to a different file in the documentation (not
>>>> models.rst).
>>>>
>>>> Inside the project, I can use cross-references like:
>>>>
>>>> .. _FOO:
>>>>
>>>> and then
>>>>
>>>> :ref:`FOO`
>>>>
>>>> Which is great, but I cannot find a way to put these cross-references
>>>> in URLs. Any suggestions?
>>>>
>>>
>>> Assuming that the .. _FOO: label is in file models.rst, which in HTML
>>> becomes models.html, you can always reference is from the outside using
>>> https://mysite.readthedocs.io/en/latest/models.html#FOO, because any
>>> label will become an id="" in the HTML. If a particular section of the
>>> documentation is so important, add to it a label.
>>>
>>> In the case you move the content to another file, then my only idea is
>>> to keep the .. _FOO: label also in models.rst and eihter: 1) instead of the
>>> old content write something like "moved to new section" with a link or 2)
>>> add a javascript to models.html only, to (silently) redirect to the correct
>>> page.
>>>
>>> HTH,
>>> Stefano
>>>
>>
> Given that explicit section titles should/must be unique per Sphinx source
> directory (or else you'll see a warning), I wonder if we could do something
> more clever: use the intersphinx mapping file (objects.inv)
> <https://www.sphinx-doc.org/en/2.0/usage/extensions/intersphinx.html> to
> locate the cross reference and redirect the user to the new location.
> Either a web server extension could do that, or, we could produce a JSON
> variant of the intersphinx file and let some javascript redirect you to the
> right page if the anchor is not already on the current page. :-)
>
> Both approaches have their pros and cons, I think. Perhaps somebody
> already started on something like this?
>
> HTH
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/sphinx-users.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sphinx-users.
For more options, visit https://groups.google.com/d/optout.

Reply via email to