0%

hexo配置汇总

简介

本文介绍hexo使用、维护、升级配置汇总,theme为next-theme

升级hexo从3.8.0至3.9.0

升级前运行hexo version查看版本信息如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
➜  hexo git:(master) hexo version
hexo: 3.8.0
hexo-cli: 1.1.0
os: Darwin 18.6.0 darwin x64
http_parser: 2.8.0
node: 10.15.3
v8: 6.8.275.32-node.51
uv: 1.23.2
zlib: 1.2.11
ares: 1.15.0
modules: 64
nghttp2: 1.34.0
napi: 3
openssl: 1.1.0j
icu: 62.1
unicode: 11.0
cldr: 33.1
tz: 2018e
  • 升级hexo-cli
    执行:sudo npm install hexo-cli -g

  • 升级hexo
    执行:npm install hexo --save
    升级之后可以手动将package.json里的hexo对应version改下。执行完毕后如下:
    WX20190915-184353@2x.png

  • 升级package.json其他依赖,这个方法有三种:

  1. 手工更新(先改package里的版本号)
    http://npm.taobao.org/package/hexo-deployer-git里手动检查每个dependencies,如hexo-deployer-git本来版本号是^0.3.1是没法升到最新的2.0.0的。手动修改package.json里的hexo-deployer-git为^2.0.0,然后输入:npm install hexo-deployer-git --save

  2. 手工更新(npm update命令)
    npm update hexo-deployer-git@2.0.0 --save
    或者:npm update hexo-deployer-git@latest --save

  3. 通过npm-check-updates
    执行:npm install -g npm-check-updates安装,之后ncu就是这个命令缩写。
    执行:ncu检查更新如下:
    WX20190915-193209@2x.png

执行:ncu -u更新package.json文件:
WX20190915-193659@2x.png

最后通过npm install安装更新。

升级hexo-next-theme从7.1.0至7.4.0

下载最新版本

参考官网安装指导,选择方式1,在hexo博客根目录下执行:

1
curl -s https://api.github.com/repos/theme-next/hexo-theme-next/releases/latest | grep tarball_url | cut -d '"' -f 4 | wget -i - -O- | tar -zx -C themes/next --strip-components=1`

头像

如果自己的头像使用git仓文件的话,将对应图片如avatar.jpg放在next的images文件夹下,随后在下面的配置里设上。

解耦个性化配置

hexo3.5以上版本next-theme的配置文件都在自己主题下的_config.yml,为了让个性化配置和源码里解耦方便后续升级主题,新建source/_data/next.yml,内容从next/_config.yml里完整拷贝过来。同时在默认的next/_config.yml里将override: false,表示如果有冲突时会merge自定义的next.yml和默认的_config.yml,以next.yml为准。这样next.yml只保留自己个性化定制的东西即可。

  • 头像:avatar的URL字段设置为images/avatar.jpg
  • 个数统计,使用busuanzi_count
  • gitalk评论
  • Menu Settings
  • Scheme Settings
  • footer设置since和icon

字体设置

升到最新的7.4.0后发现字体特别大不好看,修改font settings使用Noto Serif SC思源宋体大小为默认的0.8刚刚好:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
font:
# Use custom fonts families or not.
# Depended options: `external` and `family`.
enable: true

# Uri of fonts host, e.g. //fonts.googleapis.com (Default).
host: https://fonts.loli.net

# Font options:
# `external: true` will load this font family from `host` above.
# `family: Times New Roman`. Without any quotes.
# `size: x.x`. Use `em` as unit. Default: 1 (16px)

# Global font settings used for all elements inside <body>.
global:
external: true
family: Noto Serif SC
size: 0.8

代码高亮设置

配置:

1
2
3
4
5
6
7
8
9
10
11
12
codeblock:
# Code Highlight theme
# Available values: normal | night | night eighties | night blue | night bright
# See: https://github.com/chriskempson/tomorrow-theme
highlight_theme: night bright
# Add copy button on codeblock
copy_button:
enable: true
# Show text copy result.
show_result: true
# Available values: default | flat | mac
style: default

然后还要将https://github.com/chriskempson/tomorrow-theme.git拷贝到theme/next/source/lib下才会生效。

CNAME解决github 404问题

需要在主题的themes/next_7.4.0/source的目录下新建 CNAME 文件,内容为自己的域名,本文为:

1
yangq.me

否则每次push到github后,将会遇到404问题。然后需要在github的仓pages设置里把域名设进去。下次push后又会遇到404问题,需要再次设置。通过CNAME文件解决此问题。

搜索功能

之前一直使用的Algolia,但是发现不太好用,一段时间之后再搜索就不灵了。这次采用的是Local Search ,简单好用而且不收费。

  • 安装hexo-generator-searchdb,站点根目录下执行:

    1
    npm install hexo-generator-searchdb --save
  • 然后站点配置文件新增:

    1
    2
    3
    4
    5
    search:
    path: search.xml
    field: post
    format: html
    limit: 10000
  • 编辑主题配置文件,启用本地搜索功能:

    1
    2
    local_search:
    enable: true

参考