更新手账
[toc]
参考文章
装修类
butterfly官方文档
Harris’s Blog Butterfly主题美化魔改集锦
https://blog.csdn.net/AAbbccdd12345685/article/details/117871129
相关设置
腾讯云图床访问节点
https://prong-1316442664.cos-website.ap-nanjing.myqcloud.com
报错bug
Error: Spawn failed
- 删除
.deplot_git
文件夹 - git bash 中
git config --global core.autocrlf false
- 重新执行
hexo clean
hexo g
hexo d
font matter引用格式
图片引用直接写链接,不要用md语法![]()
文章模板命名
发文章不可以用如下语法
1 | $ hexo new [C语言]-分支结构 |
文章本地文件命名不能包含"|"
竖线符号
解决:
- 文章本地命名方式形如
[C语言]-分支结构
- git bash创建文章直接输标题,后续自己改为形如
C语言 | 分支结构
豆瓣插件爬取不到信息(未解决)
操作类
发文章
Hexo new 的分类
Hexo对生成文章有三种分类:
post
:也是默认的方式,一般指一篇博客。page
:指生成一个页面,一般用来做标签和关于页draft
:指草稿,我个人很少用。
生成方式是:hexo new [layout] <title>
比如:
hexo new page tags
,即为生成一个名为tags的页面。
文档模板修改
当我们使用 hexo new [layout] <title>
生成文章的生成的文件都是有默认模板的。
比如hexo new post 模板测试
1 | --- |
- 实现修改模板功能
其实每次我们执行 hexo new [layout] <title>
时,Hexo都会去scaffolds
文件夹中寻找[layout].md
,并根据其内容建立文章。
那么我们直接修改对应的 .md
模板文件即可,或者自己添加一个 demo.md
文件,创建文件的时候执行hexo new demo <title>
即可。
图床上传代码
打开当前目录下的终端并输入
python -m markdown_img
丝滑三联
1 | hexo clean && hexo g && hexo s |
1 | hexo clean && hexo g && hexo d |
引用块
在文章中插入引言,可包含作者、来源和标题。
1 | {% blockquote [author[, source]] [link] [source_link_title] %} |
简单点说两种用法:
- 引用名人名言
1 | {% blockquote 鲁迅, 《记念刘和珍君》%} |
- 引用别人网站的文章或其他
1 | {% blockquote B站 https://bilibili.com %} |
操作记录
title
2023/1/6 14:30 图片懒加载
图片懒加载
2023/1/6 14:30
安装模块
npm install hexo-lazyload-image --save
在主目录配置文件_config.yml
增加配置
1 | lazyload: |
这个就是图片没加载出来的时候,出现一个动图转转转。
备用
2023/1/6 15:20 打字机特效
打字机特效
2023/1/6 15:20
1 | # the subtitle on homepage (主頁subtitle) |
enable
设成true
==注意==
1 | # 如果有英文逗号' , ',使用转义字元 , |
2023/1/6 16:20 顶部渐变条色加载条
顶部渐变条色加载条
- 新建[BlogRoot]\source\css\progress_bar.css文件,写入以下内容(或者你在[BlogRoot]\source\css\custom.css直接加也行,最后在配置文件记得引入即可)
1 | .pace { |
- 在主题配置文件_config.butterfly.yml的inject配置项加入刚刚的css样式和必须的js依赖:
1 | inject: |
2023/1/6 16:09 文章置顶滚动栏
文章置顶滚动栏 (店长)
2023/1/6 16:09
https://blog.fomal.cc/posts/eec9786.html
- 安装插件,在博客根目录 [Blogroot] 下打开终端,运行以下指令
1 | npm install hexo-butterfly-swiper --save |
- 添加配置信息,以下为写法示例
在站点配置文件_config.yml 或者主题配置文件_config.butterfly.yml 中添加
1 | # hexo-butterfly-swiper |
使用方法:在文章的 front_matter 中添加 swiper_index 配置项即可。
1 | --- |
2023-1-6 16:41:00 猫猫滚动条
猫猫滚动条
2023-1-6 16:41:00
https://tzy1997.com/articles/hexo1613/
猫猫加载不出来是因为原作者图片图床网络问题,可以替换为自己的图床链接或者内置网页中
2023-1-6 20:55:00 GitHub Calendar (店长)
GitHub Calendar
2023-1-6 20:55:00
https://blog.fomal.cc/posts/eec9786.html
在评论区找到可用的api抄录如下https://python-yln-github-calendar-api.vercel.app/api
- 安装插件,在博客根目录 [Blogroot] 下打开终端,运行以下指令:
1 | npm install hexo-filter-gitcalendar --save |
- 添加配置信息,以下为写法示例
在站点配置文件_config.yml
或者主题配置文件如_config.butterfly.yml
中添加
原版为
1 | # hexo-filter-gitcalendar |
我的配置如下
1 | # Ice Kano Plus_in |
- 参数释义
2023/1/7 11:20 昼夜转换动画
昼夜转换动画
- 新建
[Blogroot]\themes\butterfly\layout\includes\custom\sun_moon.pug
,这部分其实实质上就是一个svg文件,通过js操作它的旋转显隐,淡入淡出实现动画效果。 - 新建
[Blogroot]\themes\butterfly\source\css\_layout\sun_moon.styl
- 新建
[Blogroot]\themes\butterfly\source\js\sun_moon.js
,去除了冗余代码,去jquery。感觉源代码做过混淆加密,好多三元运算一层套一层,看昏了都。
2023-1-7 11:52 双栏布局首页
双栏布局首页
2023-1-7 12:52
https://akilar.top/posts/d6b69c49/
- 修改
[Blogroot]\themes\butterfly\layout\includes\mixins\post-ui.pug
,整个替换为下面的代码:
1 | mixin postUI(posts) |
原本代码备份post-ui.pug
1 | mixin postUI(posts) |
- 样式方案提供两种:
- 样式一:电脑端宽屏采用滑动卡片,平板宽度采用双栏布局,手机宽度采用单栏卡片。
- 样式二:移除滑动卡片,按屏幕宽度依次应用三栏、双栏、单栏。
读者可以根据自己的喜好挑选。
新建目录[Blogroot]\themes\butterfly\source\css\_index_card_style\
,并在下面新建对应的文件。注意看牢短横杠哦,路径新建错误导致的问题本店概不负责。
- 样式一
新建[Blogroot]\themes\butterfly\source\css\_index_card_style\slidecard.styl
,填入以下内容。
1 | //default color: |
- 样式二
1 | //default color: |
- 修改
[Blogroot]\themes\butterfly\source\css\_page\homepage.styl
,将整文件内容替换为以下代码:
1 | if hexo-config('index_card_style') == 'slidecard' |
原代码
1 | #recent-posts |
- 然后在主题配置文件
[Blogroot]\_config.butterfly.yml
里新增配置项,这样我们就可以通过配置项自由切换使用哪款了:
1 | # 主页卡片样式 |
- 考虑到不管是样式一还是样式二都存在一个布局突变的情况。为了不至于让首页的文章出现空缺,建议将首页生成的文章数量控制为1,2,3的公倍数。修改站点配置文件
[Blogroot]\_config.yml
。找到以下配置项进行调整,注意这是站点配置文件本就有的配置项,不是新增配置项。建议是调整为12篇。如果你的侧边栏魔改内容特别多,那么建议改成18、24、30。务必确保文章卡片栏比侧栏完全展开要长,这样展示效果最好。
1 | # Display the article introduction on homepage |
2023/1/7 22:52:00 豆瓣插件
豆瓣插件
2024/11/2 23:05:00
https://github.com/mythsman/hexo-douban
偶尔可能网络原因用魔法也爬取不到数据,解决方案是耐心等待。注意,目前网上有两个版本的豆瓣插件,一个是hexo-butterfly-douban
,这个版本似乎已经不可用。目前,应使用hexo-douban
。此前若已安装过hexo-butterfly-douban
,需要将其卸载,避免冲突。hexo-douban
配置时需注意,是id
而非user
,且id
必须是数字id,不可写自定义id。经测试这一个插件的效率较另一个大大提升。
2023-1-8 00:05:00 天气插件
天气插件,有bug暂时放弃
https://blog.csdn.net/weixin_50915462/article/details/120050294
2023-1-8 00:05:00
注册和风天气并设置简约插件
生成代码如下,在Hexo\themes\butterfly\source\js\
路径下新建weather.js
文件,将上面所复制的代码复制进去:
1 | <div id="he-plugin-simple"></div> |
在主题配置文件_config.butterfly.yml
中找到inject
的bottom
处引入以下两个js文件:
2023-1-8 16:47:00 配置个人域名
配置个人域名
2023-1-8 16:47:00
在腾讯云上购买域名收费标准
年数 | 首购 | 续费 |
---|---|---|
前三年 | ||
2023-1-8 15:20 配置多个仓库
配置多个仓库
https://www.voidking.com/dev-hexo-multi-git/
2023-1-8 15:20
尝试部署到coding, 发现coding的pages功能无法使用
因此使用Gitee
在_config.yml
的deployment
中,以以下语法配置
1 | # github |
在gitee中用类似github的方式配置ssh密钥
gitee要网页审查,技术文档有时候都违规,遂放弃
2023-1-8 19:00:00 安装历史上的今天插件
安装历史上的今天插件
2023-1-8 19:00:00
https://zfe.space/post/hexo-history-calendar.html
安装插件
1 | npm i hexo-history-calendar --save |
新增网站根目录_config 配置项 (不是主题的)
1 | history_calendar: |
2023-1-8 20:00:00 时间轴加上生肖图标
时间轴加上生肖图标
https://akilar.top/posts/22257072/
在[Blogroot]\themes\butterfly\scripts\目录下新建year.js,并在[Blogroot]\themes\butterfly\scripts\year.js中输入以下内容:
1 | hexo.extend.helper.register("getAnimalIcon", function (year) { |
修改[Blogroot]\themes\butterfly\layout\includes\mixins\article-sort.pug,第 7 行开始,注意缩进。
1 | - let title = article.title || _p('no_title') |
2023-1-10 20:30:00 添加访客地球插件
添加访客地球插件
https://www.revolvermaps.com/?target=setupgl
2023-1-10 20:30:00
插入在关于页面,设置大小自适应
1 | <div style="position: relative; padding-top: 100%;"> |
新代码
1 | <script type="text/javascript" src="//rf.revolvermaps.com/0/0/6.js?i=5w15y78qsxh&m=0&c=ff0000&cr1=ff0000&f=arial&l=1&s=340" async="async"></script> |
2023-1-11 00:24:00 添加博客文章统计图
添加博客文章统计图
https://blog.eurkon.com/post/1213ef82.html
2023-1-11 00:24
ECharts配置项文档
https://echarts.apache.org/zh/option.html#title
- 新建
charts
页面(其实也可以不建,放在想放的地方就行)
1 | hexo new page charts |
- 引入
ECharts.js
全局引用
以 butterfly 主题为例,可以在 [Blogroot]\_config.butterfly.yml
的 inject
配置项中引入 echart.js
文件。
1 | inject: |
页面引入
可以在 index.md 添加以下内容:
1 | <script src="https://npm.elemecdn.com/echarts@4.9.0/dist/echarts.min.js"></script> |
- 文章统计代码
以 butterfly 主题为例,可以在[Blogroot]\themes\butterfly\scripts\helpers\
目录下新建charts.js
文件,然后添加以下内容:
1 | const cheerio = require('cheerio') |
更多统计图的自定义属性可以查看 ECharts配置项文档 ,根据自行喜好对 ECharts 统计图进行修改。
- 使用统计图
在上文新建的[Blogroot]\source\charts\index.md
文件中添加以下内容:
当然也可以在其他页面引入文章统计图,如果出现图表显示不全的现象可以修改 div 的 height 属性。。
posts-chart
的data-start="2021-01"
属性表示文章发布时间统计图仅显示2021-01
及以后的文章数据。tags-chart
的data-length="10"
属性表示仅显示排名前10
的标签。categories-chart
的data-parent="true"
属性表示有子分类
时以旭日图显示分类,其他无子分类
或设置为false
或不设置该属性
或设置为其他非true属性
情况都以饼状图显示分类。
可能遇到的问题
控制台报错 Uncaught ReferenceError: require is not defined
解决方案:
不能直接在页面引用 charts.js,是放在主题文件夹 [Blogroot]\themes\butterfly\scripts\helpers\ 里面,hexo g 的时候会在 div 后面追加 echarts 图的 js。页面不需要引入 charts.js。
控制台报错 Uncaught ReferenceError: echarts is not defined。
解决方案:
需要在统计图的前引入 echarts.js 文件,最好是在页面的头部引入。
控制台报错 Cannot find module ‘cheerio’。
解决方案:
安装 cheerio,控制台执行 npm i cheerio --save。
2023-1-11 14:24:00 添加追番统计
追番插件
安装
安装代码:
1 | npm i hexo-bilibili-bangumi-anzhiyu |
将下面的配置写入站点的配置文件 _config.yml 里(不是主题的配置文件).
1 | # 追番设置 |
- enable*: 是否启用
- source: 数据源,仅支持追番,追剧仅支持哔哩哔哩源。bili: 哔哩哔哩源, bgm: Bangumi源
- proxy: 代理设置,仅在使用支持bgm源追番时生效。默认false
- path: 页面路径,默认bangumis/index.html, cinemas/index.html
- vmid*: 哔哩哔哩的 vmid(uid)如何获取?或Bangumi的用户id如何获取?
- title: 该页面的标题
- quote: 写在页面开头的一段话,支持 html 语法,可留空。
- show: 初始显示页面:0: 想看, 1: 在看, 2: 看过,默认为1
- lazyload: 是否启用图片懒加载,如果与主题的懒加载冲突请关闭,默认true
- loading: 图片加载完成前的 loading 图片,需启用图片懒加载
- metaColor: meta 部分(简介上方)字体颜色
- color: 简介字体颜色
- webp: 番剧封面使用webp格式(此格式在safari浏览器下不显示,但是图片大小可以缩小 100 倍左右,仅支持哔哩哔哩源), 默认true
- progress: 获取番剧数据时是否显示进度条,默认true
- extraOrder: 手动添加的番剧/追剧数据是否优先显示,1为优先,其它为不优先
- showMyComment: 使用bgm源时显示自己的评价及评论,默认false
- pagination: 分页优化,只将第一页的数据渲染到html文件中,其余数据将通过异步请求加载,避免番剧过多时html文件过大导致页面加载缓慢,建议番剧较多时使用,默认false
- extra_options: 此配置会扩展到Hexopage变量中
使用方式
创建页面
1 | hexo new page bangumis |
1 | hexo new page cinemas |
在导航栏里设置
在 hexo generate 或 hexo deploy 之前使用
1 | hexo bangumi -u |
1 | $ hexo clean && hexo bangumi -u && hexo cinema -u && hexo g && hexo s |
命令更新番剧数据!
删除数据命令
1 | hexo bangumi -d |
例如(代码)
1 | hexo bangumi -u && hexo clean && hexo g -d |
获取 uid
登录哔哩哔哩后前往https://space.bilibili.com/页面,网址最后的一串数字就是 uid
需要将追番列表设置为公开!
手动添加番剧追剧数据
因为某些番剧在哔哩哔哩上没有,但是又想在hexo中展示,怎么办呢?现在支持手动添加番剧数据了!
在 sources/_data/ 目录下新建文件,命名为 extra_bangumis.json
(追番数据)或extra_cinemas.json
(追剧数据) ,并添加以如下内容:
1 | { |
title 是番剧的标题,cover 是封面图链接, des 是简介,上述字段均根据需要修改。
另外除了 watchedExtra 数组,还可以在后面添加新的数组,可用数组名如下:
可用数组名 | 含义 |
---|---|
wantWatchExtra | 想看 |
watchingExtra | 在看 |
watchedExtra | 看过 |
需要注意,在两个数组之间需要用 , 分隔。 |
2023-1-11 18:24:00 添加追字数统计
要为Butterfly配上字数统计特性, 你需要如下几个步骤:
- 打开 hexo 工作目录
npm install hexo-wordcount --save
or yarn add hexo-wordcount
- 修改
主题配置文件
:
1 | wordcount: |
2023-1-24 14:24:00 修改版权样式
修改版权样式
原代码
1 | if theme.post_copyright.enable && page.copyright !== false |
打开ROOT\themes\butterfly\layout\includes\post
文件夹,将下列代码覆盖post-copyright.pug
文件
1 | if theme.post_copyright.enable && page.copyright !== false |
打开ROOT\themes\butterfly\source\css_layout
文件夹,修改post.styl
文件
1 | .post-copyright |
源代码
1 | beautify() |
新建copyright.css
,适配夜间模式和美化字体样式,放入ROOT\themes\butterfly\source\css
1 | [data-theme="dark"] |
配置主题文件
1 | inject: |
2023-1-24 15:24:00 增加标签云文章数上下标
增加标签云文章数上下标
前言
本文教程主要针对 Hexo Butterfly 主题博客,在 Butterfly 主题中,文章标签页和标签侧边栏都有文章标签的词云图,但仅仅用字体大小表示某个标签下的文章数量是不明显的,可以在这个基础上加上表示某个标签下文章数的上下标,其中 表示上标, 表示下标。
修改 page.js
- 打开 \themes\butterfly\layout\includes\page\tags.pug 文件和 \themes\butterfly\layout\includes\widget\card_tags.pug 文件,发现绘制彩色标签云都是使用了 cloudTags 函数。
另外一个绘制标签云的 tagcloud 函数是 hexo 自带的,有兴趣的可以到 \node_modules\hexo\lib\plugins\helper\tagcloud.js 研究,这里不多介绍。
- 搜索 cloudTags 函数,可以在 \themes\butterfly\scripts\helpers\page.js 找到绘制标签云的代码,增加 {tag.length} 可绘制表示标签文章数的上下标。
1 | hexo.extend.helper.register('cloudTags', function (options = {}) { |
2023-1-24 22:24:00 修改友链样式
修改友链样式
https://anzhiy.cn/posts/292d.html
打开[Blogroot]\source\_data\link.yml
,输入:
标准写法
1 | - class_name: 推荐博客 |
替换[Blogroot]\themes\butterfly\layout\includes\page\flink.pug
1 | #article-container |
flink.pug
原文件
1 | #article-container |
替换
1 | .flink-desc |
flink.css
源文件
1 | #article-container |
获取网站截图接口
https://image.thum.io/get/width/400/crop/800/allowJPG/wait/20/anzhiy.cn/https://http://ehall.njust.edu.cn/new/index.html
2023-1-26 23:15:00 butterfly宽幅调整
butterfly宽幅调整
content
2023-1-26 23:45:00 个人信息卡片调整
个人信息卡片调整
Eacls的方案
1 | /*个人信息美化*/ |
HiPeach的方案
1 | /*个人信息美化*/ |
安知鱼的方案(渐变色)
1 | #aside-content > .card-widget.card-info { |
我的渐变色
1 | #aside-content > .card-widget.card-info { |
2023-1-26 23:57:00 文章页信息栏美化
文章页信息栏美化
https://www.eacls.top/posts/286b8081/
1 | /*文章页信息栏美化*/ |
2023-1-27 00:11:00 网址卡片外挂标签
2023-3-6 00:11:00 RSS订阅
RSS订阅
经过博友建议,加上了RSS订阅功能。参考教程如下:
其中参数的定义可查看插件github官方文档
2023-4-30 17:28:00 生成永久链接
停更快两个月,原因是储存博客数据的移动硬盘坏了。心太痛!
此前我也曾经坏过硬盘,幸亏有以前的经验,迅速第一时间硬盘断电,开盘恢复数据。将近2T的数据应该基本完全修复,感谢维修师傅,总共费用450,业务能力和费用都没得说。如果在南京的同学也遇到硬盘损坏,悄悄帮师傅打个广告:南京红警数据恢复。
万幸博客数据完整无损,万幸硬盘中各类笔记完整无损,以前的图像视频估计也基本无损。
深深意识到数据备份的重要性。有时间专门写个帖。
安装插件
1 | npm install hexo-abbrlink --save |
使用
修改_config.yml
1 | ## permalink: :year/:month/:day/:title/ |
增加以下设置
1 | ## abbrlink config |
2024-10-30 17:00:00 Twikoo评论
Twikoo评论
许久未打开博客了!最近发现此前配置的twikoo出了一些小bug,遂进行修复。
- QQ邮箱smtp登录授权码
- 回复邮箱提醒的样式模板
参考了Twikoo评论回复邮件模板:Acrylic Mail 粉。此处放上我的模板作为备份
1 | <div class="page flex-col"> |
2024-10-31 18:00:00 更换主题:安知鱼
更换主题:安知鱼
本次将主题更换为安知鱼
大佬的主题。待考研结束后,慢慢将本科期间的各项成果整理到博客中。