跳到主要内容
版本:2.x

介绍

⚡️ Docusaurus 将帮助您在最短的时间内发布一个漂亮的文档网站

💸 构建自定义技术栈很昂贵。 相反,专注于您的内容,只需编写 Markdown 文件。

💥 想要更多? 使用高级功能,例如版本控制、国际化、搜索和主题自定义。

💅 查看最佳 Docusaurus 网站 以获取灵感,并阅读一些用户评价

🧐 Docusaurus 是一个静态站点生成器。 它使用单页应用程序构建,具有快速客户端导航,利用React 的强大功能使您的网站具有交互性。 它提供开箱即用的文档功能,但可用于创建任何类型的网站(个人网站、产品、博客、营销登录页面等)。

快速通道 ⏱️

通过玩游戏在5 分钟内了解 Docusaurus!

创建一个新的 Docusaurus 网站并按照非常简短的嵌入式教程操作。

安装 Node.js 并创建一个新的 Docusaurus 网站

npx create-docusaurus@latest my-website classic

启动网站

cd my-website
npx docusaurus start

打开 http://localhost:3000 并按照教程操作。

提示

使用docusaurus.new 在您的浏览器中立即测试 Docusaurus!

或在线阅读5 分钟教程

Docusaurus:文档轻松制作

Algolia 社区活动 上的此演示中,Meta 开源团队 分享了 Docusaurus 的简短介绍。 他们介绍了如何开始使用该项目,启用插件以及设置文档和博客等功能。

从 v1 迁移

Docusaurus v2 是对 Docusaurus v1 的完全重写,利用了完全现代化的工具链。 在 v2 正式发布 之后,我们强烈建议您使用 Docusaurus v2 而不是 Docusaurus v1,因为 Docusaurus v1 已被弃用。

许多用户 已经在使用 Docusaurus v2(趋势)。

如果以下情况,请使用 Docusaurus v2

  • 您想要一个现代的 Jamstack 文档网站
  • 您想要一个具有客户端路由的单页应用程序 (SPA)
  • 您想要 React 和 MDX 的全部功能
  • 您不需要对 IE11 的支持

如果以下情况,请使用 Docusaurus v1

  • 您不想要单页应用程序 (SPA)
  • 您需要对 IE11 的支持(……您需要吗? IE 已达到生命周期结束,不再得到官方支持)

对于现有的 v1 用户,如果您希望升级到 v2,可以按照我们的迁移指南操作。

功能

Docusaurus 的构建非常注重开发人员和贡献者的体验。

  • ⚛️ 用 💚 和 React 构建
    • 使用 React 扩展和自定义
    • 通过提供您自己的 React 组件,完全控制您网站的浏览体验
  • 可插拔:
    • 使用基本模板引导您的网站,然后使用高级功能和插件
    • 开源您的插件以与社区共享
  • ✂️ 开发人员体验
    • 立即开始编写您的文档
    • 通用的配置入口点,使贡献者更容易维护
    • 热重载,在更改时提供闪电般快速的增量构建
    • 基于路由的代码和数据分割
    • 轻松发布到 GitHub Pages、Netlify、Vercel 和其他部署服务

我们的共同目标——帮助您的用户快速找到他们需要的内容,并更好地理解您的产品。 我们分享我们的最佳实践,帮助您正确且完善地构建文档网站。

  • 🎯 SEO 友好
    • HTML 文件为每个可能的路径静态生成。
    • 页面特定的 SEO,帮助您的用户直接登录到与他们当前问题相关的官方文档。
  • 📝 由 MDX 提供支持
    • 通过嵌入 Markdown 中的 JSX 和 React 编写交互式组件。
    • 在实时编辑器中共享您的代码,让您的用户当场爱上您的产品。
  • 🔍 搜索:您的整个网站都可以搜索。
  • 💾 文档版本控制:帮助您将文档与项目版本保持同步。
  • 🌍 国际化 (i18n):将您的网站翻译成多种语言。

Docusaurus 2 的设计初衷是让所有用户都能轻松访问,并且速度极快。

  • ⚡️ 闪电般快速。 Docusaurus 2 遵循 PRPL 模式,确保您的内容以惊人的速度加载。
  • 🦖 无障碍。 重视无障碍性,使您的网站对所有用户都同样易于访问。

设计原则

  • 易于学习。 Docusaurus 应该易于学习和使用,因为其 API 很小。 即使需要更多代码和更多时间来编写,大多数功能仍然可以实现。 没有抽象比有错误的抽象要好,我们不希望用户不得不围绕错误的抽象进行破解。 强制性谈话——最小的 API 表面积
  • 直观。 用户在查看 Docusaurus 项目的项目目录或添加新功能时不会感到不知所措。 它应该看起来直观且易于在其之上构建,使用他们熟悉的做法。
  • 分层架构。 我们堆栈的每一层(内容/主题/样式)之间的关注点分离应该很清楚——抽象良好且模块化。
  • 明智的默认值。 将为用户完成常见和流行的性能优化和配置,但他们可以选择覆盖它们。
  • 没有供应商锁定。 用户不需要使用默认插件或 CSS,尽管强烈建议他们这样做。 某些核心基础架构,如 React Loadable 和 React Router,不能被交换,因为我们对它们进行了默认性能优化,但不包括更高级别的架构。 Markdown 引擎、CSS 框架、CSS 方法和其他架构的选择完全由用户决定。

我们相信,作为开发人员,了解库的工作原理有助于我们更好地使用它。 因此,我们致力于解释 Docusaurus 的架构和各种组件,希望阅读它的用户能够更深入地了解该工具,并更熟练地使用它。

与其他工具的比较

在所有静态站点生成器中,Docusaurus 专门关注文档网站,并且具有许多开箱即用的功能。

我们还研究了其他主要的静态站点生成器,并希望分享我们对比较的见解,希望帮助您在各种选择中进行导航。

Gatsby

Gatsby 拥有许多功能,拥有丰富的插件生态系统,并且能够完成 Docusaurus 可以完成的所有事情。 自然地,这需要付出更高的学习曲线。 Gatsby 在许多方面表现出色,适合构建多种类型的网站。 另一方面,Docusaurus 试图将一件事做得特别好——成为编写和发布内容的最佳工具。

GraphQL 也是 Gatsby 的核心,尽管您不需要 GraphQL 即可构建 Gatsby 网站。 在大多数情况下,当构建静态网站时,您不需要 GraphQL 提供的灵活性。

Docusaurus 2 的许多方面都受到了 Gatsby 最佳特性的启发,它是一个很棒的替代方案。

Docz 是一个 Gatsby 主题,用于构建文档网站。 它目前的功能不如 Docusaurus。

Next.js

Next.js 是另一个非常流行的混合 React 框架。 它可以帮助您构建一个良好的文档网站,但它并没有针对文档用例,并且需要更多工作才能实现 Docusaurus 开箱即用提供的功能。

Nextra 是一个基于 Next.js 构建的注重意见的静态站点生成器。 它目前的功能不如 Docusaurus。

VuePress

VuePress 与 Docusaurus 有很多相似之处 - 两者都高度关注内容中心的网站,并提供开箱即用的定制文档功能。 然而,VuePress 由 Vue 提供支持,而 Docusaurus 由 React 提供支持。 如果你想要一个基于 Vue 的解决方案,VuePress 将是一个不错的选择。

MkDocs

MkDocs 是一个流行的 Python 静态网站生成器,其价值主张与 Docusaurus 相似。

如果你不需要单页应用程序,并且不打算利用 React,它是一个不错的选择。

Material for MkDocs 是一个漂亮的主题。

Docsify

Docsify 使创建文档网站变得容易,但它不是静态网站生成器,并且不适合 SEO。

GitBook

GitBook 具有非常干净的设计,已被许多开源项目使用。 随着其关注点从开源工具转向商业产品,其许多要求不再适合开源项目的文档网站需求。 因此,许多人转向了其他产品。 你可以阅读 Redux 切换到 Docusaurus 的相关信息 这里

目前,GitBook 仅对开源和非营利团队免费。 Docusaurus 对所有人免费。

Jekyll

Jekyll 是最成熟的静态网站生成器之一,一直以来都是一个很棒的工具 - 事实上,在 Docusaurus 之前,Facebook 的大多数开源网站都是/曾经使用 Jekyll 构建的! 它非常容易上手。 我们希望带来类似于使用 Jekyll 构建静态网站的开发体验。

与使用 <script /> 标签添加交互性的静态生成的 HTML 相比,Docusaurus 网站是 React 应用程序。 利用现代 JavaScript 生态系统工具,我们希望在文档网站的性能、资产构建管道和优化以及易于设置方面树立新的标准。

保持知情

缺少什么?

如果你在文档中发现问题,或者对如何改进文档或项目本身有任何建议,请 向我们提交问题,或在 Twitter 上发布提及 @docusaurus 帐户的推文。

对于新的功能请求,你可以在我们的 功能请求板 (Canny) 上创建帖子,这是一个方便的路线图工具,允许按点赞数排序,这使核心团队能够更好地了解哪些功能需求量大,与难以分类的 GitHub 问题相比。 请不要为新功能(尤其是大型功能)创建 Pull Request,因为可能有人已经在开发它,或者它将成为我们路线图的一部分。 首先与我们联系!