文档撰写工具 vuepress 及其配置流程
之前一直使用 Hexo 撰写博客文章体验感非常好,参考 https://dreamhomes.top/,但是如果作为技术文档或者书籍由于个人选择的 Hexo 主题过于花哨不太符合学术作风 😢 ,因此想选择一个风格偏向于简单的文档 📚 或者书籍 📖 撰写工具。
vuepress 选择理由
之前略微使用过 Gitbook 体验感不错,因此第一想法是使用 gitbook 来撰写学术性文档,但是现在已经商业化了,遂需寻找其它替代品。
目前市面上主要的静态文档撰写工具包括:
当然还有其它的就不再列举,Hexo 已经用来写日常博客因此也不选择。
由于没有亲身体验总结下其它博主使用感受。下面列出每个工具的优缺点进行比较:
配置 docsify >> gitbook = vuepress
由于docsify不需要编译,他的配置比另外两个简单很多,而另外两个从文档而言配置也不复杂。
阅读体验 gitbook > docsify = vuepress
这里不讨论UI,只说阅读体验,gitbook可以调节背景字体大小等,阅读体验上更佳。
界面 vuepress = docsify > gitbook
主观感受,个人感觉 docsify 的界面有点小难看。
性能 vuepress > docsify = gitbook
单页预编译明显效率最高,多页与运行时编译相差不大。
灵活性 vuepress > docsify >> gitbook
由于vue的特点,灵活性方面十分优秀
导出 gitbook
只有gitbook带有导出PDF的功能,如果需要使用PDF做个备份的情况可以使用。
搜索 gitbook > docsify > vuepress
对于文档来说搜索虽说是一个功能模块,但却很重要,gitbook插件最多最佳,docsify默认的全文搜索挺不错的,vuepress默认只能搜索标题,全文需要引用第三方的工具
seo gitbook = vuepress >> docsify
综合以上信息我选择 vuepress ,理由是 gitbook 收费而且docsify 不支持搜索引擎 😂,当然还有 vuepress 支持很多特性。
vuepress 配置流程
安装
VuePress 需要 Node.js>= 8.6 和 yarn 包管理工具。
可以选择 npm 作为包管理工具。
创建目录并初始化
1
2
3mkdir aiops-algorithms-book
cd aiops-algorithms-book
yarn init安装 vuepress 本地依赖
1
yarn add -D vuepress
创建第一篇文档
1
mkdir docs && echo '# Hello VuePress' > docs/README.md
package.json
中增加脚本配置1
2
3
4"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}本地启动服务
1
yarn docs:dev
接下来就可以在 http://localhost:8080/ 中查看文档效果了。
以上流程就完成了简单的 vuepress 配置过程,但这远远是不够的,例如需要添加目录结构、公式支持、部署等等。
基本配置
在
docs
下新建基础配置文件1
mkdir .vuepress && cd .vuepress && touch config.js
在
config.js
中配置站点信息:1
2
3
4module.exports = {
title: 'AIOps 智能运维算法手册',
description: '专注于智能运维领域的算法分享和实践',
}设置首页、导航栏和侧边栏
首页
在
docs/README.md
中添加首页信息1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16---
home: true
heroImage: https://cdn.jsdelivr.net/gh/dreamhomes/blog-image-bed@master/top/dreamhomes/butterflyblog/imgs/20210404130758.png
heroText: AIOps 智能运维算法手册
tagline: 专注于 AIOps 算法研究及其在工程实践中的应用
actionText: 快速上手 →
actionLink: /zh/guide/
features:
- title: 简洁至上
details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动
details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
- title: 高性能
details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
footer: MIT Licensed | Copyright © 2021-2021 沈梦家
---导航栏
在
docs/.vuepress/config.js
中添加导航1
2
3
4
5
6
7
8
9
10
11
12
13// navbar: false, // 是否启用导航栏
nav: [
{ text: '主页', link: '/' },
{ text: '关于', link: 'https://dreamhomes.top/' },
{
text: '语言',
ariaLabel: 'Language',
items: [
{ text: '中文', link: '/language/chinese/' },
{ text: '英文', link: '/language/japanese/' }
]
}
]侧边栏
在
docs/.vuepress/config.js
中添加侧边栏1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21sidebar: 'auto',
// sidebar: {
// '/foo/': [
// '', /* /foo/ */
// 'one', /* /foo/one.html */
// 'two' /* /foo/two.html */
// ],
// '/bar/': [
// '', /* /bar/ */
// 'three', /* /bar/three.html */
// 'four' /* /bar/four.html */
// ],
// // fallback
// '/': [
// '', /* / */
// 'contact', /* /contact.html */
// 'about' /* /about.html */
// ]
// },其它配置参考:https://vuepress.vuejs.org/zh/theme/default-theme-config.html#%E9%A6%96%E9%A1%B5
📢 注意:相对路径下最后需添加
/
,否则跳转出现错误。插件使用
参考: vuepress 插件列表
添加公式支持:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22// 安装 katex
$ yarn add markdown-it-katex -D
// 修改 config.js 配置
markdown: {
extendMarkdown: md => {
md.set({
html: true
})
md.use(require('markdown-it-katex'))
}
},
head: [
['link', {
rel: 'stylesheet',
href: 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.7.1/katex.min.css'
}],
['link', {
rel: "stylesheet",
href: "https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/2.10.0/github-markdown.min.css"
}]
]
部署 Github Pages
在 docs/.vuepress/config.js
中设置正确的 base
。
如果你打算发布到
https://<USERNAME>.github.io/
,则可以省略这一步,因为base
默认即是"/"
。如果你打算发布到
https://<USERNAME>.github.io/<REPO>/
(也就是说你的仓库在https://github.com/<USERNAME>/<REPO>
),则将base
设置为"/<REPO>/"
在项目目录中新建 deploy.sh
1 | !/usr/bin/env sh |
执行脚本即可部署到对应仓库 github pages。
后续 CI/CD 参考:https://vuepress.vuejs.org/zh/guide/deploy.html#github-pages
目前的案例,后续补充:https://dreamhomes.top/aiops/