在 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
的时候会自动发布。