sphinx_rtd_theme
sphinx_rtd_theme copied to clipboard
Version switch appears even though I only have one version
An empty switcher (I don't know if language or version) is now appearing on https://ukcovid19inquiry.dracos.co.uk/ even though I only have one version and one language:
The docs at https://sphinx-rtd-theme.readthedocs.io/en/stable/configuring.html#confval-version_selector say "It only appears when there are more than 1 active version." and "It only appears when there is more than 1 active language."
I presumably can set version_selector and language_selector to False in the config, but the documentation made me think I did not have to do this. (I have already removed display_version as my builds started failing.)
IIRC, we decided to always show the version selector, even if there was only one version to keep consistency when there were more than one and also to show the name of the current version, but I'm not 100% sure. If that's the case, we should update the documentation. @agjohnson what should be the correct behavior here?
So, it should be showing the current active version in your project, but I saw there may be an error in the API response because .versions.active == [], but .versions.current.active == true. Your project should have at least one active version, otherwise it shouldn't serve that version 🤔
$ curl -s 'https://ukcovid19inquiry.dracos.co.uk/_/addons/?client-version=0.18.0&api-version=1&project-slug=uk-covid19-inquiry-hearings&version-slug=latest' | jq '.versions'
{
"active": [],
"current": {
"active": true,
"aliases": [],
"built": true,
"downloads": {},
"hidden": false,
"id": 16390072,
"identifier": "main",
"privacy_level": "public",
"ref": null,
"slug": "latest",
"type": "branch",
"urls": {
"dashboard": {
"edit": "https://readthedocs.org/projects/uk-covid19-inquiry-hearings/version/latest/edit/"
},
"documentation": "https://ukcovid19inquiry.dracos.co.uk/",
"vcs": "https://github.com/dracos/uk-covid19-inquiry/tree/main/"
},
"verbose_name": "latest"
}
}
Yeah, I feel we'd always want the version there for consistency. If we do away with anything, it could just be a string without the dropdown icon, but I feel this text should always be there if the feature is enabled on the theme.
We should make sure the documentation communicates how to disable these dropdowns if the project doesn't want them.
I took a deeper look at this and I was able to find the bug in the API response. I opened a PR to fix this issue at https://github.com/readthedocs/readthedocs.org/pull/11727 and it will be deployed next week.
With that change, your project should look like our own documentation:
From this issue there are other extra tasks we can work on:
- [ ] update the documentation to mention this selector will be always shown, instead of "It only appears when there are more than 1 active version."
- [ ] decide what's the correct behavior when there is only one active version: show the dropdown or only a fixed/regular string
- [ ] take into account #1624 on these updates
This is already fixed and it will be deployed in the next week.
The fix is deployed and it's working as expected.