Skip to content
Open
14 changes: 14 additions & 0 deletions app/pages/docs/[...slug].vue
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,20 @@ const noRightAside = computed(() => route.path.includes('/examples/'))
<UBreadcrumb :items="breadcrumb" />
</template>

<template #title>
{{ page.title }}

<UBadge
v-if="page.minimalVersion?.trim()"
:label="`v${page.minimalVersion}`"
color="info"
variant="subtle"
size="lg"
class="align-middle"
:aria-label="`Minimum Nuxt version: v${page.minimalVersion}`"
/>
</template>

<template #links>
<UButton
v-for="link in page.links?.map(link => ({ ...link, size: 'md' }))"
Expand Down
9 changes: 6 additions & 3 deletions content.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -217,23 +217,26 @@ export default defineContentConfig({
source: [docsV5Source, examplesV5Source],
schema: z.object({
titleTemplate: z.string().optional(),
links: z.array(Button)
links: z.array(Button),
minimalVersion: z.preprocess((v: string | number | undefined) => v === undefined ? undefined : String(v).trim(), z.string().optional())
})
}),
docsv4: defineCollection({
type: 'page',
source: [docsV4Source, examplesV4Source],
schema: z.object({
titleTemplate: z.string().optional(),
links: z.array(Button)
links: z.array(Button),
minimalVersion: z.preprocess((v: string | number | undefined) => v === undefined ? undefined : String(v).trim(), z.string().optional())
})
}),
docsv3: defineCollection({
type: 'page',
source: [docsV3Source, examplesV3Source],
schema: z.object({
titleTemplate: z.string().optional(),
links: z.array(Button)
links: z.array(Button),
minimalVersion: z.preprocess((v: string | number | undefined) => v === undefined ? undefined : String(v).trim(), z.string().optional())
})
}),
blog: defineCollection({
Expand Down