diff --git a/docs/app.vue b/docs/app.vue
index 9851423b..8985b170 100644
--- a/docs/app.vue
+++ b/docs/app.vue
@@ -9,7 +9,6 @@
-
@@ -20,7 +19,7 @@
-
+
@@ -40,24 +39,11 @@ const colorMode = useColorMode()
const { prefix, removePrefixFromNavigation, removePrefixFromFiles } = useContentSource()
const { mapContentNavigation } = useElementsHelpers()
-const { data: navigation } = await useLazyAsyncData('navigation', () => fetchContentNavigation(), {
+const { data: nav } = await useAsyncData('navigation', () => fetchContentNavigation())
+
+const { data: search } = useLazyFetch('/api/search.json', {
default: () => [],
- transform: (navigation) => {
- navigation = navigation.find(link => link._path === prefix.value)?.children || []
-
- return prefix.value === '/main' ? removePrefixFromNavigation(navigation) : navigation
- },
- watch: [prefix]
-})
-
-const { data: files } = await useLazyAsyncData('files', () => queryContent().where({ _type: 'markdown', navigation: { $ne: false } }).find(), {
- default: () => [],
- transform: (files) => {
- files = files.filter(file => file._path.startsWith(prefix.value))
-
- return prefix.value === '/main' ? removePrefixFromFiles(files) : files
- },
- watch: [prefix]
+ server: false
})
const anchors = [{
@@ -78,6 +64,18 @@ const anchors = [{
// Computed
+const navigation = computed(() => {
+ const navigation = nav.value.find(link => link._path === prefix.value)?.children || []
+
+ return prefix.value === '/main' ? removePrefixFromNavigation(navigation) : navigation
+})
+
+const files = computed(() => {
+ const files = search.value.filter(file => file._path.startsWith(prefix.value))
+
+ return prefix.value === '/main' ? removePrefixFromFiles(files) : files
+})
+
const color = computed(() => colorMode.value === 'dark' ? '#18181b' : 'white')
// Head
diff --git a/docs/components/Header.vue b/docs/components/Header.vue
index a3ddf53e..569a99c7 100644
--- a/docs/components/Header.vue
+++ b/docs/components/Header.vue
@@ -21,7 +21,6 @@
-
diff --git a/docs/nuxt.config.ts b/docs/nuxt.config.ts
index 59d476c5..bff0d36b 100644
--- a/docs/nuxt.config.ts
+++ b/docs/nuxt.config.ts
@@ -57,12 +57,15 @@ export default defineNuxtConfig({
},
nitro: {
prerender: {
- routes: ['/getting-started', '/dev/getting-started']
+ // Waiting for https://github.com/nuxt/nuxt/issues/22763
+ concurrency: 1,
+ routes: [
+ '/getting-started',
+ '/dev/getting-started',
+ '/api/search.json'
+ ]
}
},
- experimental: {
- payloadExtraction: false
- },
componentMeta: {
globalsOnly: true,
exclude: [resolve('./components'), resolve('@nuxthq/elements/components')],
@@ -76,5 +79,16 @@ export default defineNuxtConfig({
typescript: {
strict: false,
includeWorkspace: true
+ },
+ hooks: {
+ // TODO: Uncomment after Nuxt v3.7 upgrade
+ // Related to https://github.com/nuxt/nuxt/pull/22558
+ // 'components:extend': (components) => {
+ // components.forEach((component) => {
+ // if (component.global) {
+ // component.global = 'sync'
+ // }
+ // })
+ // }
}
})
diff --git a/docs/server/api/search.json.get.ts b/docs/server/api/search.json.get.ts
new file mode 100644
index 00000000..f5ef8e4a
--- /dev/null
+++ b/docs/server/api/search.json.get.ts
@@ -0,0 +1,5 @@
+import { serverQueryContent } from '#content/server'
+
+export default eventHandler(async (event) => {
+ return serverQueryContent(event).where({ _type: 'markdown', navigation: { $ne: false } }).find()
+})
diff --git a/src/runtime/plugins/colors.ts b/src/runtime/plugins/colors.ts
index cfe8a5d3..2925ac07 100644
--- a/src/runtime/plugins/colors.ts
+++ b/src/runtime/plugins/colors.ts
@@ -1,6 +1,6 @@
import { computed } from 'vue'
import { hexToRgb } from '../utils'
-import { defineNuxtPlugin, useHead, useAppConfig, useNuxtApp } from '#imports'
+import { defineNuxtPlugin, useAppConfig } from '#imports'
import colors from '#tailwind-config/theme/colors'
export default defineNuxtPlugin((nuxtApp) => {