TypeScript Static Site Generator 推荐 ★ 12.3k

Quartz

a fast, batteries-included static-site generator that transforms Markdown content into fully functional websites

📅 2026-05-25 🔗 jackyzha0/quartz ⭐ 综合评分:4.2 / 5

🎯 为什么需要它

你有一个 Obsidian 知识库,里面积累了大量笔记、双向链接和图谱关系。你想把这些笔记发布到网上,让别人也能浏览你的数字花园(Digital Garden),但又不想手动维护一个网站。

Quartz 就是为这个场景而生的。它是一套基于 TypeScript 的静态站点生成器,专门将 Markdown 内容(尤其是 Obsidian 风格的笔记)转化为功能完备的网站,具备双向链接、图谱视图、全文搜索等数字花园核心特性。

一句话定位

把你的 Obsidian 知识库变成一个可在线访问的数字花园,零后端、免费托管。

它解决的核心痛点

✅ 核心优势

优势说明
Obsidian 原生兼容支持 wikilinks、transclusions(嵌入)、backlinks、标签、frontmatter — 你的 Obsidian 笔记无需任何修改即可发布
开箱即用的功能堆栈全文搜索、图谱视图、LaTeX 数学公式、代码高亮、链接预览弹窗、评论系统、国际化 — 全部内置
SPA 级别的页面速度客户端预加载 + SPA 路由,页面切换几乎零延迟,bundle 体积极小
TypeScript 插件系统三层管道架构:Transformers(解析)→ Filters(过滤)→ Emitters(生成),全部可自定义
热重载开发体验配置文件修改即时生效,内容修改增量构建,开发迭代极快
零后端、免费托管纯静态输出,可部署到 GitHub Pages、Cloudflare Pages、Vercel、Netlify 任何静态托管
Docker 支持提供官方 Docker 配置,适合需要容器化部署的团队

⚡ 性能表现

Quartz v4 使用 esbuild 作为构建工具,构建速度极快。

构建性能

运行时性能

实测参考

社区用户反馈:1000+ 笔记的大型知识库,完整构建约 5-10 秒,增量构建 < 1 秒。页面加载 Lighthouse 评分普遍 95+。

🚀 快速上手

前置要求

Step 1:克隆并初始化

git clone https://github.com/jackyzha0/quartz.git
cd quartz
npm i
npx quartz create

npx quartz create 会引导你选择:从现有 Obsidian vault 导入内容,或创建空白项目。

Step 2:放入你的内容

将你的 Markdown 笔记放入 content/ 目录。Quartz 会自动识别 wikilinks、frontmatter、标签等 Obsidian 语法。

content/
  ├── index.md          # 首页
  ├── notes/
  │   ├── my-note.md    # 你的笔记
  │   └── another.md
  └── tags.md           # 标签页

Step 3:本地预览

npx quartz build --serve

访问 http://localhost:8080 即可预览。修改内容会自动热重载。

Step 4:配置你的站点

编辑 quartz.config.ts 自定义站点信息:

const config: QuartzConfig = {
  configuration: {
    pageTitle: "My Digital Garden",
    enableSPA: true,
    enablePopovers: true,
    baseUrl: "yoursite.com",
    // ... 更多配置
  },
  plugins: {
    transformers: [
      Plugin.FrontMatter(),
      Plugin.Latex({ renderEngine: "katex" }),
      // ...
    ],
    filters: [Plugin.RemoveDrafts()],
    emitters: [
      Plugin.AliasRedirects(),
      Plugin.ComponentResources(),
      // ...
    ],
  },
}

Step 5:部署上线

npx quartz build

构建产物在 public/ 目录,推送到 GitHub 后可配置 GitHub Pages / Cloudflare Pages / Vercel 自动部署。

典型部署流程(GitHub Pages)

  1. Fork Quartz 仓库到你的 GitHub 账号
  2. content/ 目录放入你的笔记
  3. 推送到 main 分支
  4. 在仓库 Settings → Pages 中启用 GitHub Actions 部署
  5. 每次 push 自动构建并发布

📦 适用场景

✅ 最佳使用场景

场景为什么适合
个人数字花园Quartz 的核心设计目标,双向链接 + 图谱视图完美匹配
Obsidian 笔记发布原生兼容 Obsidian 语法,零修改直接发布
技术博客支持代码高亮、LaTeX、标签分类,适合技术写作
团队知识库Docker 支持 + 静态托管,适合小团队内部知识共享
学生/研究者主页免费、快速、可自定义,适合学术笔记和研究记录

⚠️ 不太适合的场景

场景原因
大型企业文档站Quartz 定位是个人/小团队工具,缺乏多语言版本管理、权限控制等企业特性
电商 / 动态网站纯静态生成,无服务端渲染,不适合需要动态交互的场景
非 Markdown 内容核心围绕 Markdown 设计,如果你的内容以富文本/视频为主,不是最佳选择
需要极致构建速度的超大站万级页面场景下,Hugo(Go 原生)的构建速度更有优势

⚠️ 已知坑

Node.js 版本要求高

Quartz v4 要求 Node.js >= v22,很多开发者本地环境还是 v18/v20。升级 Node 版本是第一个门槛。建议使用 nvmfnm 管理 Node 版本。

客户端 JavaScript 较重

Quartz 使用了较多客户端 JS 来实现 SPA 路由、搜索、图谱等功能。对于追求「零 JS」的纯静态站场景,这是一个权衡。社区有用户反馈这一点。

v4 是完全重写,v3 不兼容

Quartz v4 是从零开始的重写版本。如果你之前用的是 v3,升级到 v4 几乎等于迁移新项目,配置方式、目录结构、插件系统全部不同。

TypeScript 配置有学习曲线

虽然不需要写代码,但配置文件是 TypeScript 格式(quartz.config.ts),非开发者可能觉得不如 YAML/TOML 直观。好在有 TypeScript 语言服务的 IDE 会提供类型提示。

官方文档偶尔不可达

文档站 quartz.jzhao.xyz 偶尔出现 DNS 解析问题。备用方案:直接阅读仓库中的 docs/ 目录源文件。

发布节奏较慢

最新正式 Release 是 2023 年 8 月的 v4.0.8,此后没有新的 Release tag。但主分支仍在持续 commit(1,600+ commits),说明项目活跃但不频繁发版。使用时建议直接跟踪 main 分支。

🆚 竞品对比

维度 Quartz Hugo + Blowfish Astro Obsidian Publish
定位 数字花园专用 SSG 通用 SSG + 数字花园主题 通用 Web 框架 Obsidian 官方发布服务
语言 TypeScript Go TypeScript 闭源
Obsidian 兼容 ⭐⭐⭐⭐⭐ 原生 ⭐⭐⭐ 需配置 ⭐⭐ 需插件 ⭐⭐⭐⭐⭐ 完美
构建速度 快(esbuild) 极快(Go 原生) 中等 不需要构建
开箱功能 搜索/图谱/backlinks/标签全内置 需主题和插件组合 需自己组装 与 Obsidian 一致
定制能力 高(TypeScript 插件) 高(Go 模板) 极高(任意框架)
学习曲线 中等 中等偏高 极低
费用 免费 免费 免费 $8/月/用户
社区规模 12.3k stars Hugo 78k+ stars 48k+ stars 官方产品

选型建议

🌍 生态社区

项目数据

指标数据
GitHub Stars12,300+
总 Commits1,626
正式 Releases4 个(v4.0.8 Latest, 2023-08-21)
主语言TypeScript 85.2% / SCSS 8.3%
LicenseMIT
主分支v4(活跃开发中)

社区资源

维护状态评估

虽然最新 Release 停留在 2023 年 8 月,但主分支持续有 commit,Issues 仍在响应。项目由作者 Jacky Zhao 个人维护,社区贡献活跃。属于「个人项目但社区健康」的状态。

💡 引入评估

★★★★☆
综合评分:4.2 / 5 — 推荐使用
上手难度
4.0
文档完善度
3.8
社区活跃
4.2
性能
4.4
稳定性
4.1
定制能力
4.5

值不值得引入?

结论:推荐

如果你使用 Obsidian 管理笔记并想发布为数字花园,Quartz 是当前最佳选择。它在 Obsidian 兼容性、开箱功能、免费三个维度上没有竞品能同时满足。

引入决策树

  1. 你用 Obsidian 吗?→ 是 → 继续
  2. 你想免费发布吗?→ 是 → 继续
  3. 你需要双向链接/图谱/搜索吗?→ 是 → 选 Quartz
  4. 你愿意付费省事吗?→ 是 → 考虑 Obsidian Publish
  5. 你需要极致构建速度(万级页面)?→ 是 → 考虑 Hugo

📝 个人备注