Blog ¶
The blog extension turns dated pages under blog.dir into a listing route, tag index, tag detail pages, and feed entries.
blog and feed
export default defineConfig({
title: 'Docs',
hostname: 'https://example.com',
blog: {
dir: 'blog',
route: '/blog/',
title: 'News',
description: 'Project updates',
tagsRoute: '/blog/tags/',
},
feed: {
filename: 'feed.xml',
type: 'rss',
},
})export default defineConfig({
title: 'Docs',
hostname: 'https://example.com',
blog: {
dir: 'blog',
route: '/blog/',
title: 'News',
description: 'Project updates',
tagsRoute: '/blog/tags/',
},
feed: {
filename: 'feed.xml',
type: 'rss',
},
})Post Frontmatter ¶
blog post
title: Build-Time Validation
description: Why CarvePress validates routes before publishing.
date: '2026-08-02'
tags: [validation, docs]
excerpt: Links fail in CI instead of in readers' tabs.
author: CarvePress Maintainerstitle: Build-Time Validation
description: Why CarvePress validates routes before publishing.
date: '2026-08-02'
tags: [validation, docs]
excerpt: Links fail in CI instead of in readers' tabs.
author: CarvePress MaintainersPosts are rendered with the blog layout by default. The generated blog index and tag index are virtual pages.
Last updated