这个站点是从 Maggie Appleton 的 V3 数字花园 fork 来的——我把它重新排为中文学术花园,去掉了 Maggie 个人内容,加入了一套适合中文学术写作的版式、字体与组件。源码开源在 GitHub ,对个人站点来说过度工程化,但工具本身就是研究对象——我把它当作”用工具研究工具”的练习场。
技术栈
底层用 Astro ,专为内容驱动的网站设计的静态站点生成器。它免费给我类型化的内容集合、图片优化、视图过渡动画、路由这些功能,并通过 岛屿架构 最小化客户端 JavaScript。
所有内容用 MDX 写——Markdown 的超集,能在文章里嵌入 Astro 组件。 Vercel 托管,新加坡 POP 对国内访问也相对友好。动画大部分用 CSS,复杂的用 Motion 。
数学公式用 KaTeX 渲染,所有字体(包括 KaTeX 与 LXGW 文楷)都已自托管——绕开 jsdelivr / Google Fonts 在国内的限速。
字体与排版
中文用 LXGW WenKai Light (自托管 woff2,按字符切片按需加载),西文与数字用 Times New Roman(unicode-range 自动接管 U+0020–007E),衬线标题用 Canela Deck ,无衬线 fallback 用 Lato。整套字栈跟我书的 LaTeX ElegantBook 模板 PDF 视觉保持一致。
字号用 Utopia 流体类型系统 ,按浏览器宽度连续调节,不再用断点跳变。
body { font-synthesis: weight none; } 阻断浏览器对 CJK 字符的伪粗体渲染——LXGW WenKai 只设计了 Light 一档,强行加粗会糊。
学术组件
为中文学术写作专门做了几个 MDX 组件:
- Definition / Theorem / Pitfall / MethodCard —— 定义、定理、误区、方法卡四类学术块
- ChapterAudience —— 章首”本章要回答的”
- ChapterTitle2 / ChapterTitle3 —— 节标题用 sea-blue 实心 / 镂空徽章包节号,跟正文 prose 视觉分层
- CodeBlock —— 代码块默认折叠,浅海蓝色系,仿 Maggie 的 Accordion 手感
- GhAlert —— TIP / NOTE / WARNING / IMPORTANT 四种行内提示
- References / ReferencesLink —— 章末文献列表
- Footnote —— Tufte 风边注
视觉色板借鉴 ElegantBook(LaTeX 学术模板):sea-blue 主色 + crimson 警示色 + cream 米色底。
写作流程
我的 CMS 就是一堆 .mdx 平面文件,VS Code 里直接打字。没有从 Notion / Tana 同步到 Web 的花哨管线——我喜欢对显示和排版有完全控制权。直接在 Web 原生介质(HTML / CSS / JS)里工作能玩排版、插图、视频、动画,这些是纯文本管线做不到的。
每个章节都有 startDate 与 updated 两个时间戳,从初稿到现在版本可以一直回溯。
News 抓取与 LLM 评分
News 区收录最近 90 天的 AI 行业动态。每 6 小时由 GitHub Actions 自动抓取 OpenAI、Anthropic、Google AI、DeepMind、NVIDIA、Hugging Face、Mistral、xAI 等厂商发布源,以及 GitHub Trending 上的热门开源项目(RSS、HTML、Playwright 三套抓取器),并用 OpenRouter 的免费模型轮询为每条打分 + 写 80–180 字的中文导读。整套 pipeline 的脚本在 scripts/news/ 下,全部开源。
Growth Stages
每篇文章带一个成长阶段标记:从 seedling 苗子,长成 budding 萌芽,最后变 evergreen 常青。你会经常看到未完成或在进行中的笔记和章节——理想世界里我会把每个起头的东西都写完,但现实中我也会半途而废。能做的就是定期回头补,有时候是几个月,有时候是几年。
一些自定义组件
文章顶部偶尔放一个 assumed audience 组件,说明这篇是写给谁看的:
对中文学术站怎么搭、Claude Code 怎么用感兴趣的研究者。
需要提醒读者潜在陷阱时,用 alert:
一个提醒
并非每篇文章都是结论稿。本站采用 growth stage 系统,请留意每篇顶部的状态标。