介绍
⚡️ 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 已经停止支持,不再获得官方支持)
对于寻求升级到 v2+ 的现有 v1 用户,您可以遵循我们的迁移指南。
功能特性
Docusaurus 在构建时高度关注开发者和贡献者体验。
- ⚛️ 使用 💚 和 React 构建:
- 使用 React 扩展和自定义
- 通过提供您自己的 React 组件完全控制站点的浏览体验
- 🔌 可插拔:
- 使用基本模板引导您的站点,然后使用高级功能和插件
- 开源您的插件与社区分享
- ✂️ 开发者体验:
- 立即开始编写您的文档
- 通用配置入口点,使贡献者更易维护
- 热重载,变更时闪电般快速的增量构建
- 基于路由的代码和数据分割
- 轻松发布到 GitHub Pages、Netlify、Vercel 和其他部署服务
我们的共同目标——帮助您的用户快速找到他们需要的内容,更好地理解您的产品。我们分享最佳实践,帮助您正确且出色地构建文档站点。
- 🎯 SEO 友好:
- 为每个可能的路径静态生成 HTML 文件。
- 页面特定的 SEO,帮助您的用户直接访问与他们手头问题相关的官方文档。
- 📝 由 MDX 驱动:
- 通过嵌入在 Markdown 中的 JSX 和 React 编写交互式组件。
- 在实时编辑器中分享您的代码,让您的用户立即爱上您的产品。
- 🔍 搜索:您的整个站点都是可搜索的。
- 💾 文档版本控制:帮助您保持文档与项目发布同步。
- 🌍 国际化 (i18n):将您的站点翻译成多种语言。
Docusaurus v2+ 生来就是为了对所有用户都具有同情心的可访问性,并且闪电般快速。
- ⚡️ 闪电般快速。Docusaurus v2+ 遵循 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 v2+ 的许多方面都受到了 Gatsby 最佳特性的启发,它是一个很好的替代方案。
Docz 是一个用于构建文档网站的 Gatsby 主题。目前功能比 Docusaurus 少。
Next.js
Next.js 是另一个非常流行的混合 React 框架。它可以帮助您构建一个好的文档网站,但它对文档用例没有特定的倾向,需要更多工作来实现 Docusaurus 开箱即用提供的功能。
Nextra 是一个基于 Next.js 构建的有主见的静态站点生成器。目前功能比 Docusaurus 少。
VitePress
VitePress 与 Docusaurus 有许多相似之处——两者都专注于以内容为中心的网站,并开箱即用地提供定制的文档功能。然而,VitePress 由 Vue 驱动,而 Docusaurus 由 React 驱动。如果您想要基于 Vue 的解决方案,VitePress 将是一个不错的选择。
MkDocs
MkDocs 是一个流行的 Python 静态站点生成器,具有与 Docusaurus 类似的价值主张。
如果您不需要单页应用程序且不打算利用 React,这是一个不错的选择。
Material for MkDocs 是一个美观的主题。
Docsify
Docsify 使创建文档网站变得容易,但它不是静态站点生成器,对 SEO 不友好。
GitBook
GitBook 设计非常简洁,被许多开源项目使用。随着其重点转向商业产品而非开源工具,其许多要求不再适合开源项目文档站点的需求。因此,许多人转向了其他产品。您可以在这里阅读 Redux 转向 Docusaurus 的情况。
目前,GitBook 仅对开源和非营利团队免费。Docusaurus 对所有人都免费。
Jekyll
Jekyll 是最成熟的静态站点生成器之一,一直是一个很好的工具——事实上,在 Docusaurus 之前,Facebook 的大多数开源网站都是/曾经是基于 Jekyll 构建的!开始使用极其简单。我们希望带来与使用 Jekyll 构建静态站点类似的开发者体验。
与静态生成的 HTML 和使用 <script />
标签添加交互性相比,Docusaurus 站点是 React 应用程序。使用现代 JavaScript 生态系统工具,我们希望在文档站点的性能、资产构建管道和优化以及易于设置方面设定新标准。
Rspress
Rspress 是一个基于 Rspack(基于 Rust 的打包器)的快速静态站点生成器。它支持使用 MDX(带有 React 组件的 Markdown)编写内容、集成文本搜索、多语言支持 (i18n) 以及通过插件的可扩展性。专为创建优雅的文档和静态网站而设计,Rspress 生成易于部署的静态 HTML 文件。
Rspress 和 Docusaurus 非常相似。它们都有各自的优缺点。Rspress 创建得更晚,受益于现代基础设施,能够实现更快的站点构建。Docusaurus 以其成熟度、全面的功能集、灵活性和强大的社区而脱颖而出。它还定期现代化其基础设施,以在性能方面保持竞争力。
保持信息更新
有什么遗漏吗?
如果您发现文档有问题或对如何改进文档或项目有建议,请为我们提交问题,或发送推文提及 @docusaurus X 账户。
对于新功能请求,您可以在我们的功能请求板 (Canny) 上创建帖子,这是一个方便的路线图工具,允许按点赞数排序,这为核心团队提供了更好的指标来了解哪些功能需求量大,相比之下 GitHub 问题更难分类。避免为新功能(特别是大型功能)提交 Pull Request,因为可能已经有人在处理它或它将成为我们路线图的一部分。请先与我们交流!