基于 Astro 与 Fuwari 主题改造的个人博客
yujok-s-blog — Astro 博客模板
作者 yx-l147
基于 Astro 与 Fuwari 主题改造的个人博客,包含文章、随想、番组、微信读书书架和本地书评等模块。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
支持 Markdown / MDX 内容与 Frontmatter 元数据
内置 new-post、new-thought 等内容创建脚本
微信读书书架页面,可同步公开书架、阅读进度与精选划线
本地书评通过 bookId 与书架数据关联,支持草稿预览
包含随想、番组、课程表、归档等页面模块
模板详细介绍
这是一个基于 Astro 构建、以上游 Fuwari 主题为基础改造的个人博客项目。内容以 Markdown 或 MDX 撰写,文章放在 src/content/posts/,随想放在 src/content/thoughts/,本地书评放在 src/content/book-reviews/,并通过 Frontmatter 中的 bookId 与书架数据关联。项目提供 new-post、new-thought、fetch-weread、draft-book-reviews 等脚本,用于创建内容、同步微信读书数据以及生成书评草稿。
站点页面包括文章归档、随想、微信读书书架、番组记录、课程表和关于页。书架页面位于 /book,数据源为 src/data/weread/shelf.json,由 fetch-weread 命令生成,包含公开书架、阅读进度、统计和精选划线;未配置真实数据时会回退到 src/data/mock-shelf.ts 的示例数据。私密书籍会在拉取阶段被过滤。
使用前需要 Node.js 18+ 与 pnpm 9+,通过 pnpm install、pnpm dev、pnpm build、pnpm preview 完成安装、开发、构建与预览。构建产物位于 dist/ 目录,可部署到静态托管平台。微信读书书架功能需要在 .env.local 中配置 WEREAD_API_KEY。项目采用 MIT 许可,第三方素材需按各自许可核对。
适合你的项目吗?
适用场景
- 搭建以文章和随想为主的个人博客
- 在博客中展示微信读书书架、阅读进度与划线
- 为读过的书写本地书评并与书架条目关联
- 记录番组观看情况与课程表
- 将构建后的静态文件部署到静态托管平台
适合人群
- 熟悉 Astro 或愿意使用 Astro 的开发者
- 需要 Markdown / MDX 写作流程的个人博主
- 希望展示微信读书数据的用户
- 需要随想、番组、课程表等扩展页面的个人站点
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
环境要求 Node.js 18+ 与 pnpm 9+,使用 pnpm install 安装依赖
- 2
开发、构建、预览分别使用 pnpm dev、pnpm build、pnpm preview
- 3
微信读书书架需复制 .env.example 为 .env.local 并填入 WEREAD_API_KEY,再运行 pnpm fetch-weread
- 4
未配置真实数据时书架会回退到 src/data/mock-shelf.ts 示例数据
- 5
书评草稿由 pnpm draft-book-reviews 生成,生产构建会隐藏 draft: true 的内容
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 微信读书书架功能需自行申请并配置 WEREAD_API_KEY 环境变量,属于外部服务凭据要求;未配置时页面回退到示例数据。
- 未配置微信读书 API 密钥时,书架仅显示内置示例数据,无法展示真实书架内容。
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
在 `.env.local` 中填入 `WEREAD_API_KEY`
README 原文
https://github.com/yx-l147/yujok-s-blog/blob/main/LICENSEhttps://github.com/yx-l147/yujok-s-blog/blob/main/README.md如果没有配置真实数据,书架页面会自动回退到 `src/data/mock-shelf.ts` 中的示例数据。
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 80 / 100
- 技术栈
- Astro
- 网站类型
- 博客
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-09-29
- 截图检查日期
- 2026-10-01
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。
查看当时使用的来源资料
SHA-256: 7e05abc385eada673736191ca7b7fe6da32e621ed01bef9e123dfc8a331298d7
2026-10-01T14:27:39.114Z
来源文件 / 仓库# Yujok's Blog 基于 Astro / Fuwari 改造的个人博客,包含文章、随想、番组、微信读书书架和本地书评。 ## 技术栈 - 框架: Astro - 交互:Svelte - 样式:Tailwind CSS - 开发语言:TypeScript - 内容格式:Markdown / MDX - 包管理:pnpm ### 🚀 快速开始 ### 环境要求 - Node.js 18+ - pnpm 9+ ### 安装依赖 ```bash pnpm install ``` ### 开发模式 ```bash pnpm dev ``` ### 构建生产版本 ```bash pnpm build ``` ### 预览构建结果 ```bash pnpm preview ``` ## 📝 使用指南 ### 创建新文章 使用内置脚本快速创建文章: ```bash pnpm new-post hello-world ``` 文章默认存放在 `src/content/posts/` 目录下。 ### 创建新随想 使用内置脚本快速创建随想: ```bash pnpm new-thought my-first-thought ``` 随想默认存放在 `src/content/thoughts/` 目录下。 ### 文章格式 文章使用 Markdown 或 MDX 格式,并支持以下 Frontmatter: ```markdown --- title: 文章标题 published: 2026-01-01 description: 文章描述 image: '' tags: [] category: '' draft: false lang: zh_CN --- # 文章内容 这里是文章正文。 ``` ### 微信读书书架 书架页面位于 `/book`,使用本地数据展示书籍、阅读进度、阅读统计和精选划线。 首次使用: 1. 复制 `.env.example` 为 `.env.local`。 2. 在 `.env.local` 中填入 `WEREAD_API_KEY`。 3. 运行数据同步命令: ```bash pnpm fetch-weread ``` 如果没有配置真实数据,书架页面会自动回退到 `src/data/mock-shelf.ts` 中的示例数据。 ### 本地书评 本地书评存放在 `src/content/book-reviews/` 目录下,并通过 Frontmatter 中的 `bookId` 与书架数据关联。 生成书评草稿: ```bash pnpm draft-book-reviews ``` 预览将要生成的草稿,但不写入文件: ```bash pnpm draft-book-reviews -- --dry-run ``` 本地开发时,`draft: true` 的书评也会显示在书架和书籍详情页中。生产构建会自动隐藏草稿,完成书评后将 `draft` 改为 `false` 即可正式发布。 ### 其他页面 - `/thoughts`:随想 - `/book`:微信读书书架 - `/bangumi`:番组记录 - `/schedule`:课程表 - `/archive`:文章归档 - `/about`:关于页面 ## 📁 项目结构 ```text ├── public/ # 静态资源 ├── scripts/ # 内容管理和数据同步脚本 ├── src/ │ ├── assets/images/ # 图片资源 │ ├── components/ # Astro 和 Svelte 组件 │ │ ├── book/ # 书架和书评相关组件 │ │ ├── bangumi/ # 番组相关组件 │ │ ├── schedule/ # 课程表相关组件 │ │ └── widget/ # 侧边栏和页面小组件 │ ├── content/ # Markdown / MDX 内容 │ │ ├── posts/ # 博客文章 │ │ ├── thoughts/ # 随想 │ │ ├── book-reviews/ # 本地书评 │ │ └── spec/ # 关于等特殊页面 │ ├── data/ # 本地数据和示例数据 │ │ ├── weread/ # 微信读书数据 │ │ ├── mock-shelf.ts # 书架示例数据 │ │ └── schedule.ts # 课程表数据 │ ├── layouts/ # 页面布局 │ ├── pages/ # 页面路由 │ ├── styles/ # 全局和主题样式 │ ├── config.ts # 站点配置 │ └── content.config.ts # 内容集合配置 ├── .env.example # 环境变量模板 ├── astro.config.mjs # Astro 配置 ├── package.json # 项目配置和命令 └── pnpm-lock.yaml # 依赖版本锁定文件 ``` ## 常用命令 ```bash pnpm install pnpm dev pnpm build pnpm preview ``` ## 内容命令 ```bash pnpm new-post <slug> pnpm fetch-weread pnpm draft-book-reviews pnpm new-thought -- "我的新想法" ``` ## 微信读书书架 书架页面使用 `src/data/weread/shelf.json` 作为本地数据源。它由 `pnpm fetch-weread` 生成,包含公开书架、阅读进度、统计、精选划线等信息。私密书籍会在拉取阶段过滤,不会写入 `shelf.json`。 首次使用: 1. 复制 `.env.example` 为 `.env.local`。 2. 在 `.env.local` 填入 `WEREAD_API_KEY`。 3. 运行 `pnpm fetch-weread`。 4. 运行 `pnpm dev` 查看 `/book`。 如果没有真实数据,页面会回退到 `src/data/mock-shelf.ts`。 ## 本地书评草稿 本地书评存放在 `src/content/book-reviews/*.md`,通过 frontmatter 里的 `bookId` 和书架数据关联。重新运行 `pnpm fetch-weread` 不会覆盖这里的内容。 生成草稿: ```bash pnpm draft-book-reviews ``` 脚本会读取 `src/data/weread/shelf.json`,为满足任一条件的书生成草稿: - 有划线:`bookmarkCount > 0`,或 `shelf.notes` 中存在对应 `bookId`。 - 有评分:存在 `rating`、`userRating`、`personalRating` 或 `publicRating`。 - 已读完:`finishReading === 1` 或 `status === "finished"`。 为了避免覆盖已经写过的书评,脚本会扫描 `src/content/book-reviews/**/*.md(x)` 的 frontmatter。只要发现相同 `bookId`,就会跳过该书。 草稿会自动填入: - `bookId` - 标题 - `summary` 占位 - `topics` 占位 - `quotes` 占位,若书架里已有精选划线,会优先带入最多 3 条 - `draft: true` 预览将要生成的草稿但不写入文件: ```bash pnpm draft-book-reviews -- --dry-run ``` 本地开发时,`pnpm dev` 会把草稿也关联到 `/book` 书架和书籍详情页,并显示“草稿”标识,方便边看边补。生产构建会隐藏 `draft: true` 的书评;写完后把 frontmatter 里的 `draft` 改成 `false`,并补完 `summary`、`topics`、`quotes` 和正文,即可在正式站点中展示。 ## 📦 部署 构建后的静态文件位于 dist/ 目录,可部署到任何静态托管平台。 ## 🤝 贡献 欢迎提交 Issue 和 Pull Request! ## 📄 许可证 [MIT License](https://github.com/chuzouX/fuwari/blob/main/LICENSE) 🙏 致谢 感谢所有为这个项目做出贡献的开发者们!尤其感谢[上游仓库](https://github.com/saicaca/fuwari)
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

astrowind
⭕️ AstroWind: A free template using Astro v7 and Tailwind CSS v4. Astro starter theme.
Astro · 博客

astro-paper
A minimal, accessible and SEO-friendly Astro blog theme.
Astro · 博客

fuwari
✨A static blog template built with Astro.
Astro · 博客

Firefly
Firefly 是一款基于 Astro 的静态博客主题,由 CuteLeaf 在 saicaca 的 Fuwari 模板基础上二次开发,主打清新美观的视觉风格。
Astro · 博客

astro-theme-cactus
A simple Astro theme. Use it to create your blog or website.
Astro · 作品集

astrofy
Astrofy is a free and open-source template for your Personal Portfolio Website built with Astro and TailwindCS…
Astro · 作品集
