Skip to content

Commit b7f9a66

Browse files
committed
fix: defineOgImage v6 API and prerender docs for static hosting
Replace deprecated defineOgImageComponent with defineOgImage. Enable prerendering for /docs/** so crawlers and OG validators receive full HTML; seed /docs/getting-started, ignore /_ipx, and allow prerender to continue when optional nav paths 404. Made-with: Cursor
1 parent 65b43e0 commit b7f9a66

5 files changed

Lines changed: 15 additions & 8 deletions

File tree

app/pages/_blog/[...slug].vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ if (!page.value) {
1515
// if (page.value.image) {
1616
// defineOgImage({ url: page.value.image })
1717
// } else {
18-
// defineOgImageComponent('Docs', {
18+
// defineOgImage('Docs', {
1919
// headline: breadcrumb.value.map(item => item.label).join(' > ')
2020
// }, {
2121
// fonts: ['Geist:400', 'Geist:600']

app/pages/changelog.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ useSeoMeta({
2222
ogDescription: description,
2323
});
2424
25-
defineOgImageComponent('DocsBrowser', {
25+
defineOgImage('DocsBrowser', {
2626
headline: 'Vercube',
2727
title: 'Changelog',
2828
description: 'Track our journey with a detailed history of updates, improvements, and new features.',

app/pages/docs/[...slug].vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const breadcrumb: ComputedRef<BreadcrumbLink[]> = computed(() =>
3535
})),
3636
);
3737
38-
defineOgImageComponent(
38+
defineOgImage(
3939
'DocsBrowser',
4040
{
4141
headline: breadcrumb.value.map((item: BreadcrumbLink) => item.label).join(' > '),
@@ -57,7 +57,7 @@ useSeoMeta({
5757
ogTitle: titleTemplate.value?.includes('%s') ? titleTemplate.value.replace('%s', title) : title,
5858
});
5959
60-
defineOgImageComponent(
60+
defineOgImage(
6161
'DocsBrowser',
6262
{
6363
headline: breadcrumb.value.length ? breadcrumb.value.map((link: BreadcrumbLink) => link.label).join(' > ') : '',

app/pages/index.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ const siteUrl = site.url || 'https://vercube.dev';
3535
const canonicalUrl = `${siteUrl}${route.path}`;
3636
3737
// Define OG Image component for homepage
38-
defineOgImageComponent(
38+
defineOgImage(
3939
'DocsBrowser',
4040
{
4141
headline: 'Next generation server framework',

nuxt.config.ts

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,10 @@ export default defineNuxtConfig({
4545
routeRules: {
4646
'/': { prerender: true },
4747
'/docs': { redirect: { statusCode: 301, to: '/docs/getting-started' } },
48-
'/docs/**': { prerender: false },
49-
// Always SSR: prerender crawl would freeze GitHub releases at build time.
48+
// Static hosting (GitHub Pages): docs must be prerendered so crawlers and OG validators get real
49+
// HTML with meta tags. Client-only shells look “empty” to bots.
50+
'/docs/**': { prerender: true },
51+
// Fresh GitHub releases: keep SSR-only (no frozen HTML at build).
5052
'/changelog': { prerender: false },
5153
// nuxt-og-image browser renderer needs a real browser at build time; generate at runtime instead.
5254
'/_og/**': { prerender: false },
@@ -58,9 +60,14 @@ export default defineNuxtConfig({
5860

5961
nitro: {
6062
prerender: {
61-
routes: ['/'],
63+
// Seed docs so the crawler can follow sidebar/nav links to every page.
64+
routes: ['/', '/docs/getting-started'],
6265
crawlLinks: true,
6366
autoSubfolderIndex: false,
67+
// Nav includes parent paths without a markdown file (e.g. /docs/modules); crawlers still 404 those.
68+
failOnError: false,
69+
// IPX URLs are not static files; skip prerendering them (images use `none` provider on GitHub Pages).
70+
ignore: ['/_ipx'],
6471
},
6572
},
6673

0 commit comments

Comments
 (0)