diff --git a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue index 30d0780d7c..563978bee3 100644 --- a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue +++ b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue @@ -2,11 +2,23 @@ import DefaultTheme from 'vitepress/theme' import { useRouter } from 'vitepress' import { onBeforeMount } from 'vue'; +import aliases from "../../../../docs/_aliases.json"; + const router = useRouter() onBeforeMount(async () => { - if (window.location.href.includes('/#/')) { - const newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#'); + // Convert from docsify-style to vitepress-style URLs + let newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#'); + + // Convert any aliases + let testUrl = new URL(newUrl); + if (testUrl.pathname in aliases) { + testUrl.pathname = aliases[testUrl.pathname]; + newUrl = testUrl.toString(); + } + + // Redirect if required + if (newUrl != window.location.href) { window.history.replaceState({}, '', newUrl); await router.go(newUrl); } diff --git a/docs/_aliases.json b/docs/_aliases.json new file mode 100644 index 0000000000..0a8e99e931 --- /dev/null +++ b/docs/_aliases.json @@ -0,0 +1,3 @@ +{ + "/feature_audio": "/features/audio" +}