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 建構