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"