跳转到内容

产品简介与核心价值

EpoCanvas Docs 是专门为 EpoCanvas 开源生态打造的官方技术文档站点系统。它基于现代静态网站框架 Astro 5 和 Starlight 构建,旨在为开发者提供一个排版专业、打开快、搜索顺手、易于维护的文档平台。

无论是编写产品的用户手册、API 接口规范,还是记录系统架构设计,EpoCanvas Docs 都能让撰写者专注于写好 Markdown 内容,同时为阅读者提供舒适自然的浏览体验。


解决的实际问题

在日常开发和技术写作中,许多团队在维护文档时常遇到以下困扰:

  1. 页面打开慢、占用内存高:很多文档工具生成的页面带有大量 JavaScript 运行时,手机或弱网环境下打开慢,滚动长文章时容易卡顿。
  2. 长文章导航费劲:常见文档站通常只有左侧菜单,阅读数千字的长篇技术说明时,难以快速了解当前文章内部的小标题层级。
  3. 搜索依赖外部服务:常见的 Algolia 等云端搜索服务需要额外申请账号、配置爬虫密钥,在无法访问外部服务的内网环境中完全失效。
  4. 多语言只有半套:不少文档站宣称支持多语言,实际只有导航按钮翻译了,点进文章正文还是原文;也有的译文缺失时直接 404,读者只能自己改 URL 找内容。

EpoCanvas Docs 正是为了解决这些实际痛点而设计的。


核心功能一览

EpoCanvas Docs 产品简介页在浏览器中的真实渲染效果:左侧分类目录、中央正文、右侧本页目录

图:产品简介页的实际渲染效果。左侧为文档分类目录,中央为正文,右侧为自动生成的”本页目录”大纲,随滚动高亮当前小节。

1. 清晰的三栏式阅读界面

  • 左侧导航栏:按模块组织所有文档分类,带有层级折叠,换页不跳动。
  • 中央正文区:正文最大宽度 60rem,行距 1.68,代码块自适应宽度,长时间阅读不易疲劳。
  • 右侧大纲栏:自动抓取文章内的 h2 和 h3 标题生成”本页目录”,随滚动高亮当前阅读位置,点击任意小标题平滑跳转。

2. 双模式搜索:页内查找 + 全站检索

  • 当前页查找:直接在顶部搜索框输入关键词,页面内所有匹配文字立即高亮,并显示 3/9 这样的进度计数,按回车逐个跳转。
  • 全站检索弹窗:按下 Ctrl + K(Mac 为 Cmd + K)打开全局检索弹窗,基于 Pagefind 静态索引列出所有命中的文档和段落预览。
  • 全部搜索能力都在浏览器本地完成,不依赖任何后端服务,托管在内网也能用。

3. 10 种语言的完整译文

  • 支持简体中文、繁体中文、英语、日语、韩语、西班牙语、法语、德语、俄语、葡萄牙语共 10 种语言,每种语言的导航、侧边栏与全部文档正文都是完整翻译。
  • 点击右上角语言按钮即可跳转到同一篇文章的目标语言版本,URL 带语言前缀(如 /en/canvas/),可直接收藏或分享给使用其他语言的同事。
  • 个别页面暂缺某语言译文时,该页自动回退显示默认中文内容,不会出现 404 报错。

4. 专业的 Markdown 与代码排版

  • 基于 Expressive Code 的代码高亮,支持为代码块标注文件名标题、高亮指定行、展示 diff 对比。
  • 原生支持 4 种彩色提示框(Note、Tip、Caution、Danger),并支持自定义标题。
  • 支持 GFM 表格、任务清单、删除线等常用 Markdown 扩展语法,完整规则见渲染规则详解。

5. 构建快、托管免费

  • 基于 Astro 5 静态编译,构建产物为纯 HTML、CSS 与少量按需加载的 JS,全站 10 种语言约 180 个页面完整构建约 25 秒。
  • 预置 Cloudflare Pages 部署命令,一行指令即可将文档发布到线上,并自动获得 HTTPS 证书。

项目整体架构

为了让文档保持轻巧好维护,系统按职责划分为四个部分:

EpoCanvas Docs 系统架构图:Markdown 内容源经过 Astro 编译,套用定制界面组件,最终生成静态页面并托管到 Cloudflare Pages

图:系统架构。撰写者只需维护 Markdown 内容源,其余环节全部自动完成。

  • 底座与样式:基于 Astro 5 静态内核,通过 src/styles/custom.css 定义设计变量,浅色与深色模式共用同一套变量名。
  • 内容源管理:所有文档保存在 src/content/docs/ 目录下,使用纯 Markdown(.md)或可嵌入组件的 MDX(.mdx)撰写。
  • 界面组件:通过覆盖 Starlight 原生组件,定制了顶栏、侧边栏、本页目录与搜索弹窗。
  • 分发与访问:编译产物保存在 dist/ 目录,托管在 Cloudflare Pages,由全球 CDN 节点就近响应。

适合谁用

EpoCanvas Docs 适合以下场景:

  • 开源项目的官方文档站:产品手册、API 参考、架构说明,一个仓库全部搞定;
  • 团队内部知识库:纯静态、无外部服务依赖,放在内网也能完整使用搜索;
  • 个人技术博客式文档:只写 Markdown,不操心前端工程,一条命令发布。

它不适合需要登录鉴权、评论互动、实时数据展示的场景——纯静态站点没有后端,这类需求需要另行搭配服务。


常用文档工具对比

功能特性EpoCanvas DocsDocusaurusVitePressGitBook 商业版
底层技术Astro 5 + StarlightReact 18Vue 3 + Vite闭源 SaaS 平台
搜索机制Pagefind 本地静态索引依赖 Algolia 云服务Minisearch 内存搜索自带后端检索
布局设计三栏(左菜单 + 中正文 + 右目录)需要配置插件改造默认双栏/三栏固定两栏
部署方式Cloudflare Pages 直传S3 / Vercel / GitHubGitHub Pages平台私有托管
自主可控度100% 开源,源码完全在手100% 开源100% 开源闭源,收费功能多

技术栈与版本

当前版本实际使用的技术栈(以构建产物为准):

组件版本作用
Astrov5.18.2静态站点内核,负责构建与路由
Starlightv0.32.6文档站框架,提供布局骨架与内容处理
Expressive Code随 Starlight 集成代码块高亮、标题栏、行高亮
Pagefind经 @pagefind/default-ui 1.5.2 集成构建期生成静态搜索索引
Wranglerv4.131.0Cloudflare 官方 CLI,执行部署
运行环境Node.js 18.20.8 / 20.3+ / 22+,pnpm 10本地开发与构建环境;执行 pnpm run deploy 时 wrangler 要求 Node.js 22 及以上

升级依赖时请同步阅读 界面组件与二次开发 中的回归测试注意事项。


项目目录结构

本项目的代码组织如下,各目录分工明确:

epocanvas-docs/
├── public/ # 静态资源目录(图片、矢量图标直接放这里)
│ └── images/canvas/ # 界面截图与系统架构矢量图
├── src/
│ ├── components/starlight/ # 定制的页面组件(顶栏、侧边栏、本页目录、搜索弹窗等)
│ ├── config/navigation.ts # 顶部导航栏配置(增删菜单项改这里)
│ ├── content/docs/ # 文档正文 Markdown 文件存放位置
│ │ ├── index.mdx # 文档站首页落地页
│ │ ├── canvas/ # 各章节文档(简体中文,默认语言)
│ │ └── en/ ja/ ... # 其他 9 种语言的完整译文目录
│ ├── styles/custom.css # 全局样式与主题颜色变量
│ ├── utils/i18n.ts # 界面词条字典与语言清单
│ └── pages/404.astro # 自定义 404 页(按浏览器语言输出提示文案)
├── scripts/ # 构建前缓存失效、i18n/图片/锚点校验与截图脚本
├── astro.config.mjs # 站点主配置文件(标题、语言列表、侧边栏目录在这里配)
└── package.json # 项目依赖与运行命令配置

下一步