中文 | English
把 Discourse 原生侧边栏改造成信息流面板的用户脚本。安装后可在支持的 Discourse 论坛里用更紧凑的侧边栏查看话题、分类、新活动和已读状态。
Warning
3.0.1 版本更改了脚本元数据,故无法从之前的版本直接更新。 安装 3.0.1 及之后的版本请删除旧版本以保持脚本唯一,防止出错。
本脚本无大量需迁移数据,请注意适配网站若不在默认匹配列表中需重新添加。每个网站的刷新设置需重新配置。
以下站点已内置匹配规则,安装脚本后无需手动添加:
| 站点 | 匹配规则 |
|---|---|
| LINUX DO | https://linux.do/* |
| NodeLoc | https://www.nodeloc.com/* |
| Chrultrabook Forum | https://forum.chrultrabook.com/* |
| OpenAI Community | https://community.openai.com/* |
| Discourse Meta | https://meta.discourse.org/* |
其他 Discourse 论坛可以手动添加匹配规则后尝试使用。
先安装一个用户脚本管理器,三选一即可:
然后打开任一直装链接:
脚本管理器会弹出安装页面,点击“安装”或“确认安装”。如果浏览器只是把 .user.js 当文本打开,通常是用户脚本管理器没有安装或没有启用。
https://linux.do/。开启状态会按站点保存。下次进入同一站点时,如果原生侧边栏存在,脚本会自动恢复信息流面板。
信息流面板顶部从左到右通常包含:
分类标签位于顶部控件下方:
筛选栏位于分类标签下方:
话题列表支持:
设置按钮中的选项会根据当前排序变化。
在“最新活动”视图中:
0 表示收到候选后尽快应用。在非“最新活动”排序中:
1。不建议设置过快,频繁请求可能触发站点速率限制。脚本只内置上面列出的站点。要在其他 Discourse 论坛上使用,需要在用户脚本管理器里为本脚本添加自定义匹配规则。
匹配规则示例:
https://forum.example.com/*
常见入口:
添加后刷新目标论坛。如果站点是兼容的 Discourse 且有原生侧边栏,顶部 Logo 右侧会出现切换按钮。手动添加到非 Discourse 网站或不兼容论坛时,出错由用户自行处理。
按钮会插入到站点顶部 Logo 右侧。如果 Logo 区域没有加载、页面不是标准 Discourse 布局、脚本未匹配当前网址,按钮都不会出现。
这通常表示站点没有向前端公开导航分类,或分类缓存还没刷新。可从用户脚本管理器菜单执行 SFP: 清空分类和标签缓存,或在控制台执行:
SFPFeedPanel.clearCaches()
信息流刷新时会和上一次的列表数据比对:一个本应还在当前列表范围内的话题,如果不再被服务器返回,就会保留在原位置并标记“话题异常”。这通常意味着它被取消公开(如被举报后临时隐藏)、被删除或被移入了受限板块,具体状态需要点击话题自行确认。
被标记的话题不会占用常规的保留数量,会留在原位置;当新进入列表的话题累计超过当前保留数量时自然移除,切换分类、排序或筛选触发的全量刷新也会清除。正常下沉到列表后面的话题不会触发这个标记。
点击顶部 Logo 右侧的双栏按钮即可恢复原生侧边栏。也可以在用户脚本管理器中禁用本脚本,或删除为某个站点手动添加的匹配规则。
脚本使用以下权限:
GM_addStyle:注入面板样式GM_setValue:保存用户设置GM_getValue:读取用户设置GM_deleteValue:迁移旧版 LinuxDO 全局设置后删除旧 keyGM_registerMenuCommand:提供清空分类和标签缓存的脚本管理器菜单unsafeWindow:访问 Discourse 页面运行环境中的必要对象脚本内置匹配范围为:
https://linux.do/*
https://www.nodeloc.com/*
https://forum.chrultrabook.com/*
https://community.openai.com/*
https://meta.discourse.org/*
GitHub 安装与脚本内置更新地址现统一指向最新正式 Release 的 .user.js 附件。脚本管理器通常会自动检查更新,也可以手动检查。Greasy Fork 和脚本猫的发布内容由维护者手动同步,更新来源以管理器设置为准。
旧 GitHub Raw 路径保留完整的 3.0.0 迁移版,其中的 @updateURL 和 @downloadURL 已指向 Release。旧安装可先通过 Raw 检测到 3.0.0,再从 Release 下载更新;首次推送后,需等待自动发布完成,Release 下载链接才会可用;在此期间更新失败可稍后重试。如果管理器固定了自定义更新地址,请改为上面的 GitHub 安装链接,或打开链接覆盖更新现有脚本。
源码位于 src/,使用 Vite 和 vite-plugin-monkey 构建。dist/ 不纳入 Git;根目录 .user.js 是保留给旧 Raw 安装的 3.0.0 迁移快照,不直接编辑。
推送到 main 会触发 Release 工作流,自动读取这次推送最新提交中的 package.json 版本号。若该版本尚未发布,全部检查通过后自动构建、创建对应标签(例如 v3.0.0)并发布 .user.js 附件,将该 Release 设为 latest,无需手动推送标签。已发布的同版本会跳过发布,普通提交仍由检查工作流验证。后续版本只发布 Release,保留根目录 3.0.0 快照。发布步骤见开发与验证说明。
npm ci
npm run dev
开发脚本名称带 dev: 前缀;调试站点只启用一个版本。当前使用整页刷新开发,开发脚本的存储可能与正式脚本不同。
npm run typecheck
npm test
npm run build
python -m pip install -r requirements-dev.txt
npm run check:scroll
npm run check:browser
npm run check:artifact
需要 Node.js ^22.20.0 || ^24.12.0 || >=26.0.0,建议使用 Node 22 LTS。浏览器检查还需 Python 和 Chrome,可通过 CHROME_BIN 或 --chrome 指定路径。check:browser 使用模拟的 GM/Discourse 服务验证实际构建包,真实脚本管理器、长驻唤醒和移动端仍需单独验收。
MIT