本文记录自己一些跟 Hexo 搭建博客相关的小心得,是对上一篇文章 知行合一 | 用 Hexo 搭建博客 的补充。考虑到再加入到上文中,会模糊掉上文的重点,所以本文单独成文。

1、文本、图片和参考资料的存放方案

于我而言,博客的日常访问量基本为零,博客只是写给自己看的,自己整理知识的一个工具而已。但通常情况下,对于 Hexo 博客,文本也就是 Markdown 文件,是存放在 _posts 文件夹下的,图片是放在图床上,参考资料更是分散在其他地方。对于只是普通的博客,自然不要紧,但如果当成知识整理的途径,那就要慎重了。因此,在搭建博客的过程中,特别考虑了一下博客的文本、图片和参考资料的保存和同步。

这里,分享一下我自己摸索的较为满意的方案。首先,所有内容都在自己建立的 Blog 文件夹下,举例来说 Blog 文件夹的具体结构如下:

1
2
3
4
5
6
7
8
9
.
├── images
| └── 2016-12-03-Bandwagon-Shadowsocks
| └── Shared
├── posts
| └── Bandwagon-Shadowsocks.md
├── Reference
| └── 2016-12-03-Bandwagon-Shadowsocks
├── your_name.github.io

其中,images 文件夹存放图片,图片以每篇文章为单位存放,Shared 就是所有文章共享的图片,比如二维码,2016-12-03-Bandwagon-Shadowsocks 是某一天文章对应图片的文件夹;Reference 文件夹存放文章可能用到的参考资料,也是以每篇文章维单位,your_name.github.io 是自己博客真正的 Hexo 项目文件夹。整一个 Blog 文件夹均用 Dropbox、Onedrive、坚果云之类的云同步服务备份。

显然,我们还需要把 Blog/posts 文件夹下的 markdown 文件放到 Blog/your_name.github.io/source/_posts 文件夹下面,这样 Hexo generate 的时候才会生成我们想要的网页。我用得是 Always Sync 软件,将 Blog/posts 文件夹下的 markdown 文件单向同步到Blog/your_name.github.io/source/_posts 文件夹下。在 Always Sync 中新建一个同步组,比如 Blog,在 同步组 -> 配置 中点击 Blog,在 同步规则中,同步方向 选取源文件夹,也就是 Blog/posts 文件夹,勾选 自动同步删除自动同步覆盖;在 同步计划中,勾选 在文件变动中同步,且 请在指定同步间歇时间 中勾选 immediately。借助 Always Sync,我们对 Blog/posts 文件夹下 markdown 文件的修改会立刻同步到 Blog/your_name.github.io/source/_posts 文件夹下。

对于图片,博客文章中用到的图片,均存放在 images 文件夹下,在写作时,使用图床神器,Mac 下的 iPic,Windows 下的 MPic,直接得到七牛云图床的链接。更具体的可以看我之前的一篇文章 [知行合一 | 用 Hexo 搭建博客][http://lowrank.science/Hexo-Github/] 中的 5. 更好的作者体验 部分

2、安装 cnpm 替换 npm

默认的 npm 源速度是非常非常慢的,在搭建 Hexo 博客以及安装 hexo-katex 这样的插件时候,我们都要在终端先敲入下面这条命令,切换淘宝的镜像,否则基本下不下来,等个半天也不见动。

1
npm config set registry "https://registry.npm.taobao.org"

但每一次都这么输入,还是挺麻烦的。对于这个,有很多解决方法,这里介绍一种我自己采用的。在 淘宝 NPM 镜像 首页可以得知,淘宝定制了一款名为 cnpm 的命令行工具用来代替默认的 npm,安装这个工具只要在终端中输入:

1
npm install -g cnpm --registry=https://registry.npm.taobao.org

从此,安装模块时只要用 cnpm 替换 npm 即可,会直接从 淘宝 NPM 安装,安装命令形如:

1
cnpm install [name]

cnpm 支持 npm 除了 publish 之外的所有命令,如:

1
cnpm info connect