惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Y
Y Combinator Blog
Blog — PlanetScale
Blog — PlanetScale
H
Hackread – Cybersecurity News, Data Breaches, AI and More
WordPress大学
WordPress大学
B
Blog RSS Feed
A
About on SuperTechFans
V
Visual Studio Blog
J
Java Code Geeks
U
Unit 42
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
M
MIT News - Artificial intelligence
IT之家
IT之家
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
C
Check Point Blog
博客园 - 叶小钗
P
Proofpoint News Feed
Microsoft Security Blog
Microsoft Security Blog
B
Blog
S
SegmentFault 最新的问题
Microsoft Azure Blog
Microsoft Azure Blog

Halo - 强大易用的开源建站工具 | 应用市场

源蝶文档 Hanlo Theme 用户小黑屋 情侣主页 微信公众号同步 互动增强 BBS 社区 重要日期 知识库 新野-粗犷主义 站点访问控制 Lottie 动画 展示架 MCP Server 绿野 Luye Log Viewer 超级链接卡片 通知聚合 Akari 深色模式 文章投稿审核 AI RolePlay GitHub 人机验证 心愿便签 Afdian Plus Publica 公共门户 资源下载管理 文章数据趋势分析 归航寻亲
文章组件
2026-06-09 · via Halo - 强大易用的开源建站工具 | 应用市场

Halo 文章组件插件

为 Halo 文章提供一组可在编辑器中快速插入、前台自动渲染的内容增强组件。插件内置提示框、标签页、折叠面板、聊天气泡、时间线、步骤、复制命令、图片、进度条等常用内容块,让文章排版和交互展示更丰富。

🌐 演示与交流

预览

编辑器组件选择

前台渲染效果

内置组件

当前包含以下组件:

  • 提示:提示框、悬浮提示、引用、便签、结果
  • 布局:标签页、折叠面板、分栏、步骤、时间线、卡片列表、对比
  • 代码:复制命令、命令组、快捷键
  • 展示:聊天、图片、进度条、状态、徽标、按钮、任务清单
  • 行内:表情时钟、模糊文本、批注、阅读时间

作为标签使用

如果你使用默认编辑器,通常只需要在编辑器中插入和配置组件。除此之外,也可以直接在文章 HTML 中使用 xhhao-com-* 标签。

xhhao-com-alert

提示框,适合展示提醒、信息、问题、警告、错误等内容。

<xhhao-com-alert type="warning" title="注意">
  这里写警告内容。
</xhhao-com-alert>

参数:

  • type:状态,可选值为 tipinfoquestionwarningerror
  • title:标题。
  • icon:自定义图标,支持 SVG 字符串或图片 URL。

xhhao-com-tab

标签页,用于把内容切分到多个页签中。

<xhhao-com-tab tabs="介绍,示例" active="1">
  <xhhao-com-tab-panel>第一个标签页内容。</xhhao-com-tab-panel>
  <xhhao-com-tab-panel>第二个标签页内容。</xhhao-com-tab-panel>
</xhhao-com-tab>

参数:

  • tabs:标签名称,使用英文逗号分隔。
  • active:默认激活的标签序号,从 1 开始。
  • center:是否居中显示标签。

xhhao-com-copy

复制命令,用于展示可一键复制的代码或命令。

<xhhao-com-copy prompt="$">
  pnpm install
</xhhao-com-copy>

参数:

  • prompt:命令提示符,例如 $>

xhhao-com-chat

聊天气泡,用于展示对话内容,支持头像、徽标、自己消息和系统消息。

<xhhao-com-chat>
  <xhhao-com-chat-item
    name="Ryan Wang"
    avatar="https://example.com/avatar-a.png"
    badge="Halo 作者"
  >
    你好呀,我准备一块钱把 Halo 项目转移给你
  </xhhao-com-chat-item>
  <xhhao-com-chat-item
    name="Handsome"
    avatar="https://example.com/avatar-b.png"
    badge="我"
    self
  >
    真的吗
  </xhhao-com-chat-item>
  <xhhao-com-chat-item name="系统提示" system>
    当真的这辈子有了
  </xhhao-com-chat-item>
</xhhao-com-chat>

参数:

  • name:昵称。
  • avatar:头像 URL。
  • badge:昵称旁的徽标。
  • self:是否显示为自己的消息。
  • system:是否显示为系统消息。

xhhao-com-progress

进度条,用于展示百分比或任务进度。

<xhhao-com-progress label="迁移进度" value="80" max="100" color="#3b82f6"></xhhao-com-progress>

参数:

  • label:进度标题。
  • value:当前值。
  • max:最大值,默认 100
  • color:自定义颜色。

前台资源

插件启用后会自动向前台页面注入独立资源:

<script src="/plugins/content-widgets/assets/static/content-widgets.iife.js"></script>
<link rel="stylesheet" href="/plugins/content-widgets/assets/static/content-widgets.css" />

资源由插件自身构建和提供,不需要主题主动引入。

PJAX 兼容

插件本身不会实现 PJAX。前台脚本会在首次加载时自动挂载组件,并暴露:

window.XhhaoComContentWidgets?.mount(document)

如果主题使用 PJAX / Swup,只需要在页面替换完成后调用一次 mount 即可。重复调用不会重复挂载已经处理过的组件。

主题适配

插件样式内置了一组 --xhhao-com-* CSS 变量,并对常见主题变量提供 fallback。一般情况下无需主题额外适配。

常用变量:

变量名 描述
--xhhao-com-text-1 主要文字颜色
--xhhao-com-text-2 次要文字颜色
--xhhao-com-bg 页面背景颜色
--xhhao-com-bg-card 卡片背景颜色
--xhhao-com-bg-2 次级背景颜色
--xhhao-com-border 边框颜色
--xhhao-com-primary 主色
--xhhao-com-shadow 阴影颜色
点击查看 CSS 变量模板
:root {
  --xhhao-com-text-1: #111827;
  --xhhao-com-text-2: #6b7280;
  --xhhao-com-bg: #ffffff;
  --xhhao-com-bg-card: #ffffff;
  --xhhao-com-bg-2: #f8fafc;
  --xhhao-com-border: #e5e7eb;
  --xhhao-com-primary: #3b82f6;
  --xhhao-com-shadow: rgb(15 23 42 / 0.08);
}

从主题移除重复加载

如果你是从主题内置内容组件迁移到插件,需要移除主题侧的旧入口,避免重复加载:

  • 移除主题主样式中对内容组件样式目录的引入。
  • 移除主题前端入口里对旧内容组件挂载逻辑的自动执行。
  • 保留主题自己的其它前台能力,例如相册、天气、PJAX 等。

如果文章里仍有旧标签,需要将 c-* 批量改为 xhhao-com-*,例如 c-alert 改为 xhhao-com-alert

开发构建

请在项目根目录执行:

source "$HOME/.nvm/nvm.sh"
nvm use 22
pnpm install
pnpm build
sh gradlew build

许可证

GPL-3.0 © Handsome