From 21fbcb3760532a7c55e048a1799934ba82997909 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 16:24:10 +1000 Subject: [PATCH 1/6] [docs] Add ability to redirect based on input path. --- builddefs/docsgen/.vitepress/theme/QMKLayout.vue | 16 ++++++++++++++-- docs/_aliases.json | 3 +++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 docs/_aliases.json diff --git a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue index 30d0780d7c31..a0c446c94c56 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); + while (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 000000000000..0a8e99e93136 --- /dev/null +++ b/docs/_aliases.json @@ -0,0 +1,3 @@ +{ + "/feature_audio": "/features/audio" +} From d3a8a91b38d2071c24fa9e8b559e32cdaac8d22d Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 16:43:07 +1000 Subject: [PATCH 2/6] Test multilevel redirects. --- docs/_aliases.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/_aliases.json b/docs/_aliases.json index 0a8e99e93136..472460a61359 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -1,3 +1,9 @@ { + "/a": "/b", + "/b": "/c", + "/c": "/d", + "/d": "/e", + "/e": "/newbs_external_userspace", + "/feature_audio": "/features/audio" } From fb95052126315c273fe9459ee320f244bb9b8046 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 19:13:43 +1000 Subject: [PATCH 3/6] Rest of the redirects from previous PR. --- docs/_aliases.json | 67 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 61 insertions(+), 6 deletions(-) diff --git a/docs/_aliases.json b/docs/_aliases.json index 472460a61359..993d0d023bbc 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -1,9 +1,64 @@ { - "/a": "/b", - "/b": "/c", - "/c": "/d", - "/d": "/e", - "/e": "/newbs_external_userspace", + "/___a": "/___b", + "/___b": "/___c", + "/___c": "/___d", + "/___d": "/___e", + "/___e": "/newbs_external_userspace", - "/feature_audio": "/features/audio" + "/adc_driver": "/drivers/adc", + "/apa102_driver": "/drivers/apa102", + "/audio_driver": "/drivers/audio", + "/eeprom_driver": "/drivers/eeprom", + "/feature_audio": "/features/audio", + "/feature_auto_shift": "/features/auto_shift", + "/feature_autocorrect": "/features/autocorrect", + "/feature_backlight": "/features/backlight", + "/feature_bluetooth": "/features/bluetooth", + "/feature_bootmagic": "/features/bootmagic", + "/feature_caps_word": "/features/caps_word", + "/feature_combo": "/features/combo", + "/feature_command": "/features/command", + "/feature_digitizer": "/features/digitizer", + "/feature_dip_switch": "/features/dip_switch", + "/feature_dynamic_macros": "/features/dynamic_macros", + "/feature_encoders": "/features/encoders", + "/feature_grave_esc": "/features/grave_esc", + "/feature_haptic_feedback": "/features/haptic_feedback", + "/feature_hd44780": "/features/hd44780", + "/feature_joystick": "/features/joystick", + "/feature_key_lock": "/features/key_lock", + "/feature_key_overrides": "/features/key_overrides", + "/feature_leader_key": "/features/leader_key", + "/feature_led_indicators": "/features/led_indicators", + "/feature_led_matrix": "/features/led_matrix", + "/feature_midi": "/features/midi", + "/feature_mouse_keys": "/features/mouse_keys", + "/feature_oled_driver": "/features/oled_driver", + "/feature_os_detection": "/features/os_detection", + "/feature_pointing_device": "/features/pointing_device", + "/feature_programmable_button": "/features/programmable_button", + "/feature_ps2_mouse": "/features/ps2_mouse", + "/feature_rawhid": "/features/rawhid", + "/feature_repeat_key": "/features/repeat_key", + "/feature_rgb_matrix": "/features/rgb_matrix", + "/feature_rgblight": "/features/rgblight", + "/feature_secure": "/features/secure", + "/feature_send_string": "/features/send_string", + "/feature_sequencer": "/features/sequencer", + "/feature_space_cadet": "/features/space_cadet", + "/feature_split_keyboard": "/features/split_keyboard", + "/feature_st7565": "/features/st7565", + "/feature_stenography": "/features/stenography", + "/feature_swap_hands": "/features/swap_hands", + "/feature_tap_dance": "/features/tap_dance", + "/feature_tri_layer": "/features/tri_layer", + "/feature_unicode": "/features/unicode", + "/feature_wpm": "/features/wpm", + "/flash_driver": "/drivers/flash", + "/gpio_control": "/drivers/gpio", + "/i2c_driver": "/drivers/i2c", + "/serial_driver": "/drivers/serial", + "/spi_driver": "/drivers/spi", + "/uart_driver": "/drivers/uart", + "/ws2812_driver": "/drivers/ws2812" } From 7d4e6f0fc583898e8c2bb800f2984bce6dacca9d Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 19:16:49 +1000 Subject: [PATCH 4/6] Add redirects from old docsify list. --- docs/_aliases.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/_aliases.json b/docs/_aliases.json index 993d0d023bbc..35e824668368 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -5,6 +5,22 @@ "/___d": "/___e", "/___e": "/newbs_external_userspace", + "/adding_a_keyboard_to_qmk": "/hardware_keyboard_guidelines", + "/build_environment_setup": "/newbs_getting_started", + "/cli_dev_configuration": "/cli_configuration", + "/dynamic_macros": "/feature_dynamic_macros", + "/feature_common_shortcuts": "/feature_advanced_keycodes", + "/getting_started_build_tools":"/newbs_getting_started", + "/getting_started_getting_help": "/support", + "/glossary": "/reference_glossary", + "/key_lock": "/feature_key_lock", + "/make_instructions": "/getting_started_make_guide", + "/python_development": "/cli_development", + "/space_cadet_shift": "/feature_space_cadet_shift", + "/tap_dance": "/feature_tap_dance", + "/tutorial":"/newbs", + "/unicode": "/feature_unicode", + "/adc_driver": "/drivers/adc", "/apa102_driver": "/drivers/apa102", "/audio_driver": "/drivers/audio", From d20eaf308f73e9cbed0753a091a1f45b9c3e3376 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 19:18:35 +1000 Subject: [PATCH 5/6] Cleanup. --- builddefs/docsgen/.vitepress/theme/QMKLayout.vue | 1 - docs/_aliases.json | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue index a0c446c94c56..9d7a41f9e2d8 100644 --- a/builddefs/docsgen/.vitepress/theme/QMKLayout.vue +++ b/builddefs/docsgen/.vitepress/theme/QMKLayout.vue @@ -4,7 +4,6 @@ import { useRouter } from 'vitepress' import { onBeforeMount } from 'vue'; import aliases from "../../../../docs/_aliases.json"; - const router = useRouter() onBeforeMount(async () => { // Convert from docsify-style to vitepress-style URLs diff --git a/docs/_aliases.json b/docs/_aliases.json index 35e824668368..e46fcca0b339 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -10,7 +10,7 @@ "/cli_dev_configuration": "/cli_configuration", "/dynamic_macros": "/feature_dynamic_macros", "/feature_common_shortcuts": "/feature_advanced_keycodes", - "/getting_started_build_tools":"/newbs_getting_started", + "/getting_started_build_tools": "/newbs_getting_started", "/getting_started_getting_help": "/support", "/glossary": "/reference_glossary", "/key_lock": "/feature_key_lock", @@ -18,7 +18,7 @@ "/python_development": "/cli_development", "/space_cadet_shift": "/feature_space_cadet_shift", "/tap_dance": "/feature_tap_dance", - "/tutorial":"/newbs", + "/tutorial": "/newbs", "/unicode": "/feature_unicode", "/adc_driver": "/drivers/adc", From 554d347c5bdb858d3827981ef7cacc7b388589af Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Sun, 2 Jun 2024 21:44:01 +1000 Subject: [PATCH 6/6] Remove test redirects. --- docs/_aliases.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docs/_aliases.json b/docs/_aliases.json index e46fcca0b339..a2224bd0d547 100644 --- a/docs/_aliases.json +++ b/docs/_aliases.json @@ -1,10 +1,4 @@ { - "/___a": "/___b", - "/___b": "/___c", - "/___c": "/___d", - "/___d": "/___e", - "/___e": "/newbs_external_userspace", - "/adding_a_keyboard_to_qmk": "/hardware_keyboard_guidelines", "/build_environment_setup": "/newbs_getting_started", "/cli_dev_configuration": "/cli_configuration",