这是一个基于 Next.js 构建的个人博客项目。项目旨在记录WNN的日常及总结记录。
框架: 使用 Next.js 14/15 (App Router) 构建,支持服务器组件 (RSC)。
样式: 集成了 Tailwind CSS (基于 postcss.config.mjs)。
性能: 静态页面生成 (SSG) 确保极速加载。
自定义图像压缩脚本: 通过 compress.js 利用 Sharp 库自动将图片转换为 WebP 格式,大幅减少首屏带宽。
类型安全: 全面使用 TypeScript 编写。
- Core: Next.js, React, TypeScript
- Styling: Tailwind CSS, PostCSS, Motion-primitives
- Tools: ESLint, Sharp (图像处理)
git clone [https://github.com/WNN6231/NextjsBlog.git](https://github.com/WNN6231/NextjsBlog.git)
cd blog
npm install在部署或上传新图片后,运行此脚本将 public 目录下的 JPG/PNG 自动转换为高效的 WebP 格式:
node compress.js在预撰写仓库中完成内容创作后(有两个Obisidian仓库,本项目以Obisidian作为CMS,一个Obisidian仓库是nextjs/blog/content目录,一个Obisidian仓库作为预撰写仓库),运行此脚本可将预撰写仓库中的博文同步至发布仓库,并进行格式调整适应web页面。(此脚本的同步路径需要自己手动调整,文件绝对路径最佳)。
node publish.mjsnpm run dev点击终端显示的http://localhost:3000查看博客内容。
| 文件夹/文件 | 内容描述 |
|---|---|
| app | 博客页面路由与逻辑。 |
| public | 静态资源(图片、字体等)。 |
| public/optimized | 经过 compress.js 处理后的优化图片。 |
| lib | 公用工具函数与库配置。 |
| scripts | 脚本集成,内有compress压缩脚本和pulish发布脚本,利于开发者在Obisidian中一键执行pulish命令至博客仓库。 |
Made with ❤️ by WNN