Docsify 是一个简单易用的文档框架
官方文档: https://docsify.js.org/
doscify 使用 markdown 写文章内容,但相对于其它静态博客生成器,docsify 是在运行时生成页面的,无需编译,直接部署 md 文件即可。
docsify 的缺点是对于 SEO 不够友好,不过还是会被搜索引擎收录。另外浏览器编译会消耗资源。
快速开始
如果有 Node.js 环境,可以全局安装 docsify-cli
npm i docsify-cli -g
然后在一个新建的目录中初始化
docsify init ./docs
会在路径下生成几个文件
index.html 入口文件
README.md 会做为主页内容渲染
.nojekyll 用于阻止 GitHub Pages 忽略掉下划线开头的文件
可以手动往 README.md
写一些内容
本地启动,默认访问地址 http://localhost:3000
docsify serve docs
对于没有 Node.JS 环境,也可以使用手动初始化,新建一个 index.html 文件,填入如下内容
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta charset="UTF-8">
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/themes/vue.css">
</head>
<body>
<div id="app"></div>
<script>
window.$docsify = {
//...
}
</script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
</body>
</html>
同样地,新建 README.md
可以使用 python3 启动一个简单的服务器,访问地址 http://localhost:8000
python -m http.server
文档路径
如果文档路径为
.
└── docs
├── README.md
├── about.md
└── note
├── README.md
├── note1.md
└── note2.md
则对应的访问路径是
docs/README.md => http://domain.com/#/
docs/about.md => http://domain.com/#/about
docs/note/README.md => http://domain.com/#/note/
docs/note/note1.md => http://domain.com/#/note/note1
docs/note/note2.md => http://domain.com/#/note/note2
需要注意 url 末尾的斜杠
侧边栏
打开侧边栏需要在 index.html 中将 loadSidebar 设为 true
<!-- index.html -->
<script>
window.$docsify = {
loadSidebar: true
}
</script>
在当前路径下新建 _sidebar.md 文件,并填入自定义侧边栏的内容
* [文章](posts/)
* [生活](life/2021)
* [笔记](note/)
* [关于](about/)
侧边栏会优先寻找当前路径下的 _sidebar.md 文件,如果没有,一层一层往上层路径寻找
侧边栏可以有多级的深度,设置方法
<script>
window.$docsify = {
subMaxLevel: 1
}
</script>
导航栏
导航栏位于顶部,开启导航栏需要设置 index.html
<!-- index.html -->
<script>
window.$docsify = {
loadNavbar: true
}
</script>
在当前路径下新建 _navbar.md 文件,按照如下格式设置导航栏
<!-- _navbar.md -->
* [文章](posts/)
* [生活](life/2021)
* [笔记](note/)
* [关于](about/)
代码高亮
内置代码高亮是 Prism ,默认支持
Markup - markup, html, xml, svg, mathml, ssml, atom, rss
CSS - css
C-like - clike
JavaScript - javascript, js
需要额外的语法高亮支持需要添加 语法文件 ,例如
<script src="//cdn.jsdelivr.net/npm/[email protected]/components/prism-java.min.js"></script>
min 版本的是去掉一些空格回车的,体积小一点
配置
由于浏览器缓存,一些新更新的内容可能因为缓存而看不到
设置不缓存(不确定有效)
<!--不缓存-->
<meta http-equiv="Expires" content="0">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Cache" content="no-cache">
统计流量
通过设置 data-ga 来记录流量
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js" data-ga="UA-XXXXX-Y"></script>
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/ga.min.js"></script>
注意这里已经有了 docsify.min.js ,如果引用 2 次会导致问题,如无法下拉页面。