// contentlayer.config.ts import { defineDocumentType, makeSource } from 'contentlayer2/source-files' import rehypePrettyCode from 'rehype-pretty-code' import rehypeSlug from 'rehype-slug' import rehypeAutolinkHeadings from 'rehype-autolink-headings' export const Post = defineDocumentType(() => ({ name: 'Post', filePathPattern: `**/*.mdx`, contentType: 'mdx', fields: { title: { type: 'string', required: true }, date: { type: 'date', required: true }, }, computedFields: { url: { type: 'string', resolve: (post) => `/blog/${post._raw.flattenedPath}` }, }, })) const options = { theme: 'vesper', keepBackground: false, } export default makeSource({ contentDirPath: 'posts', documentTypes: [Post], disableImportAliasWarning: true, mdx: { rehypePlugins: [ rehypeSlug, [ rehypeAutolinkHeadings, { behavior: 'append', properties: { className: ['anchor'], }, }, ], // eslint-disable-next-line @typescript-eslint/no-explicit-any [rehypePrettyCode, options] as any, ], }, })