docusaurus搭建个人wiki
1. docusaudrus简介
Docusaurus是 Facebook 开源的一个静态网站生成器,主要用来给开源项目生成帮助文档或博客,其功能和Hexo或Jekyll功能类似,可以根据Markdown文件生成静态页面,然后部署到Github Pages之类的纯静态环境。
2. 安装Docusaurus
note
Docusaurus是使用Node.js开发的,安装前需确保电脑上已经安装了Node.js。
使用npm安装:
npx create-docusaurus@latest my-website classic
其中my-website就是项目或者文档的名称,classic 是 Docusaurus 的默认模板名称。
安装完成后,进入my-website路径,已生成网站的对应文件
项目结构概要
/blog/
- 包含博客的 Markdown 文件。如果你关闭了博客功能,则可以将此目录删除。你还可以通过设置path
参数来改变此目录的名称。在 博客功能指南 文档中可以找到更多详细信息/docs/
- 包含文档的 Markdown 文件。可在sidebars.js
中自定义文档在侧边栏中的顺序。如果你关闭了文档功能,则可以删除该目录。你还可以通过设置path
参数来改变此目录的名称。在 文档功能指南 中可以找到更多详细信息/src/
- 非文档文件,例如独立页面(pages)或自定义的 React 组件。你不必严格地遵守将非文档文件放到这里,但是将它们集中在此目录下可以更轻松地进行管理,以便您需要进行某些格式校验或处理/src/pages
- 此目录中的任何扩展名为 JSX/TSX/MDX 文件都将被转换为网站的独立页面(page)。 可以在 独立页面(pages)指南 中找到更多详细信息/static/
- 存放静态文件的目录。此处的所有内容都将被复制到最终的build
目录的根目录下/docusaurus.config.js
- 包含站点配置的配置文件。与 Docusaurus 1 中的siteConfig.js
文件等价/package.json
- Docusaurus 网站也是一个 React 应用程序。你可以在其中安装和使用所需的任何 npm 软件包/sidebar.js
- 生成文档时使用此文件来指定侧边栏中的文档顺序
运行项目:
npm run start
Docusaurus 编译后会启动一个本地服务器,在浏览器中输入 http://localhost:3000/ 即可访问页面
此时编辑docs或blog文件夹下的markdown文件,会在该页面实时更新。
需要编译静态部署页面可执行如下命令:
npm run build
编译完成后会生成build文件夹,可通过如下命令查看编译生成的网页:
npm run serve
3. 站点信息配置
- 在项目根目录下的’
docusaurus.config.js
文件,用于配置站点信息、页头、页脚。 - 在项目根目录下的
sidebars.js
文件,用于侧边栏配置。 - 在项目根目录的
src
目录,src
目录中又有一个pages
目录,pages
目录中的index.js
就是首页文件。在index.js
中有一个features
数组,数组中的内容就是首页的项目描述。
详细的配置信息可以根据个人喜好进行配置。
tip
官方分享的Docusaurus案例展示,可以借鉴。
4. 部署到GitHub Pages
4.1 创建GitHub项目仓库
- 创建一个项目,然后在setting里面设置
GitHub Pages
, 把构建的分支改为gh-pages
,这个分支是要自己建立的,目前里面什么都不用有,把当前的项目代码都推到master
分支。
- 参考Github Pages中的路径,配置
docusaurus.config.js
中的页面url和baseUrl等信息
url: 'https://taoyukai.github.io',
baseUrl: '/tyk_wiki/',
4.2 设置自动部署
设置
push
到master
分支之后自动部署,这个时候就要用到刚才建立好的gh-pages
分支了,在根目录建立.github/workflows/deploy_documentation.yml
文件,参考阮一峰大佬的博客要注意一下
ACCESS_TOKEN
的配置,这个要提前在github
中配置一下。参考github官网要注意一下
CNAME
文件,如果你有自己的域名用的不是username.github.io
这个域名的话,需要建立CNAME
文件,并在里面写上自己的域名。
deploy_documentation.yml文件内容如下:
name: Deploy Github pages
on:
push:
branches:
- master
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
with:
persist-credentials: false
- name: Install and Build
run: |
npm install
npm run-script build
- name: Deploy
uses: JamesIves/github-pages-deploy-action@releases/v3
with:
ACCESS_TOKEN: ${{ secrets.DOC_DEPLOY }}
BRANCH: gh-pages
FOLDER: build
BUILD_SCRIPT: npm install && npm run build
4.3 推送项目
把当前的项目文件都推送到master
分支上,这个时候如果没有什么问题,github
的action
就开始工作自动部署了。
5. 部署到Vercel
Vercel,一个开箱即用的网站托管服务,类似于Github Pages,但比Github Pages强大,速度也快得多。
5.1 注册并登录Vercel
推荐使用Github账号一键登录。
5.2 导入github上的网站项目
- 在vercel的Overview菜单下,点击按钮 New Project
- 在Import Git Repository选项下,选择需要导入的项目,点击Import
5.3 部署项目
点击Deploy按钮,vercel就开始构建和部署了
构建完之后,可以在Overview菜单下,看到新建的项目,至此项目已经创建完成,可以通过vercel自动配置的子域名访问了。
5.4 添加自己的域名
vercel支持使用自己注册的域名访问。
在Settings->Domains页面下,输入框中填入想设置的域名,点击Add按钮,并设置相应的解析即可。