前言

最近在装修博客时发现了一个非常实用的 Halo 插件——Injector,这个插件可以在 Halo 应用商店中直接下载使用,极大地提升了我的博客定制效率。

https://github.com/Erzbir/halo-plugin-injector

插件介绍

Injector 是一个专门用于将 HTML 代码注入到指定页面的 Halo 插件。与 Halo 自带的代码注入功能只能全局注入不同,Injector 插件允许根据路径和元素匹配来精准注入 HTML 代码,这为页面级别的定制提供了极大的便利。

痛点与解决方案

原有方案的局限

在使用 Injector 之前,我面临着这样的困境:Halo 自带的代码注入功能仅支持全局注入,而对于那些只需要在特定页面注入的代码,只能通过编辑主题文件来实现。这种方法存在明显缺陷:

  • 操作繁琐,需要定位具体的模板文件

  • 主题一旦升级,所有修改都会被覆盖

  • 维护成本高,每次主题更新都需要重新修改

实际应用场景

最近我在使用"装备"这个插件时,发现其分组功能缺少排序选项。如图所示,我先添加了"生产力"分组,然后添加了"家庭娱乐"分组:

6916c090d0a38.webp

但前台显示却是倒序排列的,而且前端界面没有提供排序功能。对于有整理强迫症的我来说,这确实让人不太舒服。

6916c0d73b63c.webp

问题解决过程

第一步:安装插件

在 Halo 插件市场中找到 Injector 插件并完成安装。

第二步:启用插件

安装完成后,在插件管理界面启用 Injector 插件。

第三步:配置注入代码

在插件设置界面,填写需要注入的代码,用于实现分组排序功能:

 <style>
    #page #equipment {
        display: flex;
        flex-direction: column-reverse;
    }
    
    /* 确保只影响装备分组内的元素 */
    #page #equipment .equipment-item {
        /* 确保每个分组项正常显示 */
    }
</style>

6916c293a9f04.webp

最终效果

经过简单的配置后,装备分组按照我期望的顺序完美排列,整个界面看起来整洁有序,心情顿时舒畅了许多!

6916c2c1da030.webp

总结

Injector 插件的出现,完美解决了 Halo 博客在代码注入方面的局限性。它不仅提供了更精细的注入控制,还避免了主题升级导致的定制内容丢失问题。对于需要深度定制博客功能的用户来说,这无疑是一个必备的工具。

如果你也遇到了类似的需求,不妨试试这个强大的插件,相信它会为你的博客维护工作带来极大的便利!

写在最后

只测了本模板别的模板不知道适不适用,应该可以,请自行设置。图库应该也是类似的。之后我可以试试修改代码。