Hexo美化指南
作为一名电脑小白,如何装饰属于自己的个人博客网站呢?
在这个流程中,我们将会学会Hexo个性化装饰的基本流程,即使是电脑小白也能轻易上手!
在此,我将以Hexo+Next主题为例,帮助大家打装饰属于自己的网站!
实用工具
URL配置
由于我们写文章时title可能含有中文,因此会生成含有中文的url,这会造成许多不可预料的问题。于是采用另外的方式来生成永久链接。
首先键入以下命令安装相应插件:
| 1 | npm install hexo-abbrlink --save | 
接着修改站点配置文件 _config.yml 中的 permalink 字段
| 1 | permalink: posts/:abbrlink/ | 
这样就完成了永久链接的修改,文章在发布时会被自动分配16进制代码
站点页面初始化
在站点配置文件修改完成后,网站的tags、categories等页面仍无法正确跳转,需要进行页面初始化配置。
新建标签页面
在Git Bash里键入以下命令:
| 1 | $ hexo new page "tags" | 
此时,hexo会在 Hexo/source/ 下创建一个tags目录,并在其中放置index.md文件。
打开index.md文件,修改其meta属性,添加如下内容:
| 1 | type: "tags" | 
在本地调试后,即可发现tags页面跳转正常。
在文章写作过程中,可以在meta数据中的tags字段后添加[]来放置tags,支持多个标签,每个标签之间使用半角英文逗号分割,如:
| 1 | tags: [Hexo, Next] | 
categories、toc等等页面同理。
文章草稿及发布
如果不想在部署时让自己还未写完的文章也被发布,即可通过以下命令新建草稿。
| 1 | $ hexo new draft "title" | 
该命令会在Hexo/source/_draft 目录下新建名为title.md的文件,打开该文件即可进行写作。当本地调试或部署至服务器时,默认无法查找到草稿,即不会发布草稿文章。
在文章写作完毕后,需要将其移动至post文件夹,采用以下命令:
| 1 | $ hexo publish "title" | 
该命令会将 Hexo/source/_draft 目录下对应的文章移动至 Hexo/source/_post 目录,再次本地调试或部署后即可找到该文章。
数学公式支持
Hexo采用的默认markdown渲染器对于复杂数学公式的支持不够完美,在渲染latex公式时会出现渲染错误,如将 _ 识别为markdown斜体标识,从而导致公式渲染失败。
解决方案:采用hexo-renderer-pandoc作为新的渲染器,该插件可以完美解决上述问题。
具体步骤:
- 由于hexo-renderer-pandoc需要Pandoc的支持,故需要先安装Pandoc,进入链接安装即可。这里选择windows-x86_64.msi的版本。 
- 在Pandoc安装完毕后,回到Git Bash,键入以下命令: - 1 - $ pandoc -v - 若正确显示版本号即可进行下一步,若返回未找到该命令,则检查系统环境变量后重启电脑即可。 
- 卸载默认的渲染器并安装对应插件。 - 1 
 2- $ npm uninstall hexo-renderer-marked --save 
 $ npm install hexo-renderer-pandoc --save
- 安装mathJax。 - 1 - $ npm install hexo-filter-mathjax --save 
- 进入站点配置文件,添加如下内容: - 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19- mathjax: 
 tags: none # or 'ams' or 'all'
 single_dollars: true # enable single dollar signs as in-line math delimiters
 cjk_width: 0.9 # relative CJK char width
 normal_width: 0.6 # relative normal (monospace) width
 append_css: true # add CSS to pages rendered by MathJax
 every_page: false # 如果设置为true,默认每篇文章都会被mathjax渲染
 # hexo-renderer-pandoc (https://github.com/wzpan/hexo-renderer-pandoc)
 pandoc:
 extra:
 - toc: # will be passed as `--toc`. Note the colon,如果不需要自动生成目录无需添加此行
 extensions:
 - '+hard_line_breaks'
 - '+emoji'
 - '-implicit_figures'
 template:
 ./pandoc_template.html # 如果不需要自动生成目录无需添加此行
 # ------------------------------------------------------ 若上文中 - every_page字段设为false,则需在每篇文章的meta数据中添加- mathjax: true字段,即可开启公式渲染。
- 进入NexT主题配置文件,并搜索 - math字段,修改如下:- 1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15- math: 
 # Default (false) will load mathjax / katex script on demand.
 # That is it only render those page which has `mathjax: true` in front-matter.
 # If you set it to true, it will load mathjax / katex srcipt EVERY PAGE.
 every_page: false
 mathjax:
 enable: true
 # Available values: none | ams | all
 tags: none
 katex:
 enable: false
 # See: https://github.com/KaTeX/KaTeX/tree/master/contrib/copy-tex
 copy_tex: false
- 回到Git Bash,执行以下命令: - 1 
 2
 3- $ hexo clean 
 $ hexo g
 $ hexo s- 即可在本地看到公式被成功渲染。 
回到顶部按钮与阅读进度提示
进入主题配置文件,并搜索 back2top 字段,设置如下:
| 1 | back2top: | 
本地调试后,可在侧边栏观察到阅读进度,点击即可回到顶部。
中文翻译设置
新添加的菜单需要翻译对应的中文,打开theme/next/languages/zh-CN.yml,在 menu 下设置:
| 1 | menu: | 
侧边栏显示效果
打开主题配置文件即themes/next下的_config.yml,找到Sidebar Settings,设置:
| 1 | sidebar: | 
侧边栏推荐阅读
打开主题配置文件即themes/next下的_config.yml,搜索links(里面写你想要的链接):
| 1 | # Blog rolls | 
添加社交链接
打开主题配置文件即themes/next下的_config.yml,搜索social:
| 1 | # Social Links | 
文章末尾添加版权声明
查找主题配置文件themes/next/_config.yml中的creative_commons:
| 1 | creative_commons: | 
浏览页面显示当前浏览进度
打开 themes/next/_config.yml,搜索关键字 scrollpercent,把 false 改为 true。
文章置顶功能
移除默认安装的插件:
| 1 | npm uninstall hexo-generator-index --save | 
安装新插件:
| 1 | npm install hexo-generator-index-pin-top --save | 
最后编辑有这需求的相关文章时,在Front-matter(文件最上方以—分隔的区域)加上一行:
| 1 | top: true | 
如果你置顶了多篇,怎么控制顺序呢?设置top的值(大的在前面),比如:
| 1 | # Post a.md | 
文章 b 便会显示在文章 a 的前面
代码块复制选项
在主题配置文件中搜索copy_botton,找到如下配置
| 1 | codeblock: | 
打赏功能
在主题配置文件中搜索reward,找到如下配置:
| 1 | reward_settings: | 
修改文章内链接文本的样式
- 将链接文本设置为蓝色,鼠标划过时文字颜色加深,并显示下划线。 
- 添加以下内容到 - source/_data/styles.styl- 1 
 2
 3
 4
 5
 6
 7
 8
 9- // 将链接文本设置为蓝色,鼠标划过时文字颜色加深,并显示下划线。 
 .post-body p a {
 color: #0593d3;
 border-bottom: none;
 &:hover {
 color: #0477ab;
 text-decoration: underline;
 }
 }
启用Pjax
参考文档:Hexo主题详细配置之一
Pjax 主要用于加速 Web 页面的切换速度,同时也可以用来解决 Aplayer 音频播发器切换页面后播放出现中断的问题
| 1 | # 进入Next主题的目录 | 
| 1 | # 下载3D资源文件 | 
更改 Next 主题的配置文件 themes/next/_config.yml,设置以下内容
| 1 | pjax: true | 
Gitalk评论系统
主题配置文件
| 1 | # Gitalk | 
Github OAuth应用配置
应用信息核对
- 登录GitHub → Settings → Developer settings → OAuth Apps 
- 若没有OAuth APP,则进行创建,并记录你的 - client_id和- client_secret
- 检查应用 - client_id的配置:- Callback URL必须设置为:https://你的仓库名/
- Homepage URL设置为博客地址:https://你的仓库名/
 
- Callback URL必须设置为:
手动创建初始化Issue
- 访问仓库的Issue页面 
- 点击”New issue”创建标题为 - Gitalk Initialization的空白Issue
- 在正文输入任意内容(如 - init)后提交
相对路径本地引用
参考文档:在Hexo博客中插入图片的各种方式
图片除了可以放在统一的images文件夹中,还可以放在文章自己的目录中。文章的目录可以通过站点配置文件_config.yml来生成。 post_asset_folder: true 将_config.yml文件中的配置项post_asset_folder设为true后,执行命令$ hexo new post_name,在source/_posts中会生成文章post_name.md和同名文件夹post_name。将图片资源放在post_name中,文章就可以使用相对路径引用图片资源了。
| 1 |  | 
主题美化
主题Scheme
进入主题配置文件 ,搜索scheme字段,即可看到对应的Scheme配置。
NexT主题内置了四种Scheme,分别有不同的布局和样式。
- Muse
- Mist
- Pisces
- Gemini (我的样式)
其中,Muse和Mist为单栏布局,Pisces和Gemini为双栏布局。可根据自己的喜好进行调整。
网站Logo
进入主题配置文件,搜索 favicon 字段,即可设置网站Logo。
| 1 | favicon: | 
背景图片与半透明
本地存储版:挑选一个自己喜欢的背景图片,将其放置于Hexo/themes/next/source/images文件夹下。
CDN版:利用Cloudianry,上传背景图片并复制其url。
进入文件夹 /Hexo/source,并新建 _data文件夹,在文件夹下新建 styles.styl 文件。
进入主题配置文件,并搜索字段 custom_file_path ,将style行取消注释,即设置:
| 1 | style: source/_data/styles.styl | 
打开刚刚创建的styles.styl文件,添加以下代码:
| 1 | body { | 
本地调试即可观察到背景图片。
menu图标及计数显示
侧边栏标签、分类、归档个数默认不显示,可通过以下设置调整。
进入主题配置文件,并搜索 menu_settings 字段,可根据喜好进行调整。
| 1 | # Enable / Disable menu icons / item badges. | 
页面边框圆角
主题默认的页面边框均为方框,看起来比较生硬,我们可以修改css样式将其改为圆角矩形。
进入 Hexo/source/_data 目录,新建 variables.styl 文件,并添加以下代码:
| 1 | $border-radius-inner = 10px 10px 10px 10px; | 
进入主题配置文件,并搜索 custom_file_path 字段,将variable行取消注释。
本地调试后,可以看到边框已经有了圆角样式。
访客统计
进入主题配置文件,并搜索 busuanzi_count 字段,设置如下:
| 1 | busuanzi_count: | 
本地调试后,即可在网站底部观察到访客和浏览量统计。注意,由于busuanzi本地统计数据使用同一个数据库,在本地的浏览量与访客显示异常,部署后即可恢复正常。
为了增加可读性,可以增加如下设置。
进入 Hexo/themes/next/layout/_partials 目录,打开 footer.njk 文件。
搜索 busuanzi_value_site_uv字段,修改值为:
| 1 | 访客人数:<span id="busuanzi_value_site_uv"></span>人 | 
搜索 busuanzi_value_site_pv 字段,修改值为:
| 1 | 浏览总量:<span id="busuanzi_value_site_pv"></span>次 | 
文章字数统计、阅读时长估计
参考文档:参考文档:Hexo + Next深度美化指北 | zzy的打工日志
通过以下命令安装插件:
| 1 | $ npm install hexo-symbols-count-time --save | 
进入主题配置文件,并搜索 symbols_count_time 字段,设置如下:
| 1 | # Post wordcount display settings | 
进入站点配置文件,添加 symbols_count_time 字段,设置如下:
| 1 | symbols_count_time: | 
在本地调试后,即可在每篇文章的标题下观察到文章字数统计和阅读时间估计。
同样,为了增加可读性,进入 Hexo/themes/next/layout/_partials 目录,打开 footer.njk 文件。
搜索 symbols_count_time.count_total 字段,修改值为:
| 1 | 本站总字数≈<span title="{{ __('symbols_count_time.count_total') }}">{{ symbolsCountTotal(site) }}</span> | 
搜索 symbols_count_time.time_total 字段,修改值为:
| 1 | 阅读本站耗时≈<span title="{{ __('symbols_count_time.time_total') }}">{{ symbolsTimeTotal(site, config | 
网站运行时间
进入 Hexo/themes/next/layout/_partials 目录,打开 footer.njk 文件。
在合适的位置(添加如下代码:
| 1 | <div> | 
注意修改grt为你的建站时间。
在本地调试后,即可在页面底部观察到运行时间。
隐藏网站底部power by Hexo / 强力驱动
进入主题配置文件,并搜索 powered 字段,修改其值为false即可。
顶部阅读进度条
进入主题配置文件,并搜索 reading_progress 字段,设置如下:
| 1 | # Reading progress bar | 
设置建站时间
打开主题配置文件即 themes/next 下的_config.yml,查找since:
| 1 | footer: | 
添加顶部加载条
在themes/next目录下打开Git Bash,输入:
| 1 | git clone https://github.com/theme-next/theme-next-pace source/lib/pace | 
打开主题配置文件即themes/next下的配置文件,找到pace,配置如下(你可以在theme自主选择类型):
| 1 | pace: | 
文章添加阴影
打开 /themes/next/source/css/_custom/custom.styl,添加:
| 1 | .post { | 
修改文章底部的标签的 # 为图标
- 修改主题配置文件 - tag_icon部分- 1 - tag_icon: true # true: 显示为图标 - 添加Github快捷关注
参考文档:Hexo+NexT主题美化
在主题的配置文件中, 搜索: github_banner, 修改为自定义值, 如下:
| 1 | github_banner: | 
深度美化
粒子钟
参考文档:Hexo-Next主题美化博客
修改主题配置文件 _config.next.yml
| 1 | custom_file_path: | 
新建侧边栏粒子钟配置文件 source/_data/sidebar.njk,添加如下代码:
| 1 | <div style=""> | 
编辑 source/_data/styles.styl 样式文件,添加如下代码:
| 1 | // 粒子时钟样式 | 
音乐播放器APlayer
参考文档:Hexo+NexT主题美化
APlayer源码地址: APlayer
首先, 在 next/source/lib 目录下新建 aplayer 文件夹, 之后下载项目源码并解压, 将 APlayer.min.js 和 APlayer.min.css 文件复制到 next/source/lib/aplayer 中.
再之后, 继续在当前目录下新建一个 music.js 文件, 输入以下代码:
| 1 | const ap = new APlayer({ | 
之后修改 themes/next/layout/_layout.njk 在文件最后添加:
| 1 | <!--Aplayer 音乐播放功能--> | 
最后在 主题配置文件 中, 找一个自己喜欢的位置, 写入 aplayer: true. 什么时候想要关闭这个功能了, 直接设置为 false 即可.
这里可能会出现Aplayer播放中断的问题,解决方法详见:实用工具/启用Pjax
网易云音乐挂件
进入网易云网页版,登录账号并选择想要添加的歌单,在歌单上方点击生成外链播放器。
复制下方的HTML代码,并进入 Hexo/themes/next/layout/_macro 文件夹,在合适的地方添加以下代码:
| 1 | <div id="music163player"> | 
鼠标烟花特效
参考文档:Hexo-Next主题美化博客
安装fireworks点击特效动画
| 1 | npm install next-theme/hexo-next-fireworks # Fireworks animation for NexT. | 
黑/白模式切换
参考文档:hexo-next-darkmode/README_CN.md at main · rqh656418510/hexo-next-darkmode
安装
| 1 | npm install hexo-next-darkmode --save | 
配置
首先确保 NexT 主题原生的 darkmode 选项设置为 false:
| 1 | # Close NexT's darkmode | 
往 NexT 主题的 _config.yml 配置文件里添加以下内容:
| 1 | # Darkmode JS |