返回首页

Next.js 博客开发实践

Next.js 博客开发实践

在这篇文章中,我将分享如何使用 Next.js 从零开始构建一个功能完善的博客系统。

技术选型

选择 Next.js 作为博客框架有以下几个原因:

服务端渲染 (SSR)

Next.js 提供了出色的 SSR 支持,这对于博客这类内容型网站非常重要:

  • 更好的 SEO 表现
  • 更快的首屏加载速度
  • 社交媒体分享时能正确显示预览

App Router

Next.js 13+ 的 App Router 带来了:

// app/posts/[slug]/page.tsx
export default async function PostPage({
  params,
}: {
  params: { slug: string };
}) {
  const post = await getPostBySlug(params.slug);
  return <Article post={post} />;
}

Markdown 处理

我们使用以下库来处理 Markdown:

  • gray-matter: 解析 frontmatter
  • remark: Markdown 处理器
  • remark-gfm: 支持 GitHub 风格的 Markdown

配置示例

import { remark } from 'remark';
import html from 'remark-html';
import remarkGfm from 'remark-gfm';

const result = await remark()
  .use(remarkGfm)
  .use(html)
  .process(content);

样式设计

采用传统优雅的设计风格:

设计元素 选择
字体 衬线字体 (Noto Serif)
配色 暖色调,米白背景
间距 大量留白
排版 经典书籍式布局

性能优化

图片优化

Next.js 的 Image 组件自动处理:

  • 图片懒加载
  • 响应式尺寸
  • WebP 格式转换

代码分割

通过动态导入实现按需加载:

const Comments = dynamic(() => import('@/components/Comments'), {
  loading: () => <p>加载评论中...</p>,
});

总结

Next.js 是构建博客的理想选择,它提供了所需的一切功能,同时保持了极佳的开发体验。

下一篇文章,我将介绍如何为博客添加评论系统。

💬 评论区

💡 如何启用评论

当前评论系统使用 Giscus(基于 GitHub Discussions),需要简单配置才能启用。

  1. 访问 giscus.app
  2. 使用 GitHub 登录并授权到你的仓库
  3. 选择你的仓库(需要开启 Discussions)
  4. 复制生成的配置信息
  5. 更新 components/Giscus.tsx 文件中的配置
优点:免费、无广告、基于 GitHub
要求:GitHub 账号、公开仓库

感谢阅读!如有任何问题或建议,欢迎交流。