安和鱼主题插件设置的使用备忘录

使用安知鱼主题构建 Hexo 静态博客网站是一个非常不错的博客网站构建方案,美观、大方的安之鱼博客主题,可以胜任你构建博客的常规梦想,但是安知鱼主题和其他 Hexo 博客主题一样,需要插件的支持,今天来汇总我个人构建博客的插件使用,作为记录,方便博客程序重新安装时,最快的恢复到某一版本状态。

1.必装插件

必装插件主要是为了维持博客网站的正常运转,最大限度的减少开门死的几率,在使用安知鱼主题时,需要提前安装主题文件的两个渲染插件和字数统计插件。

1.1安装 pug 渲染插件

1
npm install hexo-renderer-pug --save

1.2安装 stylus 渲染插件

1
npm install hexo-renderer-stylus --save

1.3.文章字数统计插件

如果你想要在文章中显示文章字数、阅读时长信息,可以安装 hexo-wordcount 插件,安装命令如下:

1
npm install hexo-wordcount --save

然后需要在主题目录下的 _config.yml 文件中,将各个文章字数相关的配置激活即可:

1
2
3
4
5
6
7
8
9
# Need to install the hexo-wordcount plugin
wordcount:
enable: false
# Display the word count of the article in post meta
post_wordcount: true
# Display the time to read the article in post meta
min2read: true
# Display the total word count of the website in aside's webinfo
total_wordcount: true

参数说明

1
post_wordcount: 是否在文章元数据中显示字数统计
1
min2read: 是否显示预计阅读时间
1
total_wordcount: 是否在侧边栏显示网站总字数

在安知鱼主题中,已经设置了相关代码,只需要在主题目录下的 _config.yml 文件中找到 wordcount ,开启就可以,修改其中的

1
2
wordcount:
enable: true

2.常规插件

常规插件基本上都属于构建博客网站的元素插件,不是博客运行的必须插件,是网站构成的必须插件,添加这些插件,可以让博客管理更加便捷

2.1.搜索插件

需要安装 hexo-generator-search 插件,可以使用如下代码

1
npm install hexo-generator-search --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
search:
path: search.xml
field: post
format: html
limit: 10000

同时在主题目录下的 _config.yml 文件中开启local search,这样站内的内容就可以搜索了。

2.2.外部链接跳转

使用 hexo-safego 外部链接跳转插件,在链接跳转时进行提示,使用该插件之前,需要先安装 cheerioHexo 一般有这个插件,可以在 node_modules 查看,如果没有,执行:

1
npm install cheerio --save

然后安装 hexo-safego 插件:

1
npm install hexo-safego --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

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
39
40
41
42
# hexo-safego安全跳转插件
# see https://blog.liushen.fun/posts/1dfd1f41/
hexo_safego:
# 基本功能设置
general:
enable: true # 启用插件
enable_base64_encode: true # 使用 Base64 编码
enable_target_blank: true # 从新窗口打开跳转页面

# 安全设置
security:
url_param_name: 'u' # URL 参数名
html_file_name: 'go.html' # 重定向页面的文件名
ignore_attrs: # 忽略处理的 HTML 结构
- 'data-fancybox'

# 容器与页面设置
scope:
apply_containers: # 应用的容器选择器
- '#article-container'
apply_pages: # 应用的页面路径
- "/posts/"
- "/devices/"
exclude_pages: # 排除的页面路径

# 域名白名单
whitelist:
domain_whitelist: # 允许的白名单域名,通过字符串匹配实现
- "qyliu.top"
- "liushen.fun"

# 页面外观设置
appearance:
avatar: /info/avatar.ico # 跳转页面头像路径
title: "清羽飞扬" # 跳转页面标题
subtitle: "安全中心" # 跳转页面副标题
darkmode: auto # 是否启用深色模式
countdowntime: 4 # 跳转页面倒计时秒数,如果设置为负数则为不自动跳转

# 调试设置
debug:
enable: false # 启用调试模式

需要对应替换掉里面的部分参数,例如容器与页面设置、页面外观设置的部分,需要简单的替换。

开源地址:https://github.com/willow-god/hexo-safego

2.3.添加 RSS 订阅支持

使用 hexo-generator-feed 插件来做 RSS,安装命令如下:

1
npm install hexo-generator-feed --save

Hexo 博客根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
6
7
8
9
10
11
12
13
# RSS源feed文件配置 
feed:
enable: true
type: atom
path: atom.xml
limit: 20
hub:
content:
content_limit: 140
content_limit_delim: ' '
order_by: -date
icon: icon.png
autodiscovery: true

参数含义

  1. type : RSS的类型(atom/rss2)
  2. path : 文件路径,默认是atom.xml/rss2.xml
  3. limit : 展示文章的数量,使用0或则false代表展示全部
  4. hub : 可以留空
  5. content : 在RSS文件中是否包含内容 ,有3个值 true/false默认不填为false
  6. content_limit : 指定内容的长度作为摘要,仅仅在上面content设置为false没有自定义的描述出现
  7. content_limit_delim : 上面截取描述的分隔符,截取内容是以指定的这个分隔符作为截取结束的标志.在达到规定的内容长度之前最后出现的这个分隔符之前的内容,,防止从中间截断.
  8. order_by : 发布顺序(默认:-日期)
  9. icon : 图标,自定义信息流图标。默认使用主配置中指定的邮件目录。是可选参数。
  10. autodiscovery : 自动发现,添加自动发现的订阅源。默认:true

开源地址:https://github.com/hexojs/hexo-generator-feed

2.4.添加 sitemap 站点地图

使用 hexo-generator-sitemap 的插件来做网站的 Sitemap,安装命令如下:

1
npm install hexo-generator-sitemap --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
sitemap:
path: sitemap.xml
priority: 0.5
changefreq: daily
lastmod: true

参数含义:

  1. path : 生成的 Sitemap 文件名,默认为 sitemap.xml
  2. priority : 该页面的优先级,数值范围为 0.0 到 1.0,默认值为 0.5。
  3. changefreq : 页面更新频率,可以是 always, hourly, daily, weekly, monthly, yearly, never 中的一个。默认值为 daily
  4. lastmod : 是否包含页面的最后修改时间。默认值为 true

开源地址:https://github.com/hexojs/hexo-generator-sitemap

2.5.百度地图插件

使用 hexo-generator-baidu-sitemap 的插件来做网站的百度 Sitemap,安装命令如下:

1
npm install hexo-generator-baidu-sitemap --save

需要在 Hexo 根目录下的 _config.yml 文件中,一般和普通地图插件放在一起,新增以下的配置项:

1
2
baidusitemap:
path: baidusitemap.xml

鉴于百度的表现,个人观点这个地图可以安装也可以不安装。两个插件的简化版安装:

1
2
3
4
baidusitemap:
path: baidusitemap.xml
sitemap:
path: sitemap.xml

2.6.deploy 发布插件

deploy 发布插件可以安装也可以不安装,主要是用来 git 发布,有些朋友可能不是采用这种方式部署网站,所以就没有必要安装这个插件。不过,如果你想通过deploy的方式进行推送public文件夹到托管网站,你需要安装

1
npm install hexo-deployer-git --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
deploy:
type: git
repo: <repository url>
branch: [branch]
message: [message]

详细参数,需要查阅 hexo 官方网站:https://hexo.io/zh-cn/docs/one-command-deployment

2.7.固定永久链接

使用 hexo-abbrlink 插件通过算法为文章生成永久链接,相对来说更加简洁方便,避免冗余繁杂的官方默认链接,安装代码

1
npm install hexo-abbrlink --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 一个 Hexo 插件,用于根据帖子正面的标题和数据生成静态帖子链接。
# https://github.com/rozbo/hexo-abbrlink
# abbrlink config
abbrlink:
alg: crc32 #support crc16(default) and crc32
rep: hex #support dec(default) and hex
drafts: false #(true)处理草稿,(false)不处理草稿。false(默认值)
# 从目录树生成类别
# 深度:要生成的目录树的最大深度应大于0
auto_category:
enable: true #true(default)
depth: #3(default)
over_write: false
auto_title: false #启用自动标题,可以按路径自动填充标题
auto_date: false #启用自动日期,它可以自动填写日期的时间今天
force: false #启用强制模式,在这种模式下,插件将忽略缓存,并为每个帖子计算abbrlink,即使它已经有了abbrlink。

然后修改主题默认的 permalink 参数,例如我这里修改之后为

1
2
3
4
5
permalink: articles/:abbrlink.html
permalink_defaults:
pretty_urls:
trailing_index: true # Set to false to remove trailing 'index.html' from permalinks
trailing_html: true # Set to false to remove trailing '.html' from permalinks

参数含义

1
2
3
4
5
permalink: articles/:abbrlink/ #文章结尾不带 .html
permalink_defaults:
pretty_urls:
trailing_index: false #设置为false可从永久链接中删除尾随的“index.html”
trailing_html: false #设置为false可从永久链接中删除尾随的“.html”

2.8.robots协议

使用 hexo-robotstxt-multisitemaps 插件来给网站安装robots协议,代码安装如下

1
npm install hexo-robotstxt-multisitemaps --save

需要在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# robots文件配置 
robotstxt:
useragent: "*"
disallow:
- /anzhiyu/
- /js/
- /css/
- /img/
- /medias/
allow:
- /
- /archives/
- /categories/
- /articles/
- /page/
- /tags/
- /about/
# - 其他你想添加的页面
sitemap:
- /sitemap.xml
- /baidusitemap.xml
- /atom.xml

需要酌情的修改里面的代码,主要是提交给搜索引擎看的,作用不清楚,但是主打一个该有还是要有的。