Contentlayer makes content easy for developers

1 min read Original article ↗

tsx

import { defineDocumentType, makeSource } from 'contentlayer/source-files'

const Post = defineDocumentType(() => ({

name: 'Post',

filePathPattern: `**/*.md`,

fields: {

title: { type: 'string', required: true },

date: { type: 'date', required: true }

},

computedFields: {

url: { type: 'string', resolve: (post) => `/posts/${post._raw.flattenedPath}` },

},

}))

export default makeSource({

contentDirPath: 'posts',

/* ^^^^^^^ Directory with the Markdown files. */

documentTypes: [Post]

})