diff options
Diffstat (limited to 'static/js/redirect.js')
| -rw-r--r-- | static/js/redirect.js | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/static/js/redirect.js b/static/js/redirect.js new file mode 100644 index 00000000..e11560d1 --- /dev/null +++ b/static/js/redirect.js @@ -0,0 +1,36 @@ +// @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT + +// Client-side redirects for fragments (anchors) +// +// It should be possible to do this with server-side redirects, but it was never implemented or +// standardized. For reference: +// +// https://www.w3.org/People/Bos/redirect +// https://www.w3.org/Protocols/HTTP/Fragment/draft-bos-http-redirect-00.txt + +const redirects = new Map([ + ["/#device-support", "/faq#device-support"], + ["/#roadmap", "/faq#roadmap"], + ["/#copyright-and-licensing", "/faq#copyright-and-licensing"], + ["/usage#default-connections", "/faq#default-connections"], + ["/releases#marlin-stable", "/faq#legacy-devices"], + ["/releases#sailfish-stable", "/faq#legacy-devices"], + ["/releases#marlin-beta", "/faq#legacy-devices"], + ["/releases#sailfish-beta", "/faq#legacy-devices"], + ["/faq#dns", "/faq#custom-dns"], + ["/build#upgrading-to-android-10", "/build#generating-release-signing-keys"], +]); + +function handle_hash() { + if (window.location.hash) { + const redirect = redirects.get(window.location.pathname + window.location.hash); + if (redirect) { + window.location.replace(redirect); + } + } +} + +handle_hash(); +addEventListener("hashchange", handle_hash, false); + +// @license-end |
