摘要:作为开发者,写文档的痛苦我太懂了:用 Word?版本管理混乱,协作全靠 “文件另存为”;用 GitBook?每次更新都要重新构建静态文件,本地调试像等快递;用 VuePress?配置复杂到要看半本手册,新手分分钟劝退……直到遇到docsify—— 这个能把 M
作为开发者,写文档的痛苦我太懂了:
用 Word?版本管理混乱,协作全靠 “文件另存为”;
用 GitBook?每次更新都要重新构建静态文件,本地调试像等快递;
用 VuePress?配置复杂到要看半本手册,新手分分钟劝退……直到遇到docsify—— 这个能把 Markdown 文件直接 “变” 成网站的神奇工具,彻底治好了我的 “文档恐惧症”。本文将从 0 到 1 带你实战搭建一个高颜值文档站,揭秘它的 “丝滑” 秘诀。
一、为什么选 docsify?先看痛点解决
在正式动手前,先明确 docsify 的核心优势:轻量、灵活、零构建。
传统文档工具的痛点,它一一击破:
无需构建:不生成静态 HTML,直接读取 Markdown 文件渲染,改完文档刷新页面就能看效果;开箱即用:一个 html 文件 + 几个 Markdown 就能启动,连 Node 环境都不用装(当然装了 CLI 更方便);高度可扩展:支持插件系统,搜索、评论、代码高亮等功能一键集成;轻量化:核心库只有 20KB 左右,加载速度比传统工具快 3-5 倍。简单来说,它是 “能用 Markdown 就别折腾” 的极客哲学产物。
二、实战第一步:5 分钟搭起基础文档站1. 环境准备(新手友好到哭)
docsify 的安装方式有两种,任选其一即可:
方式 1:直接用 CDN(适合快速尝鲜)
新建一个index.html,复制以下代码保存,用浏览器打开就能跑 ——
html
charset="UTF-8">我的文档站vue.css">方式 2:用 CLI 工具(适合长期项目)
如果你习惯命令行,全局安装docsify-cli:
bash
npm i docsify-cli -g然后初始化项目:
bash
docsify init ./docs # 在docs目录生成基础结构执行docsify serve ./docs,浏览器访问http://localhost:3000,就能看到初始文档站。
2. 基础配置:让文档站 “有模有样”
docsify 的核心配置都在window.$docsify对象里,我们重点调整几个关键参数:
(1)封面页:让访客眼前一亮
启用coverpage: true后,新建_coverpage.md文件,内容可以是:
markdown
# 我的技术文档 v1.0> 记录技术成长,分享实战经验- 轻量 · 高效 · 易维护- 适合个人项目/开源项目/团队知识库[GitHub](https://github.com/你的仓库) [开始阅读](#/)刷新页面,就能看到带渐变背景的封面页(默认随机背景,也可以自定义图片)。
(2)侧边栏:结构化文档导航
启用loadSidebar: '_sidebar.md'后,新建_sidebar.md,按 Markdown 列表写目录:
markdown
- [简介](/)- [快速开始](quickstart.md)- [进阶配置](config.md)- [主题定制](themes.md)- [插件开发](plugins.md)- [常见问题](faq.md)docsify 会自动根据侧边栏生成可折叠的导航菜单,点击链接直接跳转对应 Markdown 文件。
(3)导航栏:添加外部链接
如果需要顶部导航(比如项目官网、API 文档),启用loadNavbar: '_navbar.md',新建_navbar.md:
markdown
- (https://your-site.com)- [API文档](https://api.your-site.com)- [社区](https://discord.gg/docsify)三、进阶玩法:用插件和自定义让文档站 “开挂”docsify 的灵魂在于插件系统,社区已经开发了上百个插件,覆盖搜索、代码高亮、评论、数学公式等场景。
1. 必装插件:提升文档体验(1)本地搜索(search)
安装后,用户可以直接在文档站搜索内容。
html
默认支持全文搜索,还能通过配置调整搜索深度:
javascript
window.$docsify = {search: {maxAge: 86400000, // 缓存1天paths: 'auto', // 自动搜索所有页面placeholder: '输入关键词搜索...'(2)代码高亮(prismjs)docsify 内置了 Prism.js,但需要手动启用语言支持。比如要高亮 Python 代码:
html
在 Markdown 中写代码块时指定语言:
python
运行
def hello:print("Hello, docsify!")来源:晓加科技观