# Gitbook 迁移到 Docsify ## 1. 删除 GitBook 相关文件/文件夹 比如 `public` 目录, `node_modules`目录, `book.json` 等. ## 2. 将 `Summary.md` 改名为 `_sidebar.md` 去除文件内的标题 `#` , 都改为列表 类似: ```markdown - [版权](COPYRIGHT.md) - 知识篇 - [操作系统(OS X)](basic/osx.md) - 必备神器 - [Brew](basic/resource/brew.md) - [OhMyZsh](basic/resource/zsh.md) - [Dnsmasq](basic/resource/dnsmasq.md) - [IDE](basic/resource/ide.md) - [科学上网](basic/resource/ss.md) - [在线资源](basic/resource/online.md) - [离线资源](basic/resource/offline.md) - [前端资源](basic/resource/frontend.md) ``` ## 3. 安装 Docsify ```bash yarn global add docsify-cli # 或 npm i -g docsify-cli ``` 项目根目录创建 `index.html`, 如: ```html 不可替代的团队领袖培养计划
``` 注意这里的 `alias`, 是设置别名用的. 我们需要为每个创建的目录重定向`_sidebar.md`, 因为 Docsify 默认是从当前目录下去找这个文件的. 写一个简单脚本遍历一下,在根目录创建 `sidebar.js` ```js const fs = require('fs'); const path = require('path'); const root = path.join(__dirname); const result = {}; function readDirSync(p) { const dir = fs.readdirSync(p); dir.forEach((file) => { const info = fs.statSync(`${p}/${file}`); if (info.isDirectory() && file.indexOf('.') !== 0 && file.indexOf('_') !== 0) { result[`${p.replace(root, '')}/${file}/_sidebar.md`] = '/_sidebar.md'; readDirSync(`${p}/${file}`); } }); } readDirSync(root); console.log(result); ``` 将打印出来 ```js { '/basic/_sidebar.md': '/_sidebar.md', '/basic/algorithm/_sidebar.md': '/_sidebar.md', '/basic/db/_sidebar.md': '/_sidebar.md', '/basic/framework/_sidebar.md': '/_sidebar.md', '/basic/js/_sidebar.md': '/_sidebar.md' } ``` 这样的一个对象,赋值到 `alias` 里即可. ## 4.发布 如果发布到`Github Pages`或其他类似的地方,不在需要将`Pages`部署到`gh-pages`分支, 只需要修改为部署`master`分支即可.