Docusaurus是指一个开源的构建文档项目,由Meta公司(旧名Facebook)开源维护。是一个静态网页生成器,类似于jekyll,hugo,Docsify,VitePress等的静态生成器工具。
由 MDX 驱动
节约时间并专注于文档本身。只需要以 Markdown/MDX 格式撰写文档/博客,Docusaurus 就能自动构建生成静态 HTML 文件。用 JSX 和 React 撰写交互组件,并将其嵌入 Markdown。
使用 React 构建
通过编写 React 组件来扩展和自定义你的网页布局。利用插件架构,你可以在设计自己的网站的同时,复用 Docusaurus 插件所创建的数据。
可翻译
开箱即用的本地化。使用 git、Crowdin 或任何其他翻译管理器来翻译你的文档并单独部署。
文档版本化
为你的用户提供所有版本的项目文档。版本化文档可让你的文档发布与项目发行时间保持一致。
内容搜索
让你的社区在文档中轻松找到他们需要的内容。我们支持 Algolia 文档搜索。
Docusaurus由一组npm
包组成,因而需要安装Node.js
工具集。安装Node.js
推荐使用nvm安装,nvm
可以方便选择不同版本的Node.js
,但版本要求在18.0 或以上。
安装 Docusaurus 最简单的方法是使用create-docusaurus
命令行工具,它可以帮助你快速搭建一个 Docusaurus 网站的基础框架。 你可以在空仓库或现有仓库的任何地方运行这个命令,它会创建一个包含模板文件的新目录。
也可以增加--typescript
参数来支持 TypeScript
classic
参数是表示使用经典脚手架模版,classic template
包含了 @docusaurus/preset-classic
模块,它具有标准文档,博客,自定义页面,和CSS框架(支持黑夜主题模式)的功能。
除了上述方式创建模版项目外,也可以使用如下命令初始化项目:
假如使用脚手架工具创建了my-website
项目后,会自动生成如下文件和目录结构:
/blog/
: 包括了博客Markdown文件。你可以删除该目录以禁止使用博客插件功能,或者你可以当设置了path选项后,更改其名称,可以在博客指南
中发掘更多详情。/docs/
:包含了Markdown格式的文档文件.可以在sidebars.js
自定义修改文档在侧边栏的顺序。你可以删除该目录以禁止使用文档插件功能,或者你可以当设置了path选项后,更改其名称,可以在文档指南
中发掘更多详情。/src/
: 可以放置类似pages
或自定义的React components
的非文档类文件。严格来说,你不一定要把非文档类文件放在这里。不过把它们放在一个集中的目录,可以让代码检查或者处理更为简便。/src/pages
: 在该目录的任何JSX/TSX/MDX
文件都将被转化为网页页面。更多详情查看页面指南
/static/
: 静态目录。 在该目录里的任何内容都将会被拷贝到最终构建的根目录里。/docusaurus.config.js
: 一个包含了网站配置的配置文件。这相当于Docusaurus v1
的siteConfig.js
/package.json
: 一个Docusaurus
站点是一个React app. 你可以安装并使用任何 npm 包。/sidebars.js
: 用于指定文档的在侧边栏的顺序。如果你打算用 Docusaurus 来给一个现有的项目搭建文档,单仓模式可能是一种解决方案。 单仓允许你在类似项目间共享依赖项。 例如,您的网站可以使用本地软件包来展示最新功能,而不是依赖已发布的版本。 然后,您的贡献者可以在实现功能的同时更新文档。 下面是单仓模式文件夹结构的一个例子:
在此样例中,你应该在./my-monorepo
目录下运行npx create-docusaurus
如果使用Netlify
或Vercel
托管网站的提供商时,需要修改指定网站的基础根目录,在该样例中根目录是./
。
请在部署文档里查询更多配置。
更多真实样例:Docusaurus 和 Jest
更多关于monorepos:Yarn documentation (Yarn不是唯一的设置一个monorepo方式, 但却是一个常见的解决方案)。
要实时预览你的编辑,你可以运行本地开发服务器。它会部署你的网站,并反映最新更改。
默认会在浏览器中打开地址 http://localhost:3000.
恭喜! 你刚刚成功创建了你的首个 Docusaurus 网站! 四处逛逛,看看有什么功能吧。
Docusaurus 是一款现代化的静态网页生成器。因此,我们需要将网站生成为静态内容,并上传到网络服务器,才能被其他人访问。 要构建站点,请使用以下命令:
内容将被构建生成在/build
目录,该目录下的文件就可以托管到静态文件托管服务的提供上网站上了,如:GitHub pages, Vercel 或 Netlify,详情看deployment
Docusaurus 已官方支持Algolia DocSearch。该服务是免费的,是针对于任何开发者文档和技术博客的,请确保符合Algolia DocSearch的要求:checklist,然后申请应用 apply to the DocSearch program
Docsearch 每周一次爬取你的网站(可以在网页界面上配置具体时间),并将所有内容汇总到一个 Algolia 索引中。 随后,你的前端会调用 Algolia API 来直接查询这些内容。 如果你的网站不符合免费版托管DocSearch资质,或者你的网站是有防火墙且不是公开的,那么你可以运行你自己的爬虫程序 run your own DocSearch crawler。
如果是应用了预设的经典主题classic
就会包含@docusaurus/preset-classic
插件,会默认集成了Algolia DocSearch
,就不需要额外安装任何东西。
2、docusaurus.config.js
配置文件里注册主题
首先你得在Apply for DocSearch 获取你的配置Algolia index and API key,之后会收到邮件告诉你如何将 DocSearch 添加到你的项目,可以编辑和管理你自己的爬虫配置:the web interface。部署完毕后,索引就立即可用了,所以一般不需要手动配置。
然后在项目配置里algolia字段增加搜索配置连接到Algolia:
更多详细配置可查看搜索配置