# 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`分支即可.