纸鹿摸鱼处

September 6, 2026 · View on GitHub

框架 CMS 部署平台 访问统计 代码风格 代码风格

我的第三代个人博客,于 2024 年 8 月 11 日上线。

耻辱柱 / Hall of Shame

Caution

  • 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。
  • 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。
  • 部署前必须完成项目个性化配置与内容修改,不得将我的信息用于你的网站图标/名称,严禁将项目内我的文章以你的名义重新发布至公开环境。

近期 Fork 项目后将我的文章部署在互联网且不遵守 CC 协议的行为增加,追查耗费了我巨大精力,因此我将直接将侵权网站列在此标题,希望能减少此类现象的发生。

使用本主题的博客

Warning

修改本项目需要具备前端开发和项目部署能力。由于这是个人博客,代码经过深度定制,且可能会进行较大幅度的更新,建议您 Fork 后安心使用自己分支的版本;若需引入上游(本仓库)的新功能,建议重新 Fork 最新代码,以避免同步冲突。

如果需要协助或有问题咨询,欢迎加入 QQ 群 169994096 讨论/闲聊,我会在空闲时尽力解答。

主题吸收了 Stellar 的设计风格,命名为 Clarity,寓意清楚的阅读体验和清晰的观点表达。限于下游越来越多,未来将会有选择地收录。

版本以站点公开信息为准(2026-09-06)。

博客名称作者线上版本特色
纸鹿摸鱼处L33Z22L11v3.7.1上游
希乐博客Xlenco未公开最新评论、更新日志
Mugzx's BlogMugzxv3.7.1精简导航、Umami 统计
喵洛阁Kemeow815未公开番剧、影视、书房、游戏页
钟神秀mcyzsxv3.6.0朋友圈、即刻、装备、追番
梦爱吃鱼JLinmrv3.6.0鱼塘、瞬间、最新评论
Mikuの极光星PaloMikuv3.7.0Linux 与 Galgame 长文、游戏页
BiuXin-s Blogdamizai未公开鱼塘、说说、最新评论
液泡部落格VacuolePaoov3.7.1开发工具配置、技术与思考
闻絮语wxuyuv3.6.5友链轮播、追更历史、音乐控制
落憾LuoH-ANv3.7.1原创诗词、闲言、今日诗词
fishcpy的小破站fishcpyv3.4.8鱼塘、时间盒、监控美化
六月墨语Akuma-realv3.7.1说说、访客卡片、音乐
Cталин博客StalinDev54v3.4.8生活长文、动态、关于页
栖童の小站Linux-qitongv3.7.1标签、友圈、Linux 实践
鹊楠の小窝QNquenanv3.4.9建站教程、公告、更新日志
KingKangBlogKingStoningv3.4.9标签筛选、大学随笔
Axel's BLOGAxelEwanv3.7.0-rc.0演唱会图文、动态
AirTouchの小站AirTouch666v3.6.0自部署教程、鱼塘、说说
Olinl Blogolinllv3.7.1部署与容器教程、主题改造笔记
古怪杂记本GuuGuaiv3.6.3考研复盘、Minecraft 长文
敖苛记jeoorv3.7.1相册、标签云、时间进度
灯火不休时dhbxsv3.7.0-rc.0Java 与大数据实践、碎碎念
郭雨博guojiahaous-altv3.7.0-rc.0CTF 复盘、折叠好友、音乐播放器

社区移植

框架项目版本 / 状态特色
Hugoit985/hugo-theme-clarity开发中Pagefind、相册、说说
Haloacanyo/theme-clarityv1.6.6可配置小组件、分享海报;应用市场
Typechojkjoy/theme-clarityv1.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
  • 希望你在页脚保留此项目链接,助力开源传播。