From de5948b1af7d479cae0dc993e88e95c5738fc543 Mon Sep 17 00:00:00 2001 From: Aaron Markham Date: Fri, 18 Jan 2019 14:41:53 -0800 Subject: [PATCH] Version switching user experience improvements (#13921) * fix version switching for anchors and search * improved redirects * fix bug for dev previews; remove hardcoded protocol --- docs/_static/js/docversion.js | 13 ++++++++----- docs/_static/searchtools_custom.js | 4 ++-- docs/build_version_doc/artifacts/.htaccess | 10 +++------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/docs/_static/js/docversion.js b/docs/_static/js/docversion.js index 1119f4ec1fff..320179854448 100644 --- a/docs/_static/js/docversion.js +++ b/docs/_static/js/docversion.js @@ -18,16 +18,19 @@ */ /* Set the version of the website */ -function setVersion(){ - let doc = window.location.pathname.match(/^\/(api\/.*)$/) || window.location.pathname.match(/^\/versions\/[^*]+\/(api\/.*)$/); +function setVersion(anchor){ + if (arguments.length==0) { + anchor = window.location.hash + }; + let doc = window.location.pathname.match(/^\/versions\/[^\/]+\/([^*]+.*)$/); if (doc) { if (document.getElementById('dropdown-menu-position-anchor-version')) { versionNav = $('#dropdown-menu-position-anchor-version a.main-nav-link'); $(versionNav).each( function( index, el ) { currLink = $( el ).attr('href'); - version = currLink.match(/\/versions\/([0-9.master]+)\//); + version = currLink.match(/\/versions\/([^\/]+)\//); if (version) { - versionedDoc = '/versions/' + version[1] + '/' + doc[1] + (window.location.hash || ''); + versionedDoc = '/versions/' + version[1] + '/' + doc[1] + (anchor || '') + (window.location.search || ''); $( el ).attr('href', versionedDoc); } }); @@ -40,5 +43,5 @@ $(document).ready(function () { }); $('a.reference.internal').click(function(){ - setVersion(); + setVersion($(this).attr("href")); }); diff --git a/docs/_static/searchtools_custom.js b/docs/_static/searchtools_custom.js index 5f8c30a24f10..adeb0c2ab68e 100644 --- a/docs/_static/searchtools_custom.js +++ b/docs/_static/searchtools_custom.js @@ -457,7 +457,7 @@ var Search = { highlightstring + item[2]).html(item[1])); } else { // normal html builders - var baseURL = 'https://' + window.location.hostname + '/'; + var baseURL = window.location.protocol + '//' + window.location.hostname + '/'; var urlHref = window.location.href; let urlSplits = urlHref.split("/"); let versionString = ''; @@ -570,7 +570,7 @@ var Search = { } Search.title.text(_('Search Results')); if (!resultCount) - Search.status.text(_('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); + Search.status.text(_('Your search did not match any documents in this version of the documentation. You can use the dropdown selector in the navigation bar to try another version. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.')); else Search.status.text(_('Search finished, found %s page(s) matching the search query.').replace('%s', resultCount)); Search.status.fadeIn(500); diff --git a/docs/build_version_doc/artifacts/.htaccess b/docs/build_version_doc/artifacts/.htaccess index 6bf3a659ce55..798fe92a0733 100644 --- a/docs/build_version_doc/artifacts/.htaccess +++ b/docs/build_version_doc/artifacts/.htaccess @@ -4,15 +4,11 @@ RewriteRule ^get_started/why_mxnet.html$ %{ENV:default_version}/faq/why_mxnet.ht RewriteRule ^get_started.*$ %{ENV:default_version}/install/ [R=301,L] RewriteRule ^how_to.*$ %{ENV:default_version}/faq/ [R=301,L] RewriteRule ^api/python/symbol.html$ %{ENV:default_version}/api/python/symbol/symbol.html [R=301,L] -RewriteRule ^community/index.html$ %{ENV:default_version}/community/contribute.html [R=301,L] +RewriteRule ^(?:versions\/[^\/]+\/)?community/index.html$ %{ENV:default_version}/community/contribute.html [R=301,L] # Navigation bar redirects to latest info -RewriteRule ^versions\/[0-9.]+\/architecture/(.*)$ %{ENV:default_version}/architecture/$1 [R=301,L] -RewriteRule ^versions\/[0-9.]+\/community/(.*)$ %{ENV:default_version}/community/$1 [R=301,L] -RewriteRule ^versions\/[0-9.]+\/faq/(.*)$ %{ENV:default_version}/faq/$1 [R=301,L] -RewriteRule ^versions\/[0-9.]+\/gluon/(.*)$ %{ENV:default_version}/gluon/$1 [R=301,L] -RewriteRule ^versions\/[0-9.]+\/install/(.*)$ %{ENV:default_version}/install/$1 [R=301,L] -RewriteRule ^versions\/[0-9.]+\/tutorials/(.*)$ %{ENV:default_version}/tutorials/$1 [R=301,L] +RewriteCond %{ENV:default_version}#\/$1 !^([^#]+)#\1$ +RewriteRule ^(versions\/[^\/]+)?(?:\/)?(faq|community|install|gluon|tutorials|architecture)(.*)?$ %{ENV:default_version}/$2$3 [R=301,L] # Redirect navbar APIs that did not exist RewriteRule ^versions/0.11.0/api/python/contrib/onnx.html %{ENV:default_version}/error/api.html [R=301,L]