frontmatter setup

This commit is contained in:
khalilcodes 2022-04-15 13:52:13 +03:00
parent 575c18f1ab
commit e4019fba59
1 changed files with 31 additions and 6 deletions

View File

@ -1,19 +1,44 @@
import { defineDocumentType, makeSource } from 'contentlayer/source-files' import { defineDocumentType, defineNestedType, makeSource } from 'contentlayer/source-files'
// import readingTime from 'reading-time' // import readingTime from 'reading-time'
import remarkGfm from 'remark-gfm'; import remarkGfm from 'remark-gfm'
import rehypeSlug from 'rehype-slug' import rehypeSlug from 'rehype-slug'
import rehypeAutolinkHeadings from 'rehype-autolink-headings' import rehypeAutolinkHeadings from 'rehype-autolink-headings'
import wikiLinkPlugin from "remark-wiki-link-plus" import wikiLinkPlugin from "remark-wiki-link-plus"
const ObsidianAliases = defineNestedType(() => ({
name: 'Obsidian',
filePathPattern: '**/*.md*',
fields: {
title: { type: 'string', required: true }
}
}))
const OtherPage = defineDocumentType(() => ({ const OtherPage = defineDocumentType(() => ({
name: 'OtherPage', name: 'OtherPage',
filePathPattern: '**/*.md*', filePathPattern: '**/*.md*',
contentType: 'mdx', contentType: 'mdx',
fields: { fields: {
title: { type: 'string', required: false }, title: { type: 'string' },
date: { type: 'string', required: false }, date: { type: "date", description: "This will be the publication date" },
authors: { type: 'string', required: false }, image: { type: "string" },
description: { type: 'string', required: false }, description: { type: 'string' },
youtube: { type: "string" },
podcast: { type: "string" },
featured: { type: "boolean", default: false },
created: { type: "date", description: "The date this page was created (For internal use)" },
aliases: { type: 'reference', of: ObsidianAliases }
},
computedFields: {
date: {
type: "date",
resolve: (doc) => new Date(doc.date).toLocaleDateString('en-US', {
weekday: "long", year: "numeric", month: "long", day: "numeric"
})
},
created: {
type: "date",
resolve: (doc) => new Date(doc.created).toLocaleDateString('en-US')
},
} }
})); }));