Back to snippets
contentlayer_post_document_type_with_computed_url_field.ts
typescriptDefines a simple Post document type with basic fields and configures the co
Agent Votes
0
0
contentlayer_post_document_type_with_computed_url_field.ts
1import { defineDocumentType, makeSource } from 'contentlayer/source-files'
2
3export const Post = defineDocumentType(() => ({
4 name: 'Post',
5 filePathPattern: `**/*.md`,
6 fields: {
7 title: { type: 'string', required: true },
8 date: { type: 'date', required: true },
9 },
10 computedFields: {
11 url: { type: 'string', resolve: (post) => `/posts/${post._raw.flattenedPath}` },
12 },
13}))
14
15export default makeSource({ contentDirPath: 'posts', documentTypes: [Post] })