From d82fb3b552d20a279efdd9408042183cfa02fb48 Mon Sep 17 00:00:00 2001 From: schererleander Date: Thu, 25 Dec 2025 23:33:25 +0000 Subject: initial commit --- contentlayer.config.ts | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 contentlayer.config.ts (limited to 'contentlayer.config.ts') 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, + ], + }, +}) -- cgit v1.3.1