{"id":20397003,"url":"https://github.com/l33z22l11/blog-v3","last_synced_at":"2025-04-09T20:02:53.083Z","repository":{"id":251854674,"uuid":"837551641","full_name":"L33Z22L11/blog-v3","owner":"L33Z22L11","description":"My blog, powered by Nuxt Content v2.","archived":false,"fork":false,"pushed_at":"2025-04-03T14:59:50.000Z","size":1975,"stargazers_count":63,"open_issues_count":1,"forks_count":23,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-09T20:02:36.234Z","etag":null,"topics":["blog","blog-theme","diary","nuxt-content"],"latest_commit_sha":null,"homepage":"https://blog.zhilu.cyou","language":"Markdown","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/L33Z22L11.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-03T10:05:39.000Z","updated_at":"2025-04-07T09:48:28.000Z","dependencies_parsed_at":"2024-10-26T19:14:34.411Z","dependency_job_id":"7bb6d900-3580-4621-9d01-d8623b7d87ca","html_url":"https://github.com/L33Z22L11/blog-v3","commit_stats":null,"previous_names":["l33z22l11/blog-v3"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L33Z22L11%2Fblog-v3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L33Z22L11%2Fblog-v3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L33Z22L11%2Fblog-v3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/L33Z22L11%2Fblog-v3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/L33Z22L11","download_url":"https://codeload.github.com/L33Z22L11/blog-v3/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103865,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blog","blog-theme","diary","nuxt-content"],"created_at":"2024-11-15T04:11:20.141Z","updated_at":"2025-04-09T20:02:53.040Z","avatar_url":"https://github.com/L33Z22L11.png","language":"Markdown","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 纸鹿摸鱼处\n\n![框架](https://img.shields.io/badge/框架-Nuxt-00DC82?logo=Nuxt.js)\n![CMS](https://img.shields.io/badge/CMS-Nuxt%20Content-00DC82?logo=Nuxt.js)\n![部署平台](https://img.shields.io/badge/部署平台-Vercel-000000?logo=Vercel)\n![访问统计](https://img.shields.io/badge/访问统计-Umami-000000?logo=Umami)\n![代码风格](https://img.shields.io/badge/代码风格-ESLint-4B32C3?logo=ESLint)\n![代码风格](https://img.shields.io/badge/代码风格-Stylelint-263238?logo=Stylelint)\n\n我的第三代个人博客，于 2024 年 8 月 11 日上线。\n\n## 使用本主题的博客\n\n- [纸鹿摸鱼处 @L33Z22L11](https://blog.zhilu.cyou/) · [开发经历](https://blog.zhilu.cyou/2024/blog-using-nuxt)\n- [希乐博客 @Xlenco](https://blog.xlenco.top/)\n- [SteinsNote @Labmem-00](https://blog.labmem.chat/) · [迁移经历](https://blog.labmem.chat/2024/beforeeverything)\n- [月空人 @Whbbit1999](https://whbbit.cn/) · [迁移评价](https://whbbit.cn/2025/why-migrate-to-nuxt)\n- [地球驿站 @mugzx](https://blog.mugzx.top/) · [迁移记录](https://blog.mugzx.top/)\n- [克喵的小栈 @Kemeow815](https://blog-v3.kemeow.top/)\n- [梦爱吃鱼 @JLinmr](https://blog.ruom.top/)\n- [Mikuの极光星 @PaloMiku](https://blog.sotkg.com/)\n\n## 特性\n\n[主题特性](https://blog.zhilu.cyou/theme) · [组件示例](https://blog.zhilu.cyou/previews/example)\n\n## 目录结构\n\n项目使用 Nuxt 4 项目目录结构，可以参照 [Nuxt 3 目录结构（左侧栏有导航）](https://nuxt.com/docs/guide/directory-structure/app)。\n\n```sh\n.\n├── app # 前端\n│   ├── assets # 资源文件\n│   ├── components # 组件\n│   │   ├── content # MDC组件\n│   │   ├── partial # 微型组件\n│   │   ├── widget # 侧边栏组件\n│   │   ├── zhilu # 个人标识组件\n│   │   └── ... # 布局组件\n│   ├── composables # Vue 组合式函数\n│   ├── pages # 页面\n│   │   ├── [...slug].vue # 正文、404页面\n│   │   ├── page.vue # 首页\n│   │   ├── page/[[id]].vue # 首页动态路由\n│   │   ├── archive.vue # 归档\n│   │   ├── link.vue # 友链\n│   │   └── preview.vue # 预览的文章\n│   ├── plugins # Nuxt / Vue 插件\n│   ├── stores # Pinia 状态管理\n│   ├── types # 类型定义\n│   ├── utils # 工具函数\n│   ├── app.config.ts # 前端响应式配置★\n│   ├── app.vue # 基本布局\n│   ├── error.vue # 意外错误页\n│   ├── friends.ts # 友链★\n│   └── subscriptions.ts # 单向订阅/推荐网站★\n├── content # 文章\n│   ├── posts # 文章\n│   ├── previews # 预览文章，可被站内搜索\n│   ├── link.md # 友链要求\n│   └── theme.md # 主题介绍\n├── patches # npm 包补丁\n├── public # 静态资源，生成在站点根目录\n│   └── fonts # 字体\n├── server # 服务端\n│   ├── api # 接口\n│   │   └── stats.get.ts # 博客静态统计\n│   ├── plugins # Nitro 插件\n│   │   ├── anti-mirror.ts # 恶意反代跳转\n│   │   └── fix-post.ts # 修复文章时区/链接\n│   └── routes # 路由\n│       └── atom.xml.get.ts # Atom 订阅源\n├── blog.config.ts # 博客静态公共配置★\n├── nuxt.config.ts # Nuxt 配置\n└── redirects.json # 旧站点重定向配置\n```\n\n## 快速开始\n\n### 安装依赖\n\n```sh\npnpm i\n```\n\n### 运行开发环境\n\n```sh\npnpm dev\n```\n\n### 初始配置\n\n为避免误会，应当更改一些配置信息以和我的博客网站区分：\n\n- 删除原有文章：`content/` 目录下仅保留 `link.md`，`app.config.ts` 中将 `footer.nav[2].items[1].url` 由 `/theme` 改为 `https://blog.zhilu.cyou/theme`（确保通过链接检测）。\n- 更换服务配置：`blog.config.ts` 中的 Umami 站点统计、Cloudflare Insights 统计、Twikoo 评论服务源需要注释或更换。\n- 个人信息：`blog.config.ts` 中的站点信息、`app.config.ts` 中的页脚导航、出生年份等。\n- 其他应当被善意认为有必要修改的文件和配置字段（参阅“目录结构”一节）。\n\n### 创建文章\n\n```sh\npnpm new my-post-title\n```\n\n### 构建生产环境\n\n```sh\npnpm generate\npnpm preview\n```\n\n### 部署指南\n\n推荐使用 Vercel 进行部署，同时也支持 Netlify、Cloudflare Pages 等平台。建议采用静态（SSG）部署方式，我的部署配置如下：\n\n- 构建命令: `pnpm generate`/`nuxt generate`\n- 输出目录: `dist`（与Nuxt预设相同）\n- 安装命令: `pnpm i`（一般会自动检测）\n\n如果直接使用平台提供的“Nuxt”预设部署，那么会变成 SSR 模式，需要调整部署命令，请参阅 Nuxt 官方文档的 [部署](https://nuxt.com/docs/getting-started/deployment) 部分。\n\n#### 疑难解答\n\n- Vercel 先前创建的项目需要 [手动指定 pnpm 10](https://vercel.com/docs/builds/configure-a-build#corepack)。\n- Cloudflare Pages 部署项目需要配置 `NODE_VERSION` 环境变量为较新的版本，如 `22.14.0`。\n\n## 贡献\n\n欢迎参与项目：如果有具体问题或功能建议，可以发起 Issue；如果愿意在已确定的方向上增加功能或修复问题，可以提交 Pull Request。\n\n### 使用答疑\n\n使用需要具备一定的前端**项目基础**。如果你不确定代码是否有问题，可以加入 QQ 群 `169994096` 讨论（也欢迎闲聊），我很乐意在空闲时解答问题。\n\n## 许可证\n\n- 项目本体：[MIT](LICENSE)\n- 博客文章：[CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans)\n- 请完成必要的配置与修改后再部署项目，**不得以“纸鹿”或任何与我相关的名义发布“镜像”网站**，否则我将设法与你联系。\n- 希望你在页脚保留此项目链接，助力开源传播。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl33z22l11%2Fblog-v3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fl33z22l11%2Fblog-v3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fl33z22l11%2Fblog-v3/lists"}