Hexo + NexT 配置优化指南
超长文警告!
记录 Hexo + NexT 的配置优化过程,以便后续更改和维护。
写在前面:
- Hexo version:5.4.0,NexT version:8.11.0,查看命令为
hexo -v
。 - 站点配置文件都是指博客根目录下的 _config.yml 文件,路径为 root/_config.yml。
- 主题配置文件都是指主题文件里的 _config.yml 文件,路径为 root/theme/next/_config.yml。
- 修改配置文件时“:”后面一定要有空格。
- 配置完成可通过
hexo clean
hexo g
hexo s
预览。
全局配置
设置菜单
在主题配置文件里查找 menu ,将注释取消。
1 | menu: |
“||”前面是对应路径,后面是图标名称。NexT 使用的图标库为 Font Awesome,可自行添加或更换心仪的图标。
1 | menu: |
hexo new page "菜单名称"
。此时在博客根目录的 sources 文件夹下会生成对应的文件夹,每个文件夹中都有一个 index.md 文件,对文件内容进行修改,categories 的 index.md 修改如下,其他类推:
1 | --- |
更换网站图标
图标素材:icons
下载 16x16 和 32x32 的图标后,打开主题配置文件,修改 favicon 的 small 和 medium 的路径:
1 | favicon: |
网站背景
动态背景
Canvas nest
1.在 root/themes/next 目录下打开 Git Bash ,输入命令:
1 | git clone https://github.com/theme-next/theme-next-canvas-nest source/lib/canvas-nest |
1 | # Canvas nest |
Canvas ribbon
打开主题配置文件,将 canvas_ribbon 的 enable 置为 true:
1 | # Canvas ribbon |
雪花飘飘
1.在 root/themes/next/source/js/src 目录下新建 snow.js 文件,添加以下代码。
1 | /*样式一*/ |
1 | <!-- 引入jQuery --> |
1 | <!-- 雪花特效 --> |
1 | # 雪花特效 |
背景图片
1.将背景图片放到 root/themes/next/source/images 下。
2.打开主题配置文件,将 style: source/_data/styles.styl 取消注释:
1 | custom_file_path: |
1 | // 添加背景图片 |
添加 Fork me on Github
打开 Github Corners ,选择喜欢的样式,复制相应代码到 root/themes/next/layout/_layout.njk 文件中,放在<div class="headband"></div>
后面,并修改href="https://your-url"
里的网址为自己 GitHub 主页的网址。
如图:
更改博客主标题背景颜色(Gemini主题)
博客主标题背景默认为黑色,相关代码在 root/themes/next/source/css/_schemes/Pisces/_header.styl 里:
1 | .site-brand-container { |
1 | // Color system |
1 | .site-brand-container { |
还可以改为渐变色,如:
1 | .site-brand-container { |
调整页面宽度(Gemini)
修改文件 root/themes/next/source/css/_variables/Pisces.styl,调整如下:
1 | $content-desktop = 'calc(100% - %s)' % unit($content-desktop-padding / 2, 'px'); |
安装RSS插件
1.在根目录打开 Git Bash 执行指令安装插件:2
npm install hexo-generator-feed --save
2.在站点配置文件末尾加上如下代码:
1 | feed: |
添加进度显示和回到顶部按钮
NexT主题自带
在主题配置文件里找到 back2top 项进行修改
1 | back2top: |
moon-cake样式
1.输入如下命令下载插件:npm install hexo-cake-moon-menu
2.在主题配置文件里添加下面代码:
1 | moon_menu: |
添加可切换的夜间模式
1.参考 Hexo Next 8.x 主题添加可切换的暗黑模式
2.输入命令npm install hexo-next-darkmode --save
安装插件,注意安装前先关闭自带的黑暗模式。
2.安装完成后在主题配置文件里添加以下代码:
1 | # Darkmode JS |
开启本地搜索
1.执行命令npm install hexo-generator-search --save
安装插件。
2.安装完成后在站点配置文件内添加以下内容:
1 | #本地搜索 |
1 | local_search: |
点击放大图片
将主题配置文件内 fancybox 的值置为 true 即可。
添加评论系统 waline
1.按照 waline 快速上手进行配置,注意 LeanCloud 注册时左上角选择国际版,后续添加环境变量时不用绑定域名,比较方便。
2.执行命令npm install @waline/hexo-next
安装官方插件。
3.然后在主题配置文件添加如下内容:
1 | # Waline |
边框圆角
1.在主题配置文件里将 variable 的注释取消:
1 | custom_file_path: |
1 | // 圆角设置 |
繁简体切换3
1.下载简繁字体切换所需的 tw_cn.js 文件放到 root/themes/source/js/src/ 下。
2.在想要显示简繁转换按钮的地方添加如下代码:
1 | <div class="translate-style"> |
更换字体
host 使用烧饼博客提供的镜像。
在主题配置文件对 font 进行如下修改:
1 | font: |
首页顶部留白
在 root/source/_data/styles.styl 里添加如下内容:
1 | //首页顶部留白 |
鼠标样式
1.在 root/source/_data/styles.styl 里添加样式:
1 | // 鼠标样式 |
default.cur pointer.cur
鼠标点击烟花效果
1.下载 JavaScript 脚本,放在 root/themes/next/source/js/cursor/ 下。
2.在 root/themes/next/layout/_custom/custom.njk 中添加如下内容:
1 | {# 鼠标点击烟花特效 #} |
{% include '_custom/custom.swig' %}
。位置如下:4.在主题配置文件加入以下内容:
1 | # 鼠标点击烟花特效 |
渲染 mathjax
1.卸载 hexo-math,使用 hexo-renderer-mathjax:
1 | npm uninstall hexo-math --save |
1 | npm un hexo-renderer-marked |
文件跳过渲染
修改站点配置文件中的 skip_render 配置项。
只有 source 目录下的文件才会发布,因此 Hexo 只渲染 source 目录下的文件。skip_render 参数设置的路径是相对于 source 目录的路径。
1 | #单个文件 |
配置主题加载动画
在主题配置文件中找到 motion 项进行配置。
Next 主题支持的动画可在这里查看。
1 | motion: |
1 | .use-motion .post-header, .use-motion .post-body{ |
侧边栏配置
侧边栏头像
将头像(jpg、gif)放到 root/themes/next/source/images 下,打开主题配置文件,修改 avatar 的 url:
1 | # Sidebar Avatar |
添加 social 链接
打开主题配置文件,在 social 下添加链接:
1 | social: |
更改侧边栏和菜单栏透明度
在更改菜单栏透明度后,本地搜索出现了问题,暂未解决
在 root/source/_data/styles.styl 里添加如下内容:
1 | //侧边框的透明度设置 |
侧边栏添加 canvas 粒子时钟
1.在 root/themes/next/layout/_custom/ 目录下新建 clock.njk 文件,添加如下内容:
1 | <div style=""> |
1 | {% if theme.diy_time.clock %} |
3.在主题配置文件中加入应用代码:
1 | # 侧栏粒子时钟 |
侧边栏添加日历云
1.安装 theme-next-calendar 插件
1 | npm install --save git://github.com/icecory/theme-next-calendar#hexo |
3.将 calendar.styl 中的代码直接复制到 root/source/_data/styles.styl 中。
为适应夜间模式,可将日历云背景色改为背板颜色
1 | /*全句背景色*/ |
5.然后在 themes/next/layout/_layout.njk 里加入下面代码:
1 | {% include 'calendar.njk' %} |
1 | custom_file_path: |
1 | <!-- CloudCalendar --> |
与雪花背景一起添加在 _layout.njk 里时,应都放在<body></body>
外,且雪花背景代码在前,不然会发生冲突导致日历云消失,原因不明。
添加标签云
1.执行命令npm install hexo-tag-cloud@^2.1.* --save
安装标签云插件。
2.在 root/theme/next/layout/_macro/sidebar.njk 文件添加如下代码:
1 | {% if site.tags.length > 1 %} |
1 | # hexo-tag-cloud |
页脚配置
设置建站时间和网站运行时间
设置建站时间
打开主题配置文件,在 since 后添加建站时间:
1 | footer: |
页脚添加网站运行时间
将下面代码添加到 root/themes/next/layout/_partials/footer.njk 文件的合适位置,修改var t1 = Date.UTC(2021,08,11,00,00,00);
为自己的建站时间。
1 | <span id="sitetime"></span> |
底部图标配置
在主题配置文件里找到 footer 下的 icon 配置项进行修改
1 | # Icon between year and copyright info. |
文章配置
修改首页分页文章数
在站点配置文件中找到 index_generator,修改 per_page 项:
1 | index_generator: |
关闭首页“阅读更多”按钮
在主题配置文件中找到 read_more_btn,修改其值为 false,即可关闭。
显示文章字数和阅读时长
1.根目录打开 Git Bash ,执行下面的命令,安装插件:
npm install hexo-wordcount --save
2.然后在站点配置文件末尾加上下面的代码:
1 | symbols_count_time: |
自定义博文内链接颜色
在 root/themes/next/source/css/_common/components/post/post.styl 文件里添加如下代码:
1 | .post-body p a{ |
文章末尾添加结束标记
1.在 root/themes/next/layout/_macro 中新建 passage-end-tag.njk 文件,并添加以下内容,分割线中间内容可自定义:
1 | <div> |
1 | {% if not is_index and theme.passage_end_tag.enabled %} |
文章添加版权说明
在主题配置文件中找到 creative_commons 进行修改:
1 | creative_commons: |
文章版权样式自定义
1.在目录 root/themes/next/layout/_macro/ 下添加 my-copyright.njk,内容如下:
1 | {% if page.copyright %} |
1 | .my_post_copyright { |
1 | {#####################} |
1 | @import "my-post-copyright" |
1 | --- |
- 注:之前发布的文章需在文章配置内添加属性 copyright: true。
代码样式自定义
在 root/source/_data/styles.styl 添加以下内容:
1 | // Custom styles. |
代码块样式更改
在主题配置文件里找到 codeblock 进行修改,代码块主题可到 NexT Highlight Theme Preview 预览。
1 | codeblock: |
文章目录默认展开
如果文章内容是多级目录,默认二级目录是合并的。可更改主题配置文件中 toc 的 expand_all 为 true 来让文章目录默认展开。
1 | toc: |
更改背板透明度[^touming]
在 root/source/_data/styles.styl 里添加如下内容:
1 | //文章背板透明度 |
修改标题下文章描述文字的颜色
在 root/source/_data/styles.styl 里添加如下内容:
1 | .posts-expand .post-meta-container { //标题下的文字颜色 |
设置文章永久链接
这里介绍两种方法:
- 配置自定义 permalink 的属性
- 使用 hexo-abbrlink 插件生成链接
自定义 permalink 属性
1.在站点配置文件找到 permalink,设置如下:
1 | permalink: posts/:year:month:day:id.html |
1 | --- |
使用 hexo-abbrlink 插件
1.插件下载:npm install hexo-abbrlink --save
2.在站点配置文件找到 permalink,设置如下:
1 | permalink: posts/abbrlink.html |
更改文章底部标签图标
修改主题配置文件的 tag_icon:
1 | tag_icon: fa-tag |
使用 mermaid 绘图
1.安装插件:npm install hexo-filter-mermaid-diagrams --save
2.修改主题配置文件:
1 | # Mermaid tag |
其他自定义样式
先在 themes/next/source/css/_custom/custom.styl 中添加以下样式:
1 | // 下载样式 |
文字背景色块
1 | <span id="inline-blue">站点配置文件</span>, |
站点配置文件, 主题配置文件
引用边框变色
1 | <p id="div-border-right-red">div-border-right-red </p> |
div-border-right-red
div-border-top-blue
图形边框效果
1 | <a id="download" href="https://git-scm.com/download/win"><i class="fa fa-download"></i><span> Download Now</span> |
使用 Hexo & Next 支持的标签
SEO(搜索引擎优化)
搜索引擎提交入口:
- Google提交入口
- 百度提交入口
Google 验证网站
1.打开 Google Search Console,添加网域资源。
2.通过 TXT 记录验证。 3.按照提示添加解析记录
4.完成验证。
百度验证网站
1.登录百度站长添加网站域名。
2.选择 CNAME 验证。
3.按照提示把地址解析到 ziyuan.baidu.com。
4.完成验证。
添加并提交sitemap
1.安装 hexo 的 sitemap 网站地图生成插件:
1 | npm install hexo-generator-sitemap --save |
1 | # hexo sitemap |
3.提交百度 sitemap,如下: 4.提交 Google sitemap
添加蜘蛛协议
1.在 /source 目录下新建一个 robots.txt 文件,添加代码:
1 | #hexo robots.txt |
2.然后到百度站长更新一下:
3.在 Google 更新一下
主动推送
1.安装主动推送插件:
1 | npm install hexo-baidu-url-submit --save |
1 | baidu_url_submit: |
1 | # URL |
1 | # Deployment |
hexo deploy
的时候, 新的连接就会被推送了。原理:
- 新链接的产生:hexo generate
会产生一个文本文件,里面包含最新的链接
- 新链接的提交:hexo deploy
会从上述文件中读取链接,提交至百度搜索引擎
自动推送
把主题配置文件中的 baidu_push 设置为 true 即可。
自动给所有外部链接添加 nofollow
1.安装 hexo-autonofollow:
1 | npm install hexo-autonofollow --save |
1 | # 外部链接优化 |
网络爬虫会在当前页面搜索所有的链接,然后一个个查看,所以就很有可能跳到别的网站就不回来了。这个时候就需要 nofollow 起作用了。 nofollow 标签是由谷歌领头创新的一个反垃圾链接的标签,并被百度、yahoo 等各大搜索引擎广泛支持,引用 nofollow 标签的目的是:用于指示搜索引擎不要追踪(即抓取)网页上的带有 nofollow 属性的任何出站链接,以减少垃圾链接的分散网站权重。
参考文章
NexT使用文档
Hexo博客Next主题添加粒子时钟特效
Next7.8主题更换思源宋体
Hexo设置永久链接
Hexo-NexT 支持简体繁体一键切换
基于Hexo搭建个人博客——进阶篇(从入门到入土)
https://www.liaofuzhan.com/posts/2114475547.html
2019Hexo博客Next主题深度美化 打造一个炫酷博客(2)
发光体的颜色模式为“加色模式”,即“RGB模式”,而在网页上要指定一种颜色,就要使用“RGB模式”来确定,方法是分别指定 R/G/B,也就是红/绿/蓝三种基色的强度,通常规定,每一种颜色强度最低为 0,最高为 255,并通常都以 16 进制数值表示,那么 255 对应于十六进制就是 FF,并把三个数值依次并列起来,以 # 开头就是颜色的十六进制代码。↩︎
RSS 需要有一个 Feed 链接,而这个链接需要靠 hexo-generator-feed 插件来生成。↩︎
简体繁体切换的原理:首先建立一个简体字与繁体字相对应的映射表,然后遍历整个界面,把相应的简体字或者是繁体字映射为对应的字体。↩︎
代码块要放置在 sider-inner 的 div 块中,放在 div 块的位置决定了时钟样式的展示位置。↩︎
本文标题:Hexo + NexT 配置优化指南
文章作者:reman
发布时间:2022年04月24日 - 16:17:13
最后更新:2022年08月20日 - 14:39:04
原始链接:https://zcw-blog.top/posts/20220424a1/
许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请注明出处。