Files
supabase/apps/www/contentlayer.config.ts
T
Francesco Sansalvadore d4d1369ce4 Fix dynamic blog posts (#28911)
* update blog post sorting

* remove published_at

* avoid rerender

* subtract date

* remove deprecated icon

* safari fix
2024-08-28 17:30:10 +08:00

37 lines
1.4 KiB
TypeScript

import { defineDocumentType, makeSource } from 'contentlayer2/source-files'
import { FILENAME_SUBSTRING } from './lib/posts'
export const BlogPost = defineDocumentType(() => ({
name: 'BlogPost',
filePathPattern: `**/*.mdx`,
contentType: 'mdx',
fields: {
author: { type: 'string', required: true },
author_url: { type: 'string', required: false },
author_title: { type: 'string', required: false },
author_image_url: { type: 'string', required: false },
date: { type: 'string', required: true },
description: { type: 'string', required: true },
categories: { type: 'list', of: { type: 'string' }, required: true },
image: { type: 'string', required: false },
launchweek: { type: 'string', required: false },
tags: { type: 'list', of: { type: 'string' }, required: false },
title: { type: 'string', required: true },
thumb: { type: 'string', required: false },
toc_depth: { type: 'number', required: false },
video: { type: 'string', required: false },
youtubeHero: { type: 'string', required: false },
},
computedFields: {
url: {
type: 'string',
resolve: (post) => {
const slug = post._raw.flattenedPath.replace('.mdx', '').substring(FILENAME_SUBSTRING)
return `/blog/${slug}`
},
},
},
}))
export default makeSource({ contentDirPath: '_blog', documentTypes: [BlogPost] })