比如 public
目录, node_modules
目录, book.json
等.
Summary.md
改名为 _sidebar.md
去除文件内的标题 #
, 都改为列表
类似:
- [版权](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)
yarn global add docsify-cli
# 或
npm i -g docsify-cli
项目根目录创建 index.html
, 如:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>不可替代的团队领袖培养计划</title>
<meta name="description" content="Description">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
</head>
<body>
<div id="app"></div>
</body>
<script type="text/javascript">
window.$docsify = {
name: '《团队领袖培养计划》',
repo: 'https://github.com/js-cool/leader.js.cool.git',
loadSidebar: true,
subMaxLevel: 2,
formatUpdated: '{YYYY}-{MM}-{DD} {HH}:{mm}',
executeScript: true,
alias: {
}
}
</script>
<script type="text/javascript" src="//unpkg.com/docsify/lib/docsify.min.js"></script>
</html>
注意这里的 alias
, 是设置别名用的. 我们需要为每个创建的目录重定向_sidebar.md
, 因为 Docsify 默认是从当前目录下去找这个文件的.
写一个简单脚本遍历一下,在根目录创建 sidebar.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);
将打印出来
{
'/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
里即可.
如果发布到Github Pages
或其他类似的地方,不在需要将Pages
部署到gh-pages
分支, 只需要修改为部署master
分支即可.