在 Windows 上使用 Vuepress 创建笔记本的记录
由于安装了 cygwin 所以大部分命令可以像 Linux 中一样运行
安装 npm 和 yarn
在这里下载 node.js 的安装包:https://nodejs.org/zh-cn/ ,使用 npm 安装 yarn。
| 1 | npm install --global yarn | 
初始化 Vuepress 目录
| 1 | # 创建和初始化一个 vuepress 目录,文件夹名称为 notes | 
添加文档编译脚本
添加下面的内容到 package.json 中:
| 1 | # notes/package.json | 
使用 yarn docs:dev 启动一个热重载(只有单纯编辑 Markdown 文档的时候可以自动刷新成功)的开发服务器,通过浏览器网址  http://localhost:8080 访问。
使用 yarn docs:build 来完成对网站的编译,编译好的网站在 docs/.vuepress/dist/ 文件夹中,可以将其直接放置到服务器上托管。
Vuepress目录结构
大致浏览一遍,已经存在并配置好的是 package.json 和 docs/README.md。
| 1 | notes | 
设置网站的基础路径
由于希望将网站设置在服务器的 notes 目录中,所以需要更改网站的基础路径,以在部署之后通过 http://kotkot.club/notes/ 这样的网址访问笔记。
| 1 | // notes/docs/.vuepress/config.js | 
推荐的链接引用方式是这样的,使用相对路径:
1、Markdown 文档中需要引用的资源放在外部服务器或者文档同位置的 ./assets/ 文件夹下,通过 ./assets/img/hello.jpg 这样的方式引用,比如文章中使用的图片、音频、视频等。
| 1 | <!-- notes/docs/README.md --> | 
2、网站全局需要引用的资源放在共享目录 /docs/.vuepress/public/ 下,在 config.js 中通过 /logo.png 这样的方式引用,比如网站的图标。
| 1 | // notes/docs/.vuepress/config.js | 
其他的方式比较麻烦,比如设置了基础路径后在文档中引用公共文件夹中的资源需要用 <img :src="$withBase('/logo.png')" alt="foo"> 这样的标签框起来,详细看这里:vuepress-assets 。
设置网站的基本信息
继续修改 notes/docs/.vuepress/config.js 以设置网站的标题、副标题以及图标。
| 1 | // notes/docs/.vuepress/config.js | 
给网站添加文档
和创建分类的文件夹是一样的,所有的 Markdown 文档都会被渲染成相应的 HTML(README.md 会被渲染成 index.html),希望最后的网站结构是什么样的如何创建就好了,后面的例子会使用下面的文件结构:
| 1 | notes | 
稍微解释一下就是 README 作为首页,about 作为关于,music 和 web 分别是笔记的两个大类,其中的每一个文件夹代表一本笔记,每一本笔记都应该有自己单独的侧边栏。
设置网站的导航栏
默认主题的导航栏可以在 notes/docs/.vuepress/config.js 的 themeConfig 中设置,主要是下面这几项:
1、导航栏图标。
| 1 | // notes/docs/.vuepress/config.js | 
2、单项导航栏或者指向外部的链接。
| 1 | // notes/docs/.vuepress/config.js | 
3、多项导航栏,点击导航栏选项可以展开。
| 1 | module.exports = { | 
4、多项导航栏中添加分类,即在 items 中继续嵌套 items,可以像分类文章一样分类导航栏选项,右侧的 items 行内缩写是这样的 items: [{}, {}, {}]。
| 1 | module.exports = { | 
导航栏配置完后的结果:
| 1 | // notes/docs/.vuepress/config.js | 
预览图是这样的:

设置网站的主页
这里:vuepress - mainpage ,根据需求设置就可以了,写进网站根目录下的 README.md 中,下面的正文部分可以继续添加内容。
| 1 | # 设置这个页面为主页样式 | 
设置侧边栏
如果只需要一个默认的侧边栏的话像下面这样设置即可,'' 和 '/' 是一样的:
| 1 | // notes/docs/.vuepress/config.js | 
如果想给不同的页面设置不同的侧边栏的话需要像下面这样设置,即将 sidebar 继续细分,其中的每一个字符串都可以扩展成 ['',''] :
| 1 | module.exports = { | 
如果想给侧边栏添加分类的话可以像下面这样设置:
| 1 | module.exports = { | 
配置完侧边栏以后的结果,具体效果可以在这里查看:http://kotkot.club/notes 。
| 1 | // notes/docs/.vuepress/config.js | 
发布
官方的介绍文档在这里 vuepress - publish ,不过我是用 Seafile 将编译出的 notes/docs/.vuepress/dist/ 文件夹同步到了服务器的 /notes/ 文件夹中,这样每次运行 yarn docs:build 的时候会自动发布。