[docs] Add ability to redirect based on input path. (#23851)
This commit is contained in:
parent
41dbb4c86c
commit
282253a7e0
2 changed files with 87 additions and 2 deletions
|
@ -2,11 +2,22 @@
|
||||||
import DefaultTheme from 'vitepress/theme'
|
import DefaultTheme from 'vitepress/theme'
|
||||||
import { useRouter } from 'vitepress'
|
import { useRouter } from 'vitepress'
|
||||||
import { onBeforeMount } from 'vue';
|
import { onBeforeMount } from 'vue';
|
||||||
|
import aliases from "../../../../docs/_aliases.json";
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
onBeforeMount(async () => {
|
onBeforeMount(async () => {
|
||||||
if (window.location.href.includes('/#/')) {
|
// Convert from docsify-style to vitepress-style URLs
|
||||||
const newUrl = window.location.href.replace(/\/#\//, '/').replace(/\?id=/, '#');
|
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);
|
window.history.replaceState({}, '', newUrl);
|
||||||
await router.go(newUrl);
|
await router.go(newUrl);
|
||||||
}
|
}
|
||||||
|
|
74
docs/_aliases.json
Normal file
74
docs/_aliases.json
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
{
|
||||||
|
"/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",
|
||||||
|
"/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"
|
||||||
|
}
|
Loading…
Reference in a new issue