Next.js↗
我选择Next.js作为最基础的框架。
Next.js是一个基于
React
的框架,支持
SSR
(Server Side Rendering,服务器端渲染)。
SSR有利于
SEO
(Search Engine Optimization,搜索引擎优化),在需要的地方合理使用,也能带来良好的性能。
另一个优点是,不用单独搭建后端服务器,也能访问数据库。
next-mdx-remote↗
这个博客的文章使用Markdown语法编写。
此外,我还使用了可以混合Markdown和JSX语法的
MDX
文件。
为了渲染这些内容,我采用了
next-mdx-remote
。
除了这个库,编译MDX文件还有其他几种选择,例如velite、contentlayer和next/mdx。
不过,考虑到部分方案尚不稳定或停止维护等情况,我最终选择了next-mdx-remote。
官方文档中也提供了使用next-mdx-remote的示例,相关资料比较丰富,这也是我选择它的原因。
Next.js官方文档(next-mdx-remote)↗
gray-matter↗
这个库用于提取Markdown文件的frontmatter。
frontmatter位于Markdown文件顶部,用于保存元数据。
开发初期,我把标题、撰写日期等元数据放在MDX文件中,再提取出来使用;目前这个方式只用于测试。
Prisma↗
这是创建API端点时,用于访问数据库的库。
Prisma是一个ORM(Object-Relational Mapping,对象关系映射)库,不必直接编写SQL也能访问数据库。
我使用的是Supabase的PostgreSQL,而PostgreSQL也是Prisma重点支持的数据库。
此外,它还支持TypeScript,具有代码自动补全、类型检查等优点。