使用Docsify构建Markdown文档系统私人知识库,并实现一键同步本地数据到服务器
一、Docsify 简介
Docsify 是一款基于 JavaScript 开发的开源轻量化文档网站生成工具,核心优势:零构建、无需预编译静态 HTML,仅通过 Markdown 文件即可动态渲染完整文档站点。
核心特点
- 极简部署:仅需 Node.js 环境,一行命令完成初始化与本地预览;
- 轻量化:打包资源仅约 21KB,加载速度快;
- 高度自定义:支持封面、侧边栏、顶部导航、多主题、全文搜索、代码复制、图片缩放、Emoji 等插件;
- 易维护:纯 Markdown 书写,搭配 Typora / VSCode 写作体验极佳;
- 支持自动化同步:搭配 Git + 宝塔 WebHook 实现代码提交自动更新线上文档。
二、前期环境准备(Windows 本地)
2.1 必须安装:Node.js
Docsify 基于 npm 包管理器,必须先安装 Node.js,内置 npm 工具。
- 下载地址:https://nodejs.org/zh-cn
- 安装步骤:
- 双击安装包,一路默认下一步即可;
- 安装完成后,打开 CMD / PowerShell,输入校验命令:
node -v npm -v - 输出版本号即代表安装成功。
2.2 推荐安装(提升写作体验)
- Typora:Markdown 可视化编辑器,实时预览排版,写文档首选;
- VS Code:用于修改站点配置文件
index.html、侧边栏/导航配置文件。
2.3 Git 环境(后续自动化部署必备)
如需上传代码到 GitHub/Gitee、实现服务器自动同步,需提前安装 Git 并配置用户名、邮箱。
三、本地 Docsify 安装与初始化
3.1 全局安装 docsify-cli 脚手架
- 新建一个空文件夹(例如
D:\MyDocs,存放所有文档项目); - 在文件夹空白处,按住
Shift + 鼠标右键,选择「在此处打开 PowerShell 窗口」/「在此处打开命令窗口」; - 执行全局安装命令:
npm i docsify-cli -g-g代表全局安装,任意目录都可使用docsify命令;- 安装完成无报错即成功。
3.2 初始化文档站点目录
执行初始化命令,生成站点核心文件夹 docs:
docsify init ./docs
执行后当前目录会自动生成 docs 文件夹,这是整个文档网站的根目录,所有 Markdown、配置文件都存放于此。
3.3 docs 目录文件说明
进入 docs 文件夹,按需新建/修改以下文件,全部文件作用对照表:
| 文件名称 | 功能说明 | 是否必须新建 |
| ---- | ---- | ---- |
| index.html | 网站入口配置文件,配置插件、搜索、侧边栏、导航、网站标题、图标等 | 必须 |
| README.md | 文档首页内容,打开网站默认展示该文件 | 自动生成 |
| _coverpage.md | 网站首页封面配置,打开网站先展示封面页 | 可选 |
| _sidebar.md | 左侧侧边栏目录导航,文档分类菜单 | 可选 |
| _navbar.md | 页面顶部导航栏,放置外部链接、栏目跳转 | 可选 |
| favicon.ico | 浏览器标签页小图标 | 可选 |
| assets/ | 自定义图片、静态资源存放目录(自行新建) | 可选 |
四、核心配置文件完整编写
4.1 配置入口文件 index.html
docs/index.html 是整个站点的核心配置,包含网站基础信息、插件引入、搜索、侧边栏/导航开关、页面适配等,完整代码如下,附带详细注释:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<!-- 网页编码 -->
<meta charset="UTF-8">
<!-- 网站标题,浏览器标签显示 -->
<title>Docsify使用指南</title>
<!-- 兼容旧版IE浏览器 -->
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<!-- 网站描述,搜索引擎收录使用 -->
<meta name="description" content="Docsify轻量化文档搭建教程,团队/个人知识库搭建方案">
<!-- 移动端自适应配置,禁止缩放 -->
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<!-- 浏览器标签图标配置,将favicon.ico放入docs根目录生效 -->
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<!-- Docsify 默认 Vue 主题样式,可替换其他官方主题 -->
<link rel="stylesheet" href="//cdn.jsdelivr.net/npm/docsify/lib/themes/vue.css">
</head>
<body>
<!-- 页面加载占位 -->
<div id="app">文档加载中...</div>
<script>
// Docsify 基础全局配置
window.$docsify = {
// 网站左上角项目名称
name: 'Docsify使用指南',
// 右上角Github仓库跳转地址,不配置则不显示章鱼猫图标
repo: 'https://github.com/YSGStudyHards',
// 开启侧边栏,自动读取 _sidebar.md
loadSidebar: true,
// 开启顶部导航栏,自动读取 _navbar.md
loadNavbar: true,
// 开启封面页,自动读取 _coverpage.md
coverpage: true,
// Markdown 最大解析标题层级(# ~ #####)
maxLevel: 5,
// 侧边栏内自动生成文章内部目录,层级2-4最佳
subMaxLevel: 4,
// 手机等小屏设备,将顶部导航合并进侧边栏
mergeNavbar: true,
}
</script>
<script>
// 全文搜索功能专项配置
window.$docsify = {
search: {
// 搜索缓存过期时间,单位毫秒,86400000 = 1天
maxAge: 86400000,
// 自动扫描所有md文档建立索引
paths: 'auto',
// 中英文搜索框提示文字
placeholder: {
'/zh-cn/': '站内搜索文档',
'/': 'Type to search'
},
// 无搜索结果时提示文案
noData: '未匹配到相关文档,请更换关键词',
// 搜索扫描标题深度
depth: 4,
// 搜索结果不隐藏侧边栏其他内容
hideOtherSidebarContent: false,
// 搜索缓存命名空间,多站点区分使用
namespace: 'Docsify-Guide',
}
}
</script>
<!-- Docsify 核心运行JS -->
<script src="//cdn.jsdelivr.net/npm/docsify/lib/docsify.min.js"></script>
<!-- Emoji 表情渲染支持 -->
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/emoji.min.js"></script>
<!-- 文档内图片点击放大插件 -->
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/zoom-image.min.js"></script>
<!-- 全文搜索插件 -->
<script src="//cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
<!-- 代码块一键复制按钮插件 -->
<script src="//cdn.jsdelivr.net/npm/docsify-copy-code/dist/docsify-copy-code.min.js"></script>
</body>
</html>
4.2 封面配置文件 _coverpage.md
在 docs 目录新建 _coverpage.md,网站打开优先展示封面,自定义标题、简介、跳转按钮:
<!-- _coverpage.md 网站封面配置 -->
# Docsify 完整使用指南
> 基于 Typora + Docsify 搭建轻量级个人&团队知识库
## 产品优势
- 无需编译生成静态HTML文件,直接Markdown渲染网页
- 资源体积极小,压缩后仅 ~21kB,访问速度快
- 丰富插件:搜索、代码复制、图片放大、Emoji、多主题
- 一键本地预览,服务器自动化同步更新
[立即开始使用](/README.md)
4.3 侧边栏目录 _sidebar.md
新建 _sidebar.md,用于左侧文档分类导航,支持多级目录,路径为相对Markdown文件路径:
<!-- _sidebar.md 左侧侧边栏菜单 -->
# 文档导航目录
* Typora + Docsify 入门教程
* [Docsify完整搭建指南](/ProjectDocs/Docsify使用指南.md)
* [Typora+Docsify快速上手](/ProjectDocs/Typora+Docsify快速入门.md)
* Docsify 线上部署方案
* [宝塔自动部署教程](/ProjectDocs/Docsify部署教程.md)
* 拓展功能配置
* [自定义主题更换](/ProjectDocs/自定义主题.md)
* [多语言文档配置](/ProjectDocs/多语言设置.md)
注意:文档文件夹层级需和链接路径对应,示例中需在docs下新建
ProjectDocs文件夹存放对应md文件。
4.4 顶部导航栏 _navbar.md
新建 _navbar.md,页面顶部横向导航,支持站内跳转、外部网页链接:
<!-- _navbar.md 顶部导航栏 -->
* [返回个人博客](https://www.tinsur.cn/)
* [知识库主页](https://note.tinsur.cn/)
* [Github仓库](https://github.com/YSGStudyHards)
4.5 首页文件 README.md
docs/README.md 是进入网站封面点击「开始使用」后展示的主页,可自定义欢迎文案、目录、使用说明。
五、本地实时预览文档网站
所有配置文件修改完成后,使用 docsify serve 启动本地开发服务,实时刷新修改内容:
- 回到
docs文件夹的上级目录(存放docs的文件夹),打开 CMD / PowerShell; - 执行启动命令:
docsify serve docs - 启动成功后控制台会输出访问地址:
http://localhost:3000; - 打开浏览器输入地址即可预览完整文档网站;
- 修改任意 Markdown 或配置文件,页面会自动刷新,无需重启服务。
六、线上部署 + Git 自动同步更新(宝塔服务器)
6.1 远程仓库准备(GitHub / Gitee)
- 登录 Gitee / GitHub,新建空白仓库,仓库名自定义;
- 将本地
docs文件夹内所有文件上传至远程仓库根目录; - 本地电脑配置 Git 关联仓库,完成代码提交推送:
# 初始化仓库(首次) git init # 关联远程仓库地址 git remote add origin 你的仓库git地址 # 提交所有文件 git add . git commit -m "初始化Docsify文档站点" # 推送到master分支 git push origin master
6.2 宝塔面板搭建静态站点
- 登录宝塔面板,网站 → 添加站点,填写你的域名;
- 网站类型选择静态网站,网站根目录自定义(示例:
/www/wwwroot/docs.yourdomain.com); - 进入网站根目录,执行 Git 克隆命令,拉取远程仓库全部文件:
git clone 你的仓库git地址 .
6.3 WebHook 自动同步脚本(提交代码自动更新服务器)
实现:本地推送代码到 Git 仓库 → 仓库触发 WebHook → 服务器自动拉取最新文档,无需手动操作。
- 宝塔软件商店安装「WebHook」插件;
新建钩子,执行脚本类型选择 Shell,粘贴以下脚本:
#!/bin/bash # 此处修改为你的网站根目录 WEB_PATH="/www/wwwroot/docs.yourdomain.com" # 错误日志存放路径 LOG_FILE="/tmp/hook_error.log" # 进入网站目录 cd $WEB_PATH # 拉取远程仓库最新代码,忽略安全目录限制,错误写入日志 git -c safe.directory="*" fetch origin master 2>> $LOG_FILE # 强制覆盖本地文件,同步远程最新版本 git -c safe.directory="*" reset --hard origin/master 2>> $LOG_FILE # 修改文件归属权限,保证网站正常读取 chown -R www:www $WEB_PATH- 复制 WebHook 生成的访问地址,填入 Gitee/GitHub 仓库的 WebHook 配置;
- 测试:本地修改 Markdown 文件,推送 Git,刷新线上网站即可看到自动更新。
七、常见补充说明
- 图标替换:准备 ico 格式图标,命名
favicon.ico放入 docs 根目录,刷新页面生效; - 主题更换:替换 index.html 中 link 的 css 地址,Docsify 提供 dark、pure 等多款官方主题;
- 目录层级:侧边栏 subMaxLevel 建议设置 2~4,层级过多会造成菜单过长;
- 缓存清理:搜索功能会缓存文档内容,如需立刻更新搜索索引,清空浏览器缓存即可;
- 权限问题:宝塔部署后页面资源404,检查网站目录权限、Git 文件归属用户。