Skip to content

Implement intersphinx entries web viewer (devtools?) #8211

@webknjaz

Description

@webknjaz

Is your feature request related to a problem? Please describe.

I'm often frustrated when I need to reference things from other sphinx sites. While I know about python -m sphinx.ext.intersphinx https://docs.python.org/3/objects.inv, it is not very user-friendly. It tries to represent a lot of columns with data making the console output hard to follow.

For example, it's easy to find some name with less or grep but then it's also easy to miss the role name because it appears only once before a bunch of entries. This is known to create some extra confusion (#6659).

Describe the solution you'd like

I think a better alternative for a CLI command w/o args would be a web-based view.

It's pretty easy to represent it as an HTML table. Also, it'd be possible to add some extra filtering, search, and even usage example.

I see two options of what could be done:

  1. Add a built-in web-page into the docs that exposes everything present on the current website (just another representation for objects.inv). This is useful for others trying to link against this site.
  2. Another option is to have some way of serving a web-interface on the client-side (a project that links against others). This would basically have multiple intersphinx targets (as specified in conf.py) shown as a web UI.

Describe alternatives you've considered

I've already mentioned this elsewhere (#6659 (comment)) — I've made a simple site based on GitHub Actions workflow just for myself that takes a bunch of intersphinx links and generates static HTML pages. It is very simple but it should be a good demo of why this is useful — https://webknjaz.github.io/intersphinx-untangled.

(src: https://github.com/webknjaz/intersphinx-untangled)

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions