【简要】记录搭建 Hexo 的一些步骤

总想有个自己的地方记录一些东西, 兜兜转转,还是选择了GitHub Pages
试过Jekyll,可惜ruby跟我相性实在不合,折腾了半天也没搞明白。
于是选择了Hexo。使用很简单,js也比ruby亲切些,但搭建过程中还是碰到一些问题,这里记录下。

安装 Node.js

暂时略, 可参考 记录下搭建hexo的一些问题 by

自制node.js + npm绿色版

安装 Git

略, 作为开发, 你电脑上都没有 Git ? 教程网上一大把。

建议: 安装的时候, 不要选择 checkout Window ,commit Linux , 这样自动转换 EOL 的 默认选项。

安装 Hexo 【重头戏开始了】

写博客时 2017年6月6日23:46:34 的 版本信息 ,Hexo 不同的版本变化还挺大的。

1
2
3
4
5
6
7
8
9
10
11
12
13
PS ~\git\HexoBlogSource> hexo version
hexo: 3.3.7
hexo-cli: 1.0.3
os: Windows_NT 10.0.14393 win32 x64
http_parser: 2.7.0
node: 6.9.2
v8: 5.1.281.88
uv: 1.9.1
zlib: 1.2.8
ares: 1.10.1-DEV
icu: 57.1
modules: 48
openssl: 1.0.2j

Hexo 官网 给出了 最简单的 安装步骤 (稍加整理)

1
2
3
4
5
6
7
8
9
10
11
# npm安装时其实可以指定版本号
npm install hexo-cli -g
hexo init blog
cd blog
# 安装一些必要的依赖 , 执行前看下 <【知识点】在中国,npm 使用优化 >
npm install
hexo s[erver] -p 80 # [] 方括号中的内容可省略
# 可选,使用rss时才需要
npm install hexo-generator-feed --save
# 可选,生成sitemap
npm install hexo-generator-sitemap --save

【知识点】在中国,npm 使用优化

  • 网络不好、被墙的话,npm会很慢,试试加参数--registry=http://r.cnpmjs.org,国内的镜像。
  • 出现各种奇怪的错误的话,试试npm cache clear

将 Npm 的源替换成淘宝的源

参考 : 将 Npm 的源替换成淘宝的源 by sg.ff @2016年02月17日发布

在墙内久了,难免会碰到撞墙的时候,所幸国内也有众多 NPM 镜像可供选择,在大多数情况下我们可以使用国内的源(比如 淘宝 NPM 镜像 http://npm.taobao.org)去替换官方的源以加快下载包的速度。

不过呢,我们在发布自己的包的时候却需要将源修改回官方的 https://registry.npmjs.org 源。

1
2
3
4
5
6
7
# 修改源地址为淘宝 NPM 镜像
npm config set registry http://registry.npm.taobao.org/
# 修改源地址为官方源
npm config set registry https://registry.npmjs.org/

安装 Next 主题

hexo的主题很多,但感觉好看的不多。。。
最终选择了NexT,很喜欢这种简洁的风格,作者更新也很积极。 你会爱上 Next 的

Hexo 主题的同步目前是个问题, 详见 另一篇文章 《Hexo 主题同步》

Next 主题优化

内容太多, 详见 另一篇文章 《Hexo Next 主题优化》

未解之谜

可能的原因:

参考自: Hexo部署常见问题解决方案

将自己的Blog文件夹使用Git来管理,需要注意一下几点。

  1. 如果主题是通过git管理的,需要将主题文件夹下的.git文件夹删除,才能同步Blog文件夹(.git文件夹是隐藏的,需要显示隐藏文件才能删除,Linux下需要rm -rf命令才能删除,Mac没用过,不清楚)。
  2. 按照Blog目录下自带的.gitignore文件,node_modules文件夹是不会同步的,所以同步之后需要自己再次进行npm install,但是注意,不要进行hexo init了,否则_config.yml全都白弄了。

可以看到 hexo init a 时, 会自动把 landscape 下载好, 日志中也打出了 Submodule 'themes/landscape' (...) registered for path 'themes/landscape' 这样的信息, 但是:

奇怪的就是 , landscape 在 Hexo 根目录 用 git gui 命令 是可以看到 文件的, 但是 next 主题只显示 subproject 一个文件, 难道是因为 hexo init a 用了类似 git clone --recursive 的语法,然后就不作为一个 subproject 了?

然后我把 landscape 目录删了, 按 Next 方式 clone 了一遍, landscape 目录也像 next 那样只显示 subproject 一个文件, 这样也好,减少了很多文件。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
PS ~\git> hexo init a
INFO Cloning hexo-starter to ~\git\a
Cloning into '~\git\a'...
remote: Counting objects: 53, done.
remote: Total 53 (delta 0), reused 0 (delta 0), pack-reused 53
Unpacking objects: 100% (53/53), done.
Submodule 'themes/landscape' (https://github.com/hexojs/hexo-theme-landscape.git) registered for path 'themes/landscape'
Cloning into '~/git/a/themes/landscape'...
remote: Counting objects: 775, done.
remote: Total 775 (delta 0), reused 0 (delta 0), pack-reused 775
Receiving objects: 100% (775/775), 2.53 MiB | 1.18 MiB/s, done.
Resolving deltas: 100% (397/397), done.
INFO Install dependencies
��Ϣ: ���ṩ��ģʽ�޷��ҵ��ļ�
npm WARN deprecated swig@1.4.2: This package is no longer maintained
npm WARN prefer global marked@0.3.6 should be installed with -g
> fsevents@1.1.1 install ~\git\a\node_modules\fsevents
> node install
> dtrace-provider@0.8.2 install ~\git\a\node_modules\dtrace-provider
> node scripts/install.js
> hexo-util@0.6.0 postinstall ~\git\a\node_modules\hexo-util
> npm run build:highlight
npm WARN invalid config loglevel="notice"
> hexo-util@0.6.0 build:highlight ~\git\a\node_modules\hexo-util
> node scripts/build_highlight_alias.js > highlight_alias.json
npm notice created a lockfile as package-lock.json. You should commit this file.
added 438 packages in 200.46s
INFO Start blogging with Hexo!

参考 :


-------------本文结束感谢您的阅读-------------
如果我的文章让你有收获,请支持一下!
0%