跳转到内容

Hyacine 插件系统

ShokaX 通过 Hyacine(HyC)提供了可扩展的插件系统,让你可以为博客添加各种扩展功能,如建站时间显示、鼠标点击特效等。

Hyacine 插件系统通过注入点(Inject Points) 机制工作:插件可以在页面的特定位置注入 HTML、CSS 或 JavaScript,无需修改主题源代码。

注入点CSS 选择器说明
headslot[name="head"]页面 <head> 区域,用于注入元标签、CSS 等
layout#container主布局容器
right-nav#nav导航栏右侧
sidebar#sidebar侧边栏
footer#footer页脚
footer-status.status页脚状态区域
widgets.widgets页脚小部件区域
post-footer.post footer文章页脚(版权、打赏等)

插件配置在项目根目录的 hyacine.plugin.ts 中:

hyacine.plugin.ts
import { defineConfig } from "@hyacine/core/config";
import SiteUpTime from "@hyacine/site-uptime";
import MouseFirework from "@hyacine/mouse-firework";
export default defineConfig({
injectPoints: {
head: 'slot[name="head"]',
layout: "#container",
"right-nav": "#nav",
sidebar: "#sidebar",
footer: "#footer",
"footer-status": ".status",
widgets: ".widgets",
"post-footer": ".post footer",
},
plugins: [
// 在这里注册插件
],
});

ShokaX 默认启用了以下两个插件:

@hyacine/site-uptime 在页脚显示博客的运行时长。

hyacine.plugin.ts
import SiteUpTime from "@hyacine/site-uptime";
export default defineConfig({
// ...
plugins: [
SiteUpTime({
siteCreatedAt: "2022-08-01T00:00:00Z", // 你的建站日期
}),
],
});

页脚状态区域会显示类似:

⏱ 本站已运行 3 年 10 个月 5 天

@hyacine/mouse-firework 在用户点击页面时触发粒子特效。

hyacine.plugin.ts
import MouseFirework from "@hyacine/mouse-firework";
export default defineConfig({
// ...
plugins: [
MouseFirework({
colors: [
"rgba(255,182,185,.9)",
"rgba(250,227,217,.9)",
"rgba(187,222,214,.9)",
"rgba(138,198,209,.9)",
],
count: 30, // 每次点击生成的粒子数
radius: 16, // 粒子扩散半径
}),
],
});
字段类型默认值说明
colorsstring[]粉/橙/绿/蓝渐变粒子颜色数组(CSS 颜色值)。
countnumber30每次点击生成的粒子数量。
radiusnumber16粒子扩散半径(像素)。

在页面任意位置点击鼠标,会触发彩色粒子爆炸效果。

如果不想要某个插件,从 plugins 数组中移除即可:

hyacine.plugin.ts
export default defineConfig({
// ...
plugins: [
// SiteUpTime({ siteCreatedAt: '...' }), ← 已注释
MouseFirework({ /* ... */ }),
],
});

Hyacine 插件目前处于 Alpha 阶段,相关文档仍在准备中。

如果你是开发者,可以参考以下资源:

  • Hyacine 核心包@hyacine/core
  • 现有插件的实现:@hyacine/site-uptime@hyacine/mouse-firework

检查以下几点:

  1. 插件是否已在 plugins 数组中注册
  2. 注入点配置是否正确(检查 CSS 选择器是否匹配现有 DOM 结构)
  3. 运行 bun run build 重新构建

Q: 可以同时使用多个同类插件吗?

Section titled “Q: 可以同时使用多个同类插件吗?”

可以。按注册顺序,后注册的插件可能覆盖前一个插件在同一注入点的内容。

关注 ShokaX GitHub 组织 获取最新的 Hyacine 插件发布。

津 ICP 备2022001375 号
津公网安备 12011402001353 号