diff options
Diffstat (limited to 'contentlayer.config.ts')
| -rw-r--r-- | contentlayer.config.ts | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/contentlayer.config.ts b/contentlayer.config.ts new file mode 100644 index 0000000..0d85edf --- /dev/null +++ b/contentlayer.config.ts @@ -0,0 +1,45 @@ +// 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, + ], + }, +}) |
