Skip to content

Commit d97a793

Browse files
committed
fix(routing): handle unique root level content
1 parent 3467f12 commit d97a793

File tree

3 files changed

+34
-1
lines changed

3 files changed

+34
-1
lines changed

layer/app/pages/[[lang]]/index.vue renamed to layer/app/templates/landing.vue

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import type { Collections } from '@nuxt/content'
44
const route = useRoute()
55
const { locale, isEnabled } = useDocusI18n()
66
7+
// Dynamic collection name based on i18n status
78
const collectionName = computed(() => isEnabled.value ? `landing_${locale.value}` : 'landing')
89
910
const { data: page } = await useAsyncData(collectionName.value, () => queryCollection(collectionName.value as keyof Collections).path(route.path).first())
@@ -12,7 +13,7 @@ if (!page.value) {
1213
}
1314
1415
// Reconsider it once this is implemented: https://github.com/nuxt/content/issues/3419
15-
const prose = page.value.meta.prose as boolean
16+
const prose = page.value.meta?.prose as boolean
1617
const title = page.value.seo?.title || page.value.title
1718
const description = page.value.seo?.description || page.value.description
1819

layer/modules/routing.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { defineNuxtModule, extendPages, createResolver } from '@nuxt/kit'
2+
3+
export default defineNuxtModule({
4+
meta: {
5+
name: 'routing',
6+
},
7+
async setup(_options, nuxt) {
8+
const { resolve } = createResolver(import.meta.url)
9+
10+
const isI18nEnabled = !!(nuxt.options.i18n && nuxt.options.i18n.locales)
11+
12+
extendPages((pages) => {
13+
const landingTemplate = resolve('../app/templates/landing.vue')
14+
15+
if (isI18nEnabled) {
16+
pages.push({
17+
name: 'lang-index',
18+
path: '/:lang?',
19+
file: landingTemplate,
20+
})
21+
}
22+
else {
23+
pages.push({
24+
name: 'index',
25+
path: '/',
26+
file: landingTemplate,
27+
})
28+
}
29+
})
30+
},
31+
})

layer/nuxt.config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const { resolve } = createResolver(import.meta.url)
55
export default defineNuxtConfig({
66
modules: [
77
resolve('./modules/default-configs'),
8+
resolve('./modules/routing'),
89
'@nuxt/ui-pro',
910
'@nuxt/content',
1011
'@nuxt/image',

0 commit comments

Comments
 (0)