手把手搭建个人博客系列教程-五
前言
手把手搭建个人博客系列教程-五: 本节设置文章相关,侧边栏,footer,右下角按钮,404页面,特效,字体,本地搜索,显示模式,预加载动画,标签外挂等
参考文档:
环境与工具
- 操作系统:Windows 10
- VSCode编辑器
文章相关配置
文章meta显示
文章页针对每篇文章会记录其基本信息meta,包括创建日期、更新日期、分类信息、标签信息等,这些信息会在主页的文章卡片部分和文章页的顶部、底部显示,下面是关于文章meta信息的配置项
1 | post_meta: |
- 相对日期指的距今的时间,例如:一个月前
- 绝对日期指的是日期格式的时间,例如:2024-05-19
主页文章描述设置
主页文章描述使用index_post_content项来配置,包含method和length两个配置项, method项可选值:
可选值 | 描述 |
---|---|
1 | 文章中front-matter中配置的description |
2 | both(用description如有,否则从文章自动节选) |
3 | 从文章自动节选 |
method选2或3时需要设置length来决定自动节选的长度
复制相关配置
参数解释:
参数 | 描述 | 可选值 |
---|---|---|
enable | 是否启用 | true |
limit_count | 复制字数超过设定值时,将自动在复制内容后面加上版权信息 | 数字,如:100 |
文章版权
post_copyright配置文章版权信息,decode配置项启用后会对版权信息中的中文信息解码,如果你的文章标题或者文章链接中包含中文就启用此项
如果有文章(如:转载文章)不需要显示版权,可以在文章的front-matter部分配置copyright项为false
文章打赏
在每篇文章的结尾添加打赏功能,格式:
1 | reward: |
文章页侧边目录
文章页侧边栏目录展示toc,配置项:
配置项 | 描述 |
---|---|
post | 是否在文章页启用 |
page | 是否在其他页面页启用 |
number | 目录前的顺序数字是否启用 |
expand | 多级目录是否展开 |
style_simple | 是否在文章页只展示目录,隐藏社交卡片等侧边栏,此项只对文章页有效 |
scroll_percent | 阅读进度展示是否启用 |
文章推荐
related_post文章推荐配置,根据文章的tags比重推荐
limit
项设置推荐的文章数量data_type
项配置推荐文章日期显示为created
还是updated
文章分页
post_pagination文章分页是文章底部下一篇上一篇的部分,post_pagination配置项解释:
值 | 描述 |
---|---|
1 | 下一篇指向更早的文章 |
2 | 下一篇指向更新的文章 |
false | 不启用分页功能 |
文章过期提醒
noticeOutdate文章过期提醒配置项:
配置项 | 描述 | 可选值 |
---|---|---|
style | 过期提醒消息的风格 | simple/flat |
limit_day | 文章更新距今超过此参数会进行过期提醒 | 数字,如500表示500天 |
position | 提醒消息的位置 | top/bottom |
message_prev | 天数之前的消息 | 例:It has been |
message_next | 天数之后的消息 | 例如:days since the last update, the content may be outdated. |
分享文章
在博客文章页末尾添加分享按钮
1 | sharejs: |
字数统计
wordcount: 文章的字数统计,会显示在文章页的最上方统计栏,包含字数统计,阅读需要的时间,总字数统计信息,更多介绍见官网
1 | wordcount: |
文章页的标题图标
beautify: 给文章的每个标题前添加一个图标
1 | beautify: |
水平分割线图标设置
hr_icon: 定制分割线样式,使用Font Awesome icon,在fontawesome官网找到图标,复制unicode,格式'\unicode'
,例如'\3423'
1 | hr_icon: |
footer设置
footer部分的配置,用于显示在所有页面的footer部分,配置项:
配置项 | 描述 |
---|---|
since | 网站建立年份,会自动补充为建立年份-现在年份 的形式 |
custom_text | 可自定义显示的内容 |
copyright | 是否附上版权声明 |
对于部分人需要写 ICP 的,也可以写在 custom_text里
custom_text部分可自定义内容和样式,可以使用标签包裹的链接和图标,例:
1 | Welcome to <a href="https://PeakofMountains.github.io/">PeakofMountains Blog</a>! Have a nice day! <p><a target="_blank" href="https://hexo.io/"><img src="https://img.shields.io/badge/Frame-Hexo-blue?style=flat&logo=hexo" title="博客以Hexo为框架"></a> <a target="_blank" href="https://butterfly.js.org/"><img src="https://img.shields.io/badge/Theme-Butterfly-6513df?style=flat&logo=bitdefender" title="采用butterfly主题"></a> <a target="_blank" href="https://www.jsdelivr.com/"><img src="https://img.shields.io/badge/CDN-jsDelivr-orange?style=flat&logo=jsDelivr" title="使用JsDelivr为静态资源进行CDN加速"></a> <a target="_blank" href="https://github.com/"><img src="https://img.shields.io/badge/Source-Github-d021d6?style=flat&logo=GitHub" title="本站项目由Gtihub托管"></a> <a target="_blank" href="http://creativecommons.org/licenses/by-nc-sa/4.0/"><img src="https://img.shields.io/badge/Copyright-BY--NC--SA%204.0-d42328?style=flat&logo=Claris" title="本站采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可"></a></p> |
侧边栏设置
aside侧边栏设置
侧边排版和默认部件
1 | aside: |
网站访问人数
busuanzi访问量、总访问量、阅读量的配置,更多介绍见官方网站
1 | busuanzi: |
网站运行时间
runtimeshow网站运行时间,配置项 publish_date
的格式:Month/Day/Year Time
或者 Year/Month/Day Time
,使用例子:
1 | publish_date: 2024/5/15 00:00:00 |
最新评论
newest_comments侧边栏最新评论板块
1 | newest_comments: |
最新评论只会在刷新时才会去读取,并不会实时变化
由于 API 有 访问次数限制,为了避免调用太多,主题默认存取期限为 10 分钟,调用后资料会存在 localStorage 里,10分钟内刷新网站只会去 localStorage 读取资料,10 分钟期限一过,刷新页面时才会去调取 API 读取新的数据
3.6.0 新增了 storage 配置,可自行配置缓存时间
自定义添加侧边板块
参考官方教程
页面右下角按钮
繁简转换
translate繁简转换按钮
1 | translate: |
阅读模式
readmode阅读模式
1 | readmode: true |
readmode只在文章页起作用
夜间模式
夜间模式darkmode
1 | darkmode: |
autoChangeMode项设置夜间白天自动切换的方式,参数值含义:
参数值 | 描述 |
---|---|
1 | 跟随系统,系统不支持黑夜模式则在6 pm-6 am自动切换为黑夜模式 |
2 | 在6 pm-6 am自动切换为黑夜模式 |
false | 不启用自动切换 |
滚动条百分比
rightside_scroll_percent右侧滚动条百分比
配置404页面
butterfly主题内置了一个简单的404页面,在_config.butterfly.yml中启用,将enable项配置为true
即可
本地预览访问出错网站是不会跳转到404页面的,如果需要本地预览,通过http://localhost:4000/404.html来访问
本地搜索系统
- local_search本地搜索系统需要先安装依赖,在博客根目录打开终端:
1
npm install hexo-generator-search --save
- 在全局配置文件
_config.yml
中添加配置:1
2
3
4search:
path: search.xml
field: post
content: true - 在主题配置文件
_config.butterfly.yml
中启动local_search,local_search: true
主题颜色配置
主题颜色配置theme_color
1 | theme_color: |
特效
评论区打字特效
评论区输入打字特效
1 | # https://github.com/disjukr/activate-power-mode |
静止彩带背景特效
网页背景为静止彩带,点击后彩带切换
1 | # See: https://github.com/hustcc/ribbon.js |
动态彩带特效
canvas_fluttering_ribbon:动态彩带背景,彩带会自动运动和变色
1 | # See: https://github.com/hustcc/ribbon.js |
线条集束特效
canvas_nest: 线条集束特效
1 | # canvas_nest |
参数介绍:
参数 | 描述 | 可选值 |
---|---|---|
color | 线条颜色 | RGB values:(R,G,B),例:'0,0,255' ,默认 '0,0,0' |
opacity | 线条透明度 | 0~9,默认0.5,例:0.9,数值0代表完全透明 |
zIndex | 在背景上的层级 | 默认-1 |
count | 特效线条的数量 | 默认99 |
鼠标点击特效
烟花特效
fireworks: 鼠标点击后在点击处出现烟花特效
1 | fireworks: |
心形特效
click_heart: 鼠标点击后在点击处出现心形图案特效
1 | click_heart: |
文字特效
鼠标点击后在点击处出现预设的文字特效
1 | clickShowText: |
网站默认显示模式
Default display mode网站默认的主题显示模式,light或者dark,包括文章的背景色,主页的文章卡片背景色、侧边栏背景色等
1 | display_mode: dark # light/dark,默认为light |
主页打字特效
subtitle主页打字特效
1 | # 主页subtitle副标题 |
source配置项的参数介绍:
值 | 描述 |
---|---|
false | 关闭调用 |
1 | 调用一言网的一句话 |
2 | 调用一句网的一句话 |
3 | 调用今日诗词的一句话 |
subtitle 会先显示 source , 再显示 sub 的內容
如果关闭打字特效,subtitle 只会显示 sub 的第一行文字
字体设置
全局字体设置
font: 全局字体设置,可配置全局字体的大小、字体样式、代码字体大小、代码字体样式
1 | font: |
网站名字字体
1 | # 左上角网站名字 主页居中网站名字 |
预加载动画
preloader: 预加载动画设置,进入网页有些图片类资源还没加载好,此项开启后会在此时播放预加载动画,知道资源全部加载完成
1 | preloader: |
标签外挂
标签外挂是Hexo独有的功能,并不是标准的Markdown格式。
以下的写法,只适用于Butterfly主题,用在其它主题上不会有效果,甚至可能会报错。使用前请留意
标签外挂虽然能为主题带来一些额外的功能和UI方面的强化,但是,标签外挂也有明显的限制,使用时请留意
标签外挂可用的地方很多,这里只介绍最常用的Note外挂标签的一种用法,更多详细内容请参考官网介绍
Note
Note外挂标签的使用格式:
1 | {% note [class] [no-icon] [style] %} |
class,no-icon,style均是可选参数,可以忽略不填,参数介绍:
参数 | 描述 | 可选值 |
---|---|---|
class | 标识,不同标识配色不同 | default/primary/success/info/warning/danger |
no-icon | 不显示icon | no-icon |
style | 风格,可覆盖note配置的style值 | simple/modern/flat/disabled |