跳转到内容

从 GitBook 迁移

GitBook 是一个基于 Web 的平台,用于以协作方式创建和发布文档和书籍,具有版本控制集成和可定制功能。

GitBook 和 Astro 有一些相似之处,这将帮助你迁移你的项目

  • Astro 和 GitBook 都支持 Markdown。你可以利用 GitBook 的 Git 同步功能迁移所有现有的文档。

  • Astro 和 GitBook 都使用某种形式的基于文件的路由。对于现有内容和添加新页面,使用 Astro 的文件结构应该会感觉很熟悉。

当你将 GitBook 文档迁移到 Astro 时,你会注意到一些重要的区别

  • GitBook 网站使用在线仪表板进行编辑。在 Astro 中,你将使用代码编辑器和开发环境来维护你的网站。你可以在本地机器上进行开发,也可以选择像 IDX、StackBlitz、CodeSandbox 或 Gitpod 这样的云编辑器/开发环境。

  • GitBook 将你的内容存储在数据库中。在 Astro 中,你将在你的项目目录中为每个页面的内容设置单独的文件(通常是 Markdown 或 MDX)。或者,你可以选择使用CMS 来管理你的内容,并使用 Astro 来获取和呈现数据。

  • GitBook 在 Markdown 的基础上使用自定义语法来处理内容。Astro 通过可选的 Markdoc 集成支持 Markdoc,其语法与你在 GitBook 中使用的语法相似。

要将 GitBook 文档网站转换为 Astro,可以从我们的官方 Starlight 文档主题入门模板开始,或在我们的主题展示中探索更多社区文档主题。

你可以向 create astro 命令传递一个 --template 参数,以使用我们的官方入门模板之一来启动一个新的 Astro 项目。或者,你可以从 GitHub 上的任何现有 Astro 存储库开始一个新项目

终端窗口
npm create astro@latest -- --template starlight

一旦你有了一个新的 Astro 项目,你就可以将现有的 GitBook 内容同步到你的新 Astro 项目中。GitBook 有一个Git 同步功能,它会自动将你的 GitBook 内容同步到 GitHub/GitLab 仓库。

要直接同步到文档模板的内容集合,请将 src/content/docs/ensrc/content/docs 指定为项目目录。

同步内容后,你现在将在你的 Astro 仓库中拥有一份 GitBook 内容的副本。禁用 git 同步以防止将来与 GitBook 同步。

请注意,尽管你现在已将内容迁移到你的 Astro 项目中,但它不会立即可用。要在你的 Astro 网站中使用此内容,你需要花一些时间手动将 GitBook 的语法更改为与 Astro 兼容的格式。特别是

  • Astro 的Markdoc 集成要求文件扩展名为 .mdoc。这是为了避免与其他 Markdown 扩展名(如 .mdx.md)冲突。
  • GitBook 语法与 Markdoc 不同,GitBook 文件中表示闭合标签的前缀 / 被替换为 end。你需要在所有文件中更新此表示法。
  • GitBook 的一些功能依赖于自定义组件。这些组件在 Astro 中不存在,必须通过 Markdoc 配置的 tags 属性创建并添加到你的项目中,或者从你的文件中删除。

更多迁移指南

贡献 社区 赞助