Fix 404 error when docs version switching #2735
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue
When switching from
main
(generally later - a branch that has a new documentation style = a single doc per function/class/module) to an older style documentation the error - 404 page not found - appears.Description
e.g. from: https://flower.dev/docs/framework/main/en/ref-api/flwr.driver.html#module-flwr.driver
when the version gets switched to 1.6 - then such a page does not exist
Proposal
Fall back to the reference section of the index.html when the page cannot be found.
Explanation
Employ a dynamic check:
If the page exists (in the requested new version),
change to it;
elseif the page does not exist
fall back to the reference section in the idex.html.
A javascript function is created to handle the check. (not the local testing might be harder because the
newUrl
prefix is fixed as https://flower.dev/docs/framework/ (see function in versioning).Note that coming back from the old version, to the new version
e.g. from https://flower.dev/docs/framework/v1.5.0/en/ref-api-flwr.html#module-flwr.server
to main (currently only the jump to main can be tested since that's the only version with the new type of docs), currently works by redirecting to the https://flower.dev/docs/framework/main/en/ref-api/flwr.html (which is the entry point of the documentation). I don't know why that mechanism works.