纸鹿摸鱼处
September 6, 2026 · View on GitHub
我的第三代个人博客,于 2024 年 8 月 11 日上线。
耻辱柱 / Hall of Shame
Caution
- 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。
- 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。
- 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。
近期 Fork 项目后将我的文章部署在互联网且不遵守 CC 协议的行为增加,追查耗费了我巨大精力,因此我将直接将侵权网站列在此标题,希望能减少此类现象的发生。
使用本主题的博客
Warning
修改本项目需要具备前端开发和项目部署能力。由于这是个人博客,代码经过深度定制,且可能会进行较大幅度的更新,建议您 Fork 后安心使用自己分支的版本;若需引入上游(本仓库)的新功能,建议重新 Fork 最新代码,以避免同步冲突。
如果需要协助或有问题咨询,欢迎加入 QQ 群 169994096 讨论/闲聊,我会在空闲时尽力解答。
主题吸收了 Stellar 的设计风格,命名为 Clarity,寓意清楚的阅读体验和清晰的观点表达。限于下游越来越多,未来将会有选择地收录。
版本以站点公开信息为准(2026-09-06)。
| 博客名称 | 作者 | 线上版本 | 特色 |
|---|---|---|---|
| 纸鹿摸鱼处 | L33Z22L11 | v3.7.1 | 上游 |
| 希乐博客 | Xlenco | 未公开 | 最新评论、更新日志 |
| Mugzx's Blog | Mugzx | v3.7.1 | 精简导航、Umami 统计 |
| 喵洛阁 | Kemeow815 | 未公开 | 番剧、影视、书房、游戏页 |
| 钟神秀 | mcyzsx | v3.6.0 | 朋友圈、即刻、装备、追番 |
| 梦爱吃鱼 | JLinmr | v3.6.0 | 鱼塘、瞬间、最新评论 |
| Mikuの极光星 | PaloMiku | v3.7.0 | Linux 与 Galgame 长文、游戏页 |
| BiuXin-s Blog | damizai | 未公开 | 鱼塘、说说、最新评论 |
| 液泡部落格 | VacuolePaoo | v3.7.1 | 开发工具配置、技术与思考 |
| 闻絮语 | wxuyu | v3.6.5 | 友链轮播、追更历史、音乐控制 |
| 落憾 | LuoH-AN | v3.7.1 | 原创诗词、闲言、今日诗词 |
| fishcpy的小破站 | fishcpy | v3.4.8 | 鱼塘、时间盒、监控美化 |
| 六月墨语 | Akuma-real | v3.7.1 | 说说、访客卡片、音乐 |
| Cталин博客 | StalinDev54 | v3.4.8 | 生活长文、动态、关于页 |
| 栖童の小站 | Linux-qitong | v3.7.1 | 标签、友圈、Linux 实践 |
| 鹊楠の小窝 | QNquenan | v3.4.9 | 建站教程、公告、更新日志 |
| KingKangBlog | KingStoning | v3.4.9 | 标签筛选、大学随笔 |
| Axel's BLOG | AxelEwan | v3.7.0-rc.0 | 演唱会图文、动态 |
| AirTouchの小站 | AirTouch666 | v3.6.0 | 自部署教程、鱼塘、说说 |
| Olinl Blog | olinll | v3.7.1 | 部署与容器教程、主题改造笔记 |
| 古怪杂记本 | GuuGuai | v3.6.3 | 考研复盘、Minecraft 长文 |
| 敖苛记 | jeoor | v3.7.1 | 相册、标签云、时间进度 |
| 灯火不休时 | dhbxs | v3.7.0-rc.0 | Java 与大数据实践、碎碎念 |
| 郭雨博 | guojiahaous-alt | v3.7.0-rc.0 | CTF 复盘、折叠好友、音乐播放器 |
社区移植
| 框架 | 项目 | 版本 / 状态 | 特色 |
|---|---|---|---|
| Hugo | it985/hugo-theme-clarity | 开发中 | Pagefind、相册、说说 |
| Halo | acanyo/theme-clarity | v1.6.6 | 可配置小组件、分享海报;应用市场 |
| Typecho | jkjoy/theme-clarity | v1.1.9 | 基于 Halo 版移植,图库、瞬间、追番 |
特性
目录结构
项目使用 Nuxt 4 项目目录结构。
.
├── app # 前端
│ ├── assets # 资源文件
│ ├── components # 组件
│ │ ├── blog # 博客布局组件
│ │ ├── content # MDC组件
│ │ ├── partial # 微型组件
│ │ ├── popover # 弹窗组件
│ │ ├── post # 文章组件
│ │ ├── util # 功能组件
│ │ └── widget # 侧栏小组件
│ ├── composables # Vue 组合式函数
│ ├── pages # 页面
│ │ ├── [...slug].vue # 正文、404页面
│ │ ├── archive.vue # 归档
│ │ ├── link.vue # 友链
│ │ ├── index.vue # 首页
│ │ └── preview.vue # 预览的文章
│ ├── plugins # Nuxt / Vue 插件
│ ├── stores # Pinia 状态管理
│ ├── types # 类型定义
│ ├── utils # 工具函数
│ ├── app.config.ts # 前端响应式配置★
│ ├── app.vue # 基本布局
│ ├── error.vue # 意外错误页
│ └── feeds.ts # 友链列表★
├── content # 文章
│ ├── posts # 正式文章
│ ├── previews # 草稿文章,仅可被站内搜索
│ ├── link.md # 友链要求
│ └── theme.md # 主题介绍
├── modules # Nuxt 模块
│ └── anti-mirror # 恶意反代跳转
├── patches # npm 包补丁
├── public # 静态资源,生成在站点根目录
│ ├── assets # 订阅源 XSLT 模板
│ └── fonts # 字体
├── remark-plugins # Unified 生态插件
├── scripts # npm 脚本
├── server # 服务端
│ ├── api # 接口
│ │ └── stats.get.ts # 博客静态统计
│ └── routes # 根路由
│ ├── atom.xml.get.ts # Atom 订阅源
│ └── subscriptions.opml.get.ts # OPML 订阅源聚合
├── blog.config.ts # 博客静态公共配置★
├── content.config.ts # Nuxt Content 配置
├── edgeone.json # EdgeOne 配置
├── nuxt.config.ts # Nuxt 配置
└── redirects.json # 旧站点重定向配置
快速开始
安装依赖
需要 Node.js 22.19+(22.x)、24.11+(24.x)或 26+,推荐使用满足要求的最新 LTS 版本。
pnpm i
如果你擅长前端并且需要安装 npm 包,推荐通过 @antfu/nip 包提供的 nip 命令安装 npm 包到合适的 catalog 下。
初始配置
pnpm init-project # 初始化项目配置,输入 confirm 确认
初始化会删除整个 content 目录,重建示例文章与通用友链申请说明,重置 app/feeds.ts(仅保留主题作者纸鹿的博客),并清空个人导航及统计/评论配置。请先备份自己的内容;自动化环境可显式执行 pnpm init-project --yes,没有确认参数时会退出且不修改文件。
初始化后头像和图标使用 WeAvatar 首字占位头像(无需邮箱或 MD5),站点地址为 http://localhost:3000/。上线前请按终端清单修改:
-
站点与个人配置:
blog.config.ts中的站点信息、Umami 站点统计、Cloudflare Insights 统计、Twikoo 评论服务源。app/app.config.ts中的页脚导航、出生年份等(birthYear: 0隐藏年龄)。content/link.md中的友链申请方式、app/feeds.ts中的友链列表。
-
为保证开发体验,需要安装 ESLint、Stylelint 等 VS Code 扩展。如果你不喜欢此项目的格式化风格,可以在
./eslint.config.mjs和./.vscode/settings.json中调整或者不安装 VS Code 扩展。 -
如果文章 URL 和先前的不相同,可以通过编辑
redirects.json来添加重定向。
创建文章
- 启用
blog.config.ts中的article.useRandomPremalink,即可在创建文章时随机生成 URL。
pnpm new
运行开发环境
pnpm dev
构建生产环境
pnpm generate
pnpm preview
部署指南
支持 Vercel、Netlify、Cloudflare Pages、EdgeOne Makers 等平台部署。建议采用静态(SSG)部署方式:
- 构建命令:
pnpm generate - 输出目录:
dist - 安装命令:
pnpm i
如果直接使用平台提供的“Nuxt”预设部署,则会变成 SSR 模式,此模式每次访问都会等待服务端重新渲染。请参阅 Nuxt 文档 和 Nuxt Content 文档 的“部署”一节。
疑难解答
-
手动清理文章后若
generate报Exiting due to prerender errors,请在完整日志中搜索[404]和Linked from,修正引用已删除文章的链接。推荐在全新模板上使用初始化命令统一清理。 -
absolute-site-urls表示站内链接使用了绝对 URL,并非 IP 地址无效。Atom / OPML 等订阅信息需要绝对地址;自托管时将blog.config.ts的url设为实际访问地址,且协议、主机、端口保持一致。 -
当你发现文章页面 404 问题时,请注意文章 URL 不应尾随
/。 -
如果修改了 API 路径,使用 EdgeOne Makers 部署需要同步修改
edgeone.json。 -
运行、部署项目时 Node.js 版本需要遵照
package.json限制,推荐使用 Node LTS 最新版。
检测友链状态
pnpm check:feed # 检测某友链 / 任意 URL 的托管商及可访问性
pnpm check:feed/all # 检测所有友链可访问性并生成报告
贡献
欢迎参与项目:如果有具体问题或功能建议,可以发起 Issue;如果愿意在已确定的方向上增加功能或修复问题,可以提交 Pull Request。
许可证
- 项目本体:MIT
- 博客文章:CC BY-NC-SA 4.0
- 希望你在页脚保留此项目链接,助力开源传播。