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

推荐订阅源

月光博客
月光博客
有赞技术团队
有赞技术团队
S
SegmentFault 最新的问题
宝玉的分享
宝玉的分享
量子位
小众软件
小众软件
The Cloudflare Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
C
Check Point Blog
G
Google Developers Blog
博客园 - 叶小钗
H
Help Net Security
Jina AI
Jina AI
Y
Y Combinator Blog
Last Week in AI
Last Week in AI
GbyAI
GbyAI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
MyScale Blog
MyScale Blog
T
Tailwind CSS Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Vercel News
Vercel News

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

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

轻言(Hitokoto Hub)

轻拾人间辞藻,言说万千心绪

轻言是一款 Halo 2.x 插件,为你的网站注入"一句话"的灵动与温度。支持创建、管理海量句子,按分类归档,并提供随机获取、关键词搜索、点赞互动等丰富的开放接口。

🌐 演示与交流

QQ群

功能特性

  • 句子管理:创建、编辑、删除句子,支持批量导入(JSON/Excel)
  • 分类归档:自定义分类,侧边栏导航,实时统计各分类句子数量
  • 随机获取:内置随机算法,基于索引分页优化,6000 条数据依然秒级响应
  • 模糊搜索:支持关键词搜索句子内容
  • 点赞互动:开放点赞/取消点赞接口,支持 IP 冷却机制
  • 主题集成:提供 Finder API,可在 Halo 主题模板中直接调用
  • 数据看板:后台概览页面,展示句子总数、分类分布、发布状态统计
  • 权限控制:基于 Halo RBAC 角色模板,支持公开 API 和后台管理权限分离

插件截图

轻言数据概览 轻言数据管理
轻言数据概览 轻言数据管理
轻言数据批量导入 轻言单条数据创建
轻言数据批量导入 轻言单条数据创建
轻言默认模板
轻言默认模板

安装

  1. 下载最新版本的 Releases
  2. 在 Halo 后台的"插件"管理中上传并启用
  3. 启用后,左侧菜单会出现"轻言"入口

使用指南

可用数据源

API文档

Apifox文档

基础使用

  1. 创建分类:在左侧分类面板中点击 + 号,创建句子分类
  2. 新建句子:点击右上角"新建句子",填写内容、选择分类
  3. 批量导入:支持 JSON 和 Excel 两种格式,自动映射字段
  4. 随机获取句子:前端调用 /apis/public.api.hitokotohub.puresky.top/v1alpha1/sentence/random 接口
  5. 获取分类数据:前端调用 /apis/public.api.hitokotohub.puresky.top/v1alpha1/category/list 接口

主题集成

插件提供一个默认的模板,模板地址为/hitokoto,当然您也可以通过 Finder API 自定义模板

方式一:Finder API(推荐)

可用的 Finder API:

  • hitokotoFinder.listCategories()
  • hitokotoFinder.randomSentences(int limit, String category)

在主题模板中直接调用:

<!-- 随机获取 1 条随机的句子 -->
<div th:each="s : ${hitokotoFinder.randomSentences(1,null)}">
    <p th:text="${s.content}"></p>
    <span th:text="${s.author}"></span>
</div>

<!-- 获取分类列表 -->
<div th:each="c : ${hitokotoFinder.listCategories()}">
    <a th:href="@{/hitokoto(category=${c.name})}" th:text="${c.displayName}"></a>
</div>

<!-- 按分类随机获取 -->
<div th:each="s : ${hitokotoFinder.randomSentences(8, 'category-xxx')}">
    <p th:text="${s.content}"></p>
</div>

方式二:REST API

直接调用插件提供的公开 API:

// 随机获取句子
fetch('/apis/public.api.hitokotohub.puresky.top/v1alpha1/sentence/random?limit=8')
        .then(res => res.json())

// 按分类随机获取
fetch('/apis/public.api.hitokotohub.puresky.top/v1alpha1/sentence/random?categoryName=category-xxx&limit=8')
        .then(res => res.json())

// 获取分类
fetch('/apis/public.api.hitokotohub.puresky.top/v1alpha1/category/list')
        .then(res => res.json())

// 点赞句子
fetch('/apis/public.api.hitokotohub.puresky.top/v1alpha1/sentence/like?action=like')
        .then(res => res.json())

// 取消点赞
fetch('/apis/public.api.hitokotohub.puresky.top/v1alpha1/sentence/like?action=unlike')
        .then(res => res.json())

公开 API 说明

接口 方法 说明
/sentence/random GET 随机获取句子,支持 categoryNamelimit 参数
/sentence/like GET 点赞/取消点赞,参数 action=likeaction=unlike以及name=sentence-xxxx
/category/list GET 获取分类列表

角色权限

插件部署后会自动创建一个名为"轻言-公共接口"的角色模板,已自动授权给匿名用户。若需后台管理权限,请确保当前用户具有
plugin:hitokoto-hub:manage 权限。

开发

# 克隆项目
git clone https://github.com/imorisun/plugin-hitokoto-hub.git

# 构建前端
cd ui
pnpm install
pnpm build

# 构建插件
cd ..
./gradlew build

许可

GPL-3.0 © imorisun

致谢

  • Halo — 强大易用的开源建站工具