hexo插件

本文最后更新于 2024年6月25日 早上

1. 前言

由于<<hexo的搭建和部署>>一文已经比较长了,就不想再将之后找到的插件部分内容添加到其中,于是另开一文来记录。本文主要记录在搭建好hexo博客后,一些可以弄的插件,随缘更新。

2. Hexo-abbrlink

原本hexo生成文章的链接包含了文章名称,例如显示为

1
lissettecarlr.com/2021/03/15/hexo的搭建和部署/

在复制后就会被翻译为:

1
https://lissettecarlr.com/2021/03/15/hexo%E7%9A%84%E6%90%AD%E5%BB%BA%E5%92%8C%E9%83%A8%E7%BD%B2/

就很长一条,使用次插件可以生成一个自增的id的静态链接。

2.1 安装

1
npm install hexo-abbrlink --save

修改_config.yml文件,搜索permalink找到

1
permalink: :year/:month/:day/:title/

改为

1
2
3
4
permalink: posts/:abbrlink/
abbrlink:
alg: crc32 #support crc16(default) and crc32
rep: hex #生成链接使用16进制表示: support dec(default) and hex

2.2 结果

链接变成了如下

1
http://localhost:4000/posts/5a3fb175/

如果发现是undefined,那就先hexo clean下。

3. wordcount

文章字数和阅读时长统计插件

3.1 安装

1
npm i --save hexo-wordcount

_config.yml添加博客配置:

1
word_count: true

在themes\yilia\layout\_partial\article.ejs的

1
<%- partial('post/date', {class_name: 'archive-article-date', date_format: null}) %>

下方添加

1
2
3
<% if(theme.word_count && !post.no_word_count){%>
<%- partial('post/word') %>
<% } %>

然后在themes\yilia\layout\_partial\post目录下新建word.ejs,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<div style="margin-top:10px;">
<span class="post-time">
<span class="post-meta-item-icon">
<i class="fa fa-keyboard-o"></i>
<span class="post-meta-item-text" style="font-size: 16px;color: grey"> 字数统计: </span>
<!--这里样式可以自己定制-->
<span class="post-count" style="font-size: 16px;color: grey"><%= wordcount(post.content) %>字</span>
</span>
</span>

<span class="post-time">
&nbsp; | &nbsp;
<span class="post-meta-item-icon">
<i class="fa fa-hourglass-half"></i>
<span class="post-meta-item-text" style="font-size: 16px;color: grey"> 阅读时长: </span>
<span class="post-count" style="font-size: 16px;color: grey"><%= min2read(post.content) %>分</span>
</span>
</span>
</div>

4 搜索引擎优化

  • sitemap插件

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

    然后修改/_config.yml配置文件

    1
    url: https://lissettecarlr.com/

    之后使用hexo g生成配置文件后,在public文件夹生成了sitemap.xml和baidusitemap.xml。

  • 添加robots
    在source文件夹下建立robots.txt,填写以下类容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # hexo robots.txt
    User-agent: *


    Disallow: /vendors/
    Disallow: /js/
    Disallow: /css/
    Disallow: /fonts/
    Disallow: /vendors/
    Disallow: /fancybox/

    Sitemap: https://lissettecarlr.com/sitemap.xml
    Sitemap: https://lissettecarlr.com/baidusitemap.xml

5 文章隐藏

安装generator插件,开源

1
2
npm install hexo-generator-index2 --save
npm uninstall hexo-generator-index --save

修改根目录下博客配置文件_config.yml

1
2
3
4
5
6
7
8
index2_include_index: true # defult is true

# 配置index2 generator,可以是数组或对象
index2_generator:
include:
- category hite # 只包含hite分类下的文章
exclude:
- tag hide # 不包含标签为hide的文章

6 图片懒加载

github,该插件用于使没有被看到的图片不加载。

  • 安装
    1
    npm install hexo-lazyload-image --save
  • 修改根目录下_config.yml
    1
    2
    3
    4
    5
    6
    lazyload:
    enable: true
    onlypost: false # optional
    loadingImg: # optional eg ./images/loading.gif
    isSPA: false # optional
    preloadRatio: 3 # optional, default is 1

hexo-submit-urls-to-search-engine

说明文档
用于搜索引擎的收录

  • 安装

    1
    npm install --save hexo-submit-urls-to-search-engine
  • 配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    hexo_submit_urls_to_search_engine:
    submit_condition: count #链接被提交的条件,可选值:count | period 现仅支持count
    count: 10 # 提交最新的10个链接
    period: 900 # 提交修改时间在 900 秒内的链接
    google: 0 # 是否向Google提交,可选值:1 | 0(0:否;1:是)
    bing: 1 # 是否向bing提交,可选值:1 | 0(0:否;1:是)
    baidu: 1 # 是否向baidu提交,可选值:1 | 0(0:否;1:是)
    txt_path: submit_urls.txt ## 文本文档名, 需要推送的链接会保存在此文本文档里
    baidu_host: https://lissettecarlr.com ## 在百度站长平台中注册的域名
    baidu_token: xxxx ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
    bing_host: https://lissettecarlr.com ## 在bing站长平台中注册的域名
    bing_token: xxx ## 请注意这是您的秘钥, 所以请不要把它直接发布在公众仓库里!
    google_host: https://lissettecarlr.com ## 在google站长平台中注册的域名
    google_key_file: Project.json #存放google key的json文件,放于网站根目录(与hexo _config.yml文件位置相同),请不要把json文件内容直接发布在公众仓库里!
    google_proxy: 0 # 向谷歌提交网址所使用的系统 http 代理,填 0 不使用
    replace: 0 # 是否替换链接中的部分字符串,可选值:1 | 0(0:否;1:是)
    find_what: https://lissettecarlr.com
    replace_with: https://lissettecarlr.com
  • 执行hexo generate可以在public中看到生产的需要推的连接submit_urls.txt

  • 修改deploy:

    1
    2
    3
    4
    deploy:
    - type: git
    - type: cjh_bing_url_submitter
    - type: cjh_baidu_url_submitter
  • 部署的时候在打印处就可以看到件连接推送给了baidu和bing

文章加密

hexo-blog-encrypt

  • 安装
    1
    npm install --save hexo-blog-encrypt
  • 文章title添加字段
    1
    2
    3
    password: hello
    #取消加密
    password: ""
  • 本地查看
    1
    hexo clean && hexo g && hexo s
  • 文章中配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ---
    title: Hello World
    tags:
    - 作为日记加密
    date: 2016-03-30 21:12:21
    password: mikemessi
    abstract: 有东西被加密了, 请输入密码查看.
    message: 您好, 这里需要密码.
    wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
    wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.
    ---
  • 全局配置
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # Security
    encrypt: # hexo-blog-encrypt
    abstract: 有东西被加密了, 请输入密码查看.
    message: 您好, 这里需要密码.
    tags:
    - {name: tagName, password: 密码A}
    - {name: tagName, password: 密码B}
    wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
    wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.

参考

官方的插件库
YILIA主题优化(统计、评论、目录、一言、爱心效果、、、)


hexo插件
https://blog.kala.love/posts/5a3fb175/
作者
久远·卡拉
发布于
2021年3月29日
许可协议