Skip to content

公告

公告功能让管理员向同一台 Luker 实例上的所有本地账号广播一条 Markdown 消息。典型场景:

  • 告知其他账号「升级后某个 UI 按钮换位置/改名了」。
  • 通知用户计划内的停机或维护。
  • 事件后说明(「我刚从备份恢复了 staging CardApp,你们的书签可能失效」)。

如果你独自使用 Luker、没有其他本地账号,这个功能对你没意义。

前提

公告依赖多用户账户系统。在 config.yaml 里启用:

yaml
enableUserAccounts: true

没开多用户模式就不存在「其他账号」可以广播。

发布入口受管理员权限保护——只有 admin 角色账号可以创建、编辑、删除公告。所有已登录账号都能看到接收端 UI(弹窗 / 横幅 / 收件箱)。

发布公告

打开管理面板,切到公告标签页,点击新建公告

表单有四个字段:

  • 级别信息警告严重 三选一。级别决定公告以多激进的方式触达用户(见下文 级别)。
  • 标题:短标题(最多 200 字符)。会显示在弹窗标题、横幅、收件箱列表里。
  • 正文(Markdown):完整正文(最多 10 000 字符),支持加粗、斜体、列表、链接、代码块、标题等 Markdown 语法。
  • 预览:正文的实时渲染——用户看到的就是这个样子。

点击创建发布。公告立即对所有账号可见。

级别

不同级别对应不同的接收端路由:

级别用户有未读时
严重登录时弹出遮罩弹窗,必须点全部标为已读才能继续。多条未读严重公告合并到同一个弹窗,只打扰用户一次。
警告聊天区上方出现横幅。用户点 × 关闭后,下一条未读警告自动顶上来。
信息没有主动弹出。只能通过收件箱看到。

所有级别——包括 信息——都计入公告按钮上的未读角标。

诚实选级别。日常通知大多用 信息警告;只在用户继续使用前必须看到时(安全、数据丢失、破坏性变更)才用 严重

用户看到什么

收件箱

欢迎页快捷按钮一栏(文档 / GitHub / Discord / 临时聊天 旁)有个公告按钮,带红色角标显示未读数(超过 9 显示 9+)。点击打开收件箱,按最新在前列出所有仍在生效的公告。点击一行就地展开 Markdown 正文,并把这条标为已读。

按钮只出现在欢迎页,不在打开的聊天里。要查看收件箱,关闭当前聊天回到欢迎页(聊天上方的 X)。

登录时的严重弹窗

用户打开 Luker 时若有未读 严重 公告,会弹出一个弹窗列出所有未读的严重公告。点全部标为已读关闭弹窗并一次性把所有列出的公告标为已读。除非再发布新的 严重 公告,用户下次加载时不会再被打扰。

警告横幅

未读 警告 公告在聊天区上方以横幅显示。点 × 关闭当前警告(标为已读),下一条未读警告立即顶上来。

编辑与删除

在管理面板的公告标签页:

  • 每行的铅笔按钮打开编辑表单(自动填入现有内容)。提交保存新内容。编辑不会重置用户的已读状态——改个错别字不会让所有看过原版的用户再被弹一次窗。
  • 垃圾桶按钮硬删除公告。没有撤销、没有归档——一旦删除立即从所有账号的收件箱消失。会有确认对话框防误点。

已读状态

每个账号自己记录读过哪些公告;管理员看不到「谁读过哪条」这种报表。已读状态在登出和服务器重启后仍然保留。

如果一个账号从不打开收件箱、信息 级别公告生效期间也从不登录,这条公告会一直保持未读(静静躺在收件箱)。这是设计如此——信息 是被动查看的。

字段限制

  • 标题:1–200 字符(校验前会去掉首尾空白)。
  • 正文:1–10 000 字符(校验前会去掉首尾空白;Markdown 源码字符全部计入限制)。
  • 标题和正文以单一语言存储——接收端不翻译公告内容。UI 框架文字(按钮名、弹窗标题)跟随每个账号自己选的界面语言。

基于 SillyTavern 构建