简介
⚡️ Docusaurus 将帮助您在短时间内构建一个美观的文档网站。
💸 构建自定义技术栈成本高昂。相反,您可以专注于您的内容,只需编写 Markdown 文件。
💥 准备好探索更多了吗?使用高级功能,如版本控制、国际化、搜索和主题定制。
💅 查看最棒的 Docusaurus 网站以获取灵感。
🧐 Docusaurus 是一个静态网站生成器。它构建了一个单页应用,具有快速的客户端导航,充分利用 React 的强大功能使您的网站具有交互性。它提供开箱即用的文档功能,但也可用于创建任何类型的网站(个人网站、产品、博客、营销着陆页等)。
快速通道 ⏱️
通过实践,5 分钟了解 Docusaurus!
创建一个新的 Docusaurus 站点并按照非常简短的嵌入式教程进行操作。
安装 Node.js 并创建一个新的 Docusaurus 站点
npx create-docusaurus@latest my-website classic
启动站点
cd my-website
npx docusaurus start
打开 https://:3000
并按照教程进行操作。
使用 docusaurus.new 即可在浏览器中立即测试 Docusaurus!
或者在线阅读5 分钟教程。
Docusaurus:文档制作变得简单
在 Algolia 社区活动的这次演讲中,Meta 开源团队分享了 Docusaurus 的简短演练。他们介绍了如何开始项目、启用插件以及设置文档和博客等功能。
从 v1 迁移
Docusaurus v2+ 是 Docusaurus v1 的完全重写,利用了完全现代化的工具链。在 v2 正式发布之后,我们强烈建议您使用 Docusaurus v2+ 而不是 Docusaurus v1,因为 Docusaurus v1 已被弃用。
在以下情况下使用 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 以其成熟度、全面的功能集、灵活性和强大的社区而脱颖而出。它还定期现代化其基础设施,以在性能方面保持竞争力。
保持关注
缺少什么吗?
如果您发现文档中存在问题或对如何改进文档或项目有建议,请为我们提交一个 issue,或发送一条提及 @docusaurus X 账户的推文。
对于新的功能请求,您可以在我们的功能请求看板 (Canny) 上创建一个帖子,这是一个便于规划路线图的工具,并且允许按赞数排序,这为核心团队提供了比 GitHub issues 更好地判断哪些功能需求量大的指标(GitHub issues 更难分类)。请不要为新功能(尤其是大型功能)提交 Pull Request,因为可能有人已经在开发它,或者它将是我们路线图的一部分。请先与我们沟通!