Back to snippets

contentlayer_post_document_type_with_computed_url_field.ts

typescript

Defines a simple Post document type with basic fields and configures the co

19d ago15 linescontentlayer.dev
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] })