About

关于本站、技术实现与设计历程。

106 posts 13 tags 82.1k words built 2026-05-22

关于本站:Zemengzhou Space

泥嚎,这里是 Zemengzhou Space

这是我的个人博客 Zemengzhou Space。建站时参考了朋友 @Depaser 的博客和记笔记方式;网站设计、功能实现与文章整理也大量使用了 AI,所以如果你觉得 About 有一点“人机味”,判断得没错。

我把这里当作自用知识库,而不是一份需要反复润色的出版物。文章最重要的任务是保存思路,让未来的我能够迅速重新理解一个公式、一种解法或一段项目过程。语言是否精致并不重要,只要内容基本可靠、结构清楚、我自己能看懂就够了。

Zemengzhou Space 网站页面截图
网站首页:数学笔记、控制理论、工程记录与个人生活被整理在同一个空间里。

我怎样记笔记

这套流程是 @Depaser 教我的,我觉得很有意思:

  1. 把学习材料交给 AI,例如课堂截图、题目图片、文档或零散想法。
  2. 让 AI 先完成初步识别、整理与结构化。
  3. 把结果交给 Codex 或 Claude Code,继续总结、补全 Markdown 格式,并放入正确的内容目录。
  4. 由编程 Agent 检查改动、执行构建,再完成 git commitgit push
  5. GitHub 仓库更新后,Vercel 自动构建并发布到 zemengzhou.com

从一份资料到网站文章,通常不需要手动搬运文件或操作部署面板。很多时候,我只负责说明“想记录什么”和检查结果,其余工程步骤由 Agent 完成。

AI 偶尔也会给出意料之外的简便思路。例如:

AI 的答案并不天然正确,因此这些内容首先是我的学习记录,不应被视为无需验证的标准答案。

每日知乎热榜

博客接入了知乎数据开放平台的热榜 API,并使用 GitHub Actions 建立每日自动化流程:

  1. 每天北京时间 14:00,GitHub Actions 启动定时任务。
  2. 脚本读取知乎热榜前 30 条数据。
  3. DeepSeek API 按固定结构整理并生成 Markdown 日报。
  4. 文件写入 src/content/briefings/,工作流自动提交并推送。
  5. Vercel 检测到仓库更新后重新部署。

生成结果会出现在 Daily News/briefings/日期-zhihu-hot-daily/ 路径下。如果你也想搭建类似流程,可以从知乎数据开放平台申请接口,再用仓库 Secrets 保存访问凭据。

Zemengzhou Space 每日知乎热榜页面
从定时任务、AI 整理、Git 提交到 Vercel 部署,日报发布过程不需要人工值守。

搜索与知识助手

搜索页面 的视觉与交互参考了 Claude 的安静对话式布局,但保留了两种不同入口:

  • Keyword search:读取构建时生成的 /search-index.json,按标题、摘要、标签和正文片段加权检索。
  • AI search:先检索真实站内文章,再把相关内容交给 Agnes 2.0 Flash 生成中文回答,并列出引用文章。

Agent 由 Sapiens AI 的 Agnes 2.0 Flash 驱动,目前作为实验性方案使用。会话支持多轮追问、Markdown、KaTeX 公式和本地历史记录;历史保存在访问者自己的浏览器中。回答被要求以本站内容为依据,但精确结论仍应打开原文核对。

Zemengzhou Space 搜索与知识助手页面
同一入口支持关键词检索与 AI 对话;Agent 回答会附上实际命中的站内文章。

评论与一些小巧思

文章页、留言板和友链申请页使用自建的 Waline 评论服务。欢迎留下问题、纠错、补充思路,或者只是打个招呼。

网站的图标来自我对象的微信头像。它比现在的博客设计更早出现,也因此成为这个站点一直保留下来的私人标记。

Zemengzhou Space 头像与网站图标
站点头像与图标的来源;旧聊天记录里出现的还是博客很早期的版本。

内容方向

  • 高等数学:积分、极限、微分方程与常见解题方法。
  • 自动控制原理:根轨迹、频率响应、稳态误差与系统分析。
  • 课程设计与工程项目:控制柜接线、运动控制与项目过程记录。
  • 数字信号处理与线性代数:课程知识的系统整理。
  • 个人生活:不定期更新。

技术实现

层级当前实现
框架Astro v6;内容页面以静态输出为主
内容Astro Content Collections + Markdown frontmatter
页面切换Astro ClientRouter / View Transitions,保留 SPA 式体验
数学渲染KaTeX、remark-math、rehype-katex
题目环境自定义 remark 插件,支持选择题、填空题、解答与选项区
关键词搜索构建时生成 /search-index.json,正文索引截取 600 字
AI 搜索Vercel Function + Agnes 2.0 Flash + 站内内容检索
评论Waline,自建服务端
图片Astro 内建 Sharp 优化、WebP、lazy loading 与显式尺寸
自动日报GitHub Actions + 知乎热榜 API + DeepSeek API
SEO / 订阅Canonical、Open Graph、Twitter Card、RSS、Sitemap
部署GitHub main 分支连接 Vercel,推送后自动发布

页面地图

路径内容
/首页、分类入口、近期文章与站点状态
/archive文章归档、时间线与统计
/tags标签索引
/search关键词搜索与 AI 知识助手
/daily/news自动生成的每日知乎热榜
/about本页:网站、工作流与技术实现
/changelog网站更新记录
/guestbook公共留言板
/links友链与申请入口
/posts/[slug]文章详情、分级目录、系列导航、评论与相关文章
/rss.xml全站文章 RSS
/sitemap-index.xml搜索引擎站点地图

项目结构

src/
├── content/
│   ├── blog/                  # Markdown 文章与配图
│   └── briefings/             # 自动生成的每日简报
├── pages/
│   ├── posts/[...slug].astro  # 文章详情
│   ├── search.astro           # 双模式搜索与会话界面
│   ├── search-index.json.ts   # 静态全文索引
│   ├── rss.xml.js             # RSS
│   └── ...                    # 首页、归档、标签、About 等
├── layouts/BaseLayout.astro   # 导航、主题、SEO 与页面骨架
├── components/                # TOC、评论、侧栏、音乐播放器等
├── styles/global.css
└── utils/                     # 排序、分组、相关文章与统计
api/
└── ai-search.js               # Agnes 服务端代理与内容约束
.github/workflows/
└── daily-zhihu-briefing.yml   # 每日简报任务
scripts/
└── generate-daily-zhihu-briefing.mjs

写作格式

每篇文章都使用 Markdown,并在文件头声明 frontmatter:

---
title: 文章标题
date: 2026-05-22T21:00:00+08:00
description: 一句话摘要。
tags:
  - 高等数学
draft: false
---

文件名决定 URL slug;draft: true 的文章不会进入列表、搜索、RSS 或站点地图。数学公式行内使用 $...$,块级使用 $$...$$

数学题目还可以使用专门环境:

:::: choice
选择题题干

::: options
A. 选项一
B. 选项二
C. 选项三
D. 选项四
:::
::::

::: solution
解答过程
:::

填空题使用 ::: blank,解答题使用 ::: written。渲染后,题干、选项和解答会形成清楚的独立区域。

AI 与维护

建站前期主要使用 Claude Code。自 2026 年 6 月 10 日起,Codex 逐渐承担文章更新、页面改版、Bug 修复、构建验证与 Git 推送。原因很简单:Claude 太贵了。

现在,这些工具主要处理三类工作:

  • 建站与改版:实现 Astro 路由、搜索、KaTeX、Waline、TOC、SEO、响应式样式和各类交互。
  • 文章发布:放置文件、补全 frontmatter、检查 Markdown、构建并推送。
  • 日常维护:根据对话修改组件、审阅差异、定位线上错误,再提交修复。

典型发布流程仍然很朴素:

git add .
git commit -m "描述改动"
git push

区别只是,这三行命令现在通常也由 Codex 或 Claude Code 执行。Vercel 收到 GitHub 更新后,会在约一两分钟内完成新版本部署。

联系

我也会在知乎记录内容:知乎 / 择梦舟。如果想讨论文章、指出错误或交换友链,也可以直接使用本站的留言板

更新日志

2026-07-04 · v1.6.1 — Daylight Theme

  • 取消昼夜主题切换,统一使用与站点内容相协调的日间浅色模式。
    • 继续沿用米白背景、暖色玻璃卡片和低对比度配色,让不同页面保持一致、简约的阅读体验。

2026-07-03 · v1.6.0 — Watercolor Portal

  • 重设计首页为水彩流体揭示式入口,并统一首页导航与背景的融合关系。
    • 调整首屏人物、书法标记、内容分布与流体遮罩,让首页过渡和信息层次更自然。
  • 将桌面端二级导航升级为宽幅双栏悬浮面板。
    • 左栏保留栏目入口,右栏分别展示最近文章、题目、新增友联与 Changelog,展开时虚化导航外区域。
  • 优化手机端导航菜单的打开状态。
    • 菜单面板展开及收起动画期间隐藏顶部导航条,避免导航条透过遮罩干扰阅读与操作。

2026-07-02 · v1.5.2 — Homepage and Navigation

  • 重做首页首屏结构,保留圆形头像、站点名和简短入口,弱化其他干扰内容。
    • 让首页作为个人知识库入口继续向下衔接原有内容区,保持浏览路径连贯。
  • 调整导航栏的滚动交互与移动端表现。
    • 顶部导航在滚动时改为更紧凑的浮动状态,并修复移动端二级导航的交互问题。

2026-06-30 · v1.5.1 — Mobile Polish

  • 优化手机端顶栏,只保留站点名、Search、Music、日间夜间切换与更多图标。
    • 移除“更多”文字标签,统一移动端操作区的视觉密度与点击节奏。
  • 修复移动端更多菜单在切换其他板块后无法再次点击的问题。
    • 重新整理页面切换后的菜单初始化与关闭状态,避免事件监听失效。
  • 调整 Links 页面 Friends 区块在手机端的卡片排版。
    • 友链卡片改为完整占满单列宽度,并同步收紧间距与内边距。

2026-06-29 · v1.5.0 — Friend Circle

  • 在 Links 下新增英文的 Circle 页面,聚合除本站外所有友链的最新文章。
    • 统一按发布时间排序,只保留最新 10 篇,并在 Links 首页增加入口卡片预览。
  • 将友链数据抽离为独立数据文件,并新增静态抓取产物,减少页面内联维护成本。
    • 友链聚合结果单独生成,构建时直接读取,不依赖访问时实时请求。
  • 新增 GitHub Actions 定时刷新流程,后续自动抓取友链 Feed 并推送部署。
    • 工作流每 6 小时刷新一次;若内容变化,则自动 commit、push,并由 Vercel 自动重新部署。

2026-06-28 · v1.4.0 — Knowledge Assistant

  • 搜索页升级为关键词搜索与 Agnes AI 双模式,结果统一进入对话流。
    • 支持多轮会话、历史回滚、新建对话、Markdown 与 KaTeX。
    • 回答绑定真实检索结果,并修复空结果与引用文章状态不一致的问题。
  • 文章阅读页改为平面文档布局,重构标题简介和分级目录。
    • 去除正文外层玻璃卡片,恢复独立简介字形并优化各级标题视觉层次。
  • 统一文章、About 与日报的移动端目录,使其与顶部导航融合并支持当前章节展开。
    • 修复目录中的 KaTeX 公式渲染和移动端宽度问题。
  • 重写 About 页面结构、说明文字与配图。
    • 补充网站工作流、技术栈、页面地图、AI 助手和自动日报说明。
  • 修复搜索图标按键后变色放大、引用图片失效和 AI 服务错误提示不明确的问题。

2026-06-27 · v1.3.1 — Newsroom

  • 首页加入悬浮导航和最新日报入口,并统一二级导航样式。
    • 将辅助入口收进顶部菜单,调整悬浮位置、间距和触控区域。
  • Daily News 归档改为日历视图,规范日报标题与发布时间。
    • 首页当天新闻与文章流对齐,恢复日报摘要显示。
  • 优化文章容器、首页间距和子菜单交互。

2026-06-26 · v1.3.0 — Daily Briefing

  • 上线 Daily News 与备考日程页面。
    • 备考日程支持响应式时间表,日报列表采用独立新闻展示方式。
  • 接入知乎热榜 API、DeepSeek 和 GitHub Actions,自动生成每日简报。
    • 固定北京时间 14:00 执行,加入格式校验、失败重试、自动提交和推送。
    • 增强新闻容器、外部链接和日报目录锚点的稳定性。

2026-06-25 · v1.2.1 — Mobile Focus

  • 优化移动端首页布局,在窄屏隐藏拥挤的辅助面板。
    • 保留核心内容流和品牌标题,减少首屏横向溢出。
  • 采用重建后的工程英语复习工具页面,并更新首页封面展示。

2026-06-24 · v1.2.0 — Review Desk

  • 上线独立的工程英语复习工具页面。
    • 支持课程切换、拼写练习、答案显示和键盘快捷键。
  • 修复页面乱码、练习顺序和移动返回操作。
    • 规范静态资源路径、术语数据和按键提示。

2026-06-23 · v1.1.0 — Homeward

  • 重设计首页,加入分类侧栏、公告卡片、站点快照与新的内容流布局。
    • 对齐首页与 Archive 的内容宽度,平衡快照卡片和分类栏比例。
  • 优化友链卡片资源、排序方式和申请页说明。
    • 增加站点截图并修复外链图片显示。

2026-06-22 · v1.0.0 — Friendship Links

  • 正式上线友链列表与友链申请入口,作为网站首个稳定版本。
    • 提供友链展示、申请示例和独立申请路由。
  • 部署自建 Waline 服务,并接入文章评论、留言板和友链申请评论区。
    • 增加默认服务地址和页面切换后的重新初始化逻辑。
    • 提供 Docker Compose、Nginx 与环境变量部署配置。

2026-06-21 · v0.9.3 — Conversation

  • 恢复 Waline 评论组件,为评论、留言板与友链申请功能上线做准备。
    • 统一文章页评论挂载点和客户端样式资源。

2026-06-19 · v0.9.2 — Reading Polish

  • 重整 About 页面文案,并统一代码块的暖色阅读样式。
    • 调整代码背景、边框、语法高亮和移动端横向滚动。

2026-06-18 · v0.9.1 — Chronicle Polish

  • 优化 Changelog 时间线布局、导航和首页近期内容的尺寸层级。
    • 调整更新卡片、统计信息和页面入口的视觉密度。

2026-06-17 · v0.9.0 — Chronicle

  • 将 About 与 Changelog 拆分为独立页面,建立专门的站点更新记录入口。
    • Changelog 从 About 的 Markdown 更新章节读取并生成时间线。

2026-06-16 · v0.8.1 — Site Metrics

  • 统一 Archive 与 Tags 的文章数、标签数、字数和最新更新时间统计。
  • 修复字数计算、中文路径解码和时区显示。
    • 站点状态卡改为显示建站天数与总字数。

2026-06-15 · v0.8.0 — Timeline

  • 重设计 Archive,加入时间线、统计卡片、文章热力图和日期交互。
    • 支持年份/月折叠、日期悬停展开、点击固定和热力图月份导航。
    • 加入动态考试倒计时、当天时间与状态卡片。
  • 音乐播放器增加播放列表与音量控制,并改善深色模式可读性。

2026-06-14 · v0.7.0 — Warm Night

  • 重构桌面导航与暖色玻璃层,加入首页轮换打字效果。
    • 稳定打字动画占位,避免文字切换造成布局跳动。
  • 完善夜间模式的暖棕配色、代码高亮和数学公式显示。
  • 新增移动端音乐播放器并修复音频路径与遮挡问题。
    • 导航栏改为全宽背景并统一激活态。

2026-06-12 · v0.6.1 — Nebula Polish

  • 将 Tags 页面定稿为知识星云与文章索引结合的响应式知识地图。
  • 优化节点布局、标签配色和页面文字层级。
    • 星云节点颜色与标签系统一致,保留无 Canvas 时的文章索引。

2026-06-11 · v0.6.0 — Structured Notes

  • 新增 Markdown 题目环境,统一选择题、填空题、解答题、选项和答案容器。
    • 自定义 remark 插件负责解析嵌套容器并输出统一题目卡片。
  • Tags 页面首次加入知识星云可视化,并修复 Canvas 渲染。
  • 优化目录行为,非当前章节的子目录自动折叠。

2026-06-08 · v0.5.3 — Embedded Documents

  • 文章页支持直接嵌入公开 PDF,并保留原始矢量清晰度。
    • 静态 PDF 统一从 public 路径提供,修复构建后 404。
  • 完善系列导航数据,使同一项目的多篇记录可以前后切换。

2026-06-07 · v0.5.2 — Comment Reset

  • 完成 Giscus、Waline 方案测试后暂时移除评论功能,避免国内访问异常。
    • 清理失效初始化脚本,保留后续重新接入评论的组件边界。
  • 修复导航与目录标题中的公式渲染和特殊字符路径问题。

2026-06-06 · v0.5.1 — Category Atlas

  • 分类页改为按标签分组的可折叠导航,并新增 Projects 独立分类。
    • 分类导航支持内外层 details,修复 Projects 误显示空状态。
  • 启用 Sharp 图片优化,删除高开销的首页落叶动画。
  • 完善 favicon、author、keywords 与 theme-color 元信息。
  • 修复分类页空状态和目录高亮回跳问题。

2026-06-05 · v0.5.0 — Fast Navigation

  • 启用 Astro ClientRouter 与 View Transitions,获得 SPA 式页面切换体验。
    • 顶部导航在页面切换间持久化,减少整页刷新感。
  • 拆分 KaTeX 资源、瘦身搜索索引并优化评论与目录加载策略。
  • 修复死链、锚点遮挡和移动端导航密度。

2026-06-04 · v0.4.0 — Publishing Foundation

  • 接入 canonical、Open Graph、Twitter Card、RSS 与 Sitemap。
    • 增加默认 1200×630 分享图、robots.txt 和站点订阅入口。
  • 新增相关文章、系列导航和移动端折叠目录。
    • 相关文章按标签关联度计算,系列导航自动生成上下篇与集数入口。
  • 图片切换为 Astro 优化管线,支持 WebP、lazy loading 和显式尺寸。
  • About 页面改为直接渲染站内 Markdown 内容。

2026-06-03 · v0.3.1 — Mobile Header

  • 手机端顶栏改为品牌与导航双行布局,并调整锚点滚动偏移。
  • 优化品牌对齐、导航间距和触控区域。
    • 修复固定顶栏遮挡文章锚点的问题。

2026-06-02 · v0.3.0 — Content Architecture

  • 分类路由增加 Projects,并重构 About 的结构与工作流说明。
    • 侧栏加入 Projects 子分类,课程设计内容从 Other 独立出来。
  • 目录支持链接标题并保留完整文字,修复复杂标题解析。

2026-06-01 · v0.2.4 — Formula Navigation

  • 目录正式支持 KaTeX 公式渲染,恢复标题中的数学表达式。
    • 目录文本与正文标题共享公式渲染结果,避免公式源码直接显示。

2026-05-26 · v0.2.3 — Markdown Cleanup

  • 统一 Markdown 数学定界符、公式块间距和 frontmatter 后的空行。
  • 修复图片路径编码与构建失败问题。
    • 统一代码与公式块周围留白,减少移动端溢出。

2026-05-25 · v0.2.2 — Visual Identity

  • Tags 列表加入数量限制与分页。
    • 标签首页每组显示有限条目,详情页按固定数量分页。
  • 更新 favicon、首页立绘和响应式加载策略,移动端停止预加载大图。
  • 固定浅色主题并清理未使用的视觉依赖。
    • 删除未采用的玫瑰装饰和机器学习抠图依赖。

2026-05-24 · v0.2.0 — Search & Theme

  • 搜索升级为构建时全文索引,支持正文匹配、得分排序、关键词高亮和摘要片段。
    • 搜索栏使用 sticky 定位,索引覆盖标题、标签、摘要和正文。
  • 加入主题系统、代码复制和公式源码复制交互。
    • 支持自动/手动主题选择,并为代码框、搜索框和日历适配主题变量。
  • 接入首版 Giscus 留言板与文章评论,并为全站标题增加 KaTeX 渲染。
  • 建立暖色玻璃背景与全宽磨砂顶栏的视觉基础。

2026-05-23 · v0.1.1 — Navigation Basics

  • 增加文章目录并持续修复公式标题、层级和 Archive 布局。
    • 目录开始支持滚动定位和多级标题结构。
  • 首页、归档和分类入口完成第一轮结构调整。

2026-05-22 · v0.1.0 — First Light

  • 初始化 Zemengzhou Space,建立 Astro 页面路由、内容集合和基础布局。
  • 完成首页、文章页、About、Archive 与基础配色。
    • 建立 Markdown frontmatter、文章标签与日期排序规则。