Hexo 注入器实践
本文最后更新于:2023年4月5日 下午
Hexo 注入器实践
前言
我博客首页飘的那个樱花看着花里胡哨,但是非常占用资源……而且因为是直接引进来的 js
,所以每个页面都有这玩意,但是毕竟花里胡哨,也就对性能问题睁一只眼闭一只眼,刚才翻别人博客突然发现了注入器这个神奇玩意,于是问题解决了:只在首页显示樱花飘落的动画。
参考博客
具体实践
在 Hexo Fluid 用户手册 中说的比较清楚了:注入器可以将 HTML 片段注入生成页面的 <head>
和 <body>
节点中,而且可以选择注入的页面类型(比如我首页的樱花我可以选择只注入首页)。
编写注入代码,需要在博客的根目录下创建 scripts
文件夹,然后在里面任意命名创建一个 js 文件即可。
我创建了一个 /Hexo/scripts/yinghua.js
了一个文件,内容为:
上述代码会在生成的页面 </body>
注入加载 //must.best/assets/js/flower.js
的代码。
这里发挥作用的是 register
函数。
register
函数
register
函数可接受三个参数。
第一个参数
第一个参数是代码片段注入的位置,接受以下值:
head_begin
: 注入在<head>
之后(默认)head_end
: 注入在</head>
之前body_begin
: 注入在<body>
之后body_end
: 注入在</body>
之前
第二个参数
第二个参数是注入的片段,可以是字符串,也可以是一个返回值为字符串的函数。
第三个参数
第三个参数是注入的页面类型,接受以下值:
default
: 注入到每个页面(默认值)home
: 只注入到主页(is_home()
为true
的页面)post
: 只注入到文章页面(is_post()
为true
的页面)page
: 只注入到独立页面(is_page()
为true
的页面)archive
: 只注入到归档页面(is_archive()
为true
的页面)category
: 只注入到分类页面(is_category()
为true
的页面)tag
: 只注入到标签页面(is_tag()
为true
的页面)- 或是其他自定义 layout 名称,例如在Fluid 主题中
about
对应关于页、links
对应友联页
比如上面我要樱花飘落的动画只在首页显示,所以选择
home
这个参数。
Hexo 注入器实践
https://blog.ksfu.top/posts/5eba/