diff --git a/docs/.vitepress/config.mjs b/docs/.vitepress/config.mjs index 0571be397e..e5d0387699 100644 --- a/docs/.vitepress/config.mjs +++ b/docs/.vitepress/config.mjs @@ -1,4 +1,5 @@ import { defineConfig } from "vitepress"; +import navbarData from "./navbar.json"; const getSidebar = require("./get_sidebar.js"); import openEditor from "open-editor"; // Open file locally via edit @@ -159,7 +160,9 @@ export default defineConfig({ */ }, - nav: [], + dynamicNavUrl: + "https://raw.githubusercontent.com/PX4/PX4-Autopilot/main/docs/.vitepress/navbar.json", + dynamicNavInitial: navbarData.nav, socialLinks: [ { icon: "github", link: "https://github.com/PX4/PX4-Autopilot" }, diff --git a/docs/.vitepress/theme/components/DynamicNav.vue b/docs/.vitepress/theme/components/DynamicNav.vue deleted file mode 100644 index e8d0be8a86..0000000000 --- a/docs/.vitepress/theme/components/DynamicNav.vue +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - diff --git a/docs/.vitepress/theme/index.js b/docs/.vitepress/theme/index.js index 3b90032959..169336981c 100644 --- a/docs/.vitepress/theme/index.js +++ b/docs/.vitepress/theme/index.js @@ -20,7 +20,7 @@ if (inBrowser) { // Support redirect plugin import Redirect from "./components/Redirect.vue"; -import DynamicNav from "./components/DynamicNav.vue"; +import { createDynamicNav } from "vp-dynamic-nav"; // Tabs: https://github.com/Red-Asuka/vitepress-plugin-tabs import { Tab, Tabs } from "vue3-tabs-component"; @@ -28,14 +28,7 @@ import "@red-asuka/vitepress-plugin-tabs/dist/style.css"; /** @type {import('vitepress').Theme} */ export default { - extends: DefaultTheme, - Layout: () => { - return h(DefaultTheme.Layout, null, { - // https://vitepress.dev/guide/extending-default-theme#layout-slots - "nav-bar-content-before": () => h(DynamicNav), - "nav-screen-content-after": () => h(DynamicNav, { screen: true }), - }); - }, + extends: createDynamicNav(DefaultTheme), enhanceApp({ app, router, siteData }) { app.component("Redirect", Redirect); //Redirect plugin //Tabs: https://github.com/Red-Asuka/vitepress-plugin-tabs diff --git a/docs/package.json b/docs/package.json index 04372fad4a..a315afb7bd 100644 --- a/docs/package.json +++ b/docs/package.json @@ -23,6 +23,7 @@ "medium-zoom": "^1.1.0", "open-editor": "^5.0.0", "vitepress": "^1.6.3", + "vp-dynamic-nav": "^0.0.1", "vue3-tabs-component": "^1.3.7" }, "devDependencies": { diff --git a/docs/yarn.lock b/docs/yarn.lock index 6ddf996df4..44b9aef100 100644 --- a/docs/yarn.lock +++ b/docs/yarn.lock @@ -1747,6 +1747,11 @@ vitepress@^1.6.3: vite "^5.4.14" vue "^3.5.13" +vp-dynamic-nav@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/vp-dynamic-nav/-/vp-dynamic-nav-0.0.1.tgz#4e3f803343d3457a262b5498b06ed2c6172da247" + integrity sha512-7FnKerBRMsqfVLWKPrm7sFFhFIXEbMJY6X1HJ17CvrEacL1al1UXFfXcMB+Vi9o0xdHOMU0e7N6kQQXAfjyLRA== + vue3-tabs-component@^1.3.7: version "1.3.7" resolved "https://registry.yarnpkg.com/vue3-tabs-component/-/vue3-tabs-component-1.3.7.tgz#b6cc2d3909eeec0bd82b571029050731f6e4ce64"