| 摘要 | Dumbcourse 在 /dumb 路径下添加了一个轻量级、兼容旧浏览器的 Discourse 用户界面,专为 方向键导航、小屏幕 以及标准 Discourse UI 可能过于沉重的 旧版 Android WebView 而设计。 |
|
| 仓库链接 | GitHub - JTech-Forums/JtechTools: Jtech — combined Discourse plugin bundle: dislike, another-smtp, mini-mod, mod-categories, dumbcourse. One plugin.rb, six admin tabs, no namespace collisions. · GitHub | |
| 安装指南 | 如何在 Discourse 中安装插件 |
本项目的实现得益于 @ars18 的工作:
https://github.com/alltechdev/jtech-web
原始项目使用 Cloudflare worker 代理来提供论坛服务,而 dumbcourse 插件将其完全集成到您的 discourse 实例中。Dumbcourse 不使用代理,而是直接提供服务。
功能
- 在相同的 Discourse 域名的
/dumb路径上提供最小化的 SPA - ES5 / 无构建步骤;针对旧浏览器和 WebView 刻意保持极简的 DOM/JS/CSS
- 使用同源 Discourse JSON 端点和标准 Discourse 会话 Cookie
- 主题列表:
latest、new、top、unseen、hot、my以及分类 - 分类视图:
/dumb/c/:slug/:id - 主题阅读和发帖(回复/引用/表情回应)
- 搜索和基本个人资料视图
- 支持方向键导航,具有可聚焦的 UI 元素
配置
-
安装插件
- 将仓库添加到
containers/app.yml的hooks -> after_code下,然后重建容器。
- 将仓库添加到
-
启用它
- 前往 管理 → 插件 → Dumbcourse
- 启用
dumbcourse_enabled
-
选择默认设置
- 设置默认主题和默认落地视图(参见下方的设置)。
-
验证
- 访问:
https://YOUR_FORUM_DOMAIN/dumb - 匿名用户应落在
/dumb/login - 已登录用户应看到配置的默认视图
- 访问:
截图
状态 / 已知限制
该项目目前处于 Beta 阶段(初始实现速度较快),因此可能存在不完善之处。欢迎贡献代码和进行代码审查。
当前已知的缺口 / 待解决问题:
- 注册 + CAPTCHA: 账户创建依赖于 Discourse 的标准注册流程,但 CAPTCHA 的行为可能因站点配置而异。
- 安全审查: 简化的 UI 不应绕过 Discourse 权限,但尚未进行彻底的安全审查。请报告任何疑虑或可疑行为。
- 管理/管理员 UX: 目前的管理和行政工具非常基础;安全地扩展此功能已在路线图中。
- 触摸 + 方向键交互: 在某些设备上,触摸输入可能与焦点导航发生冲突;计划进行改进。
- 链接分享:
/dumb提供了一个替代 UI,这引发了关于在“dumb”用户和标准用户之间分享规范链接的问题。一致的方法仍在完善中。
致谢
特别感谢 @ars18(GitHub: https://github.com/alltechdev)的关键贡献以及帮助启动原始创意。
设置
| 名称 | 描述 |
|---|---|
dumbcourse_enabled |
Dumbcourse 的主开关。 |
dumbcourse_default_theme |
/dumb 的默认主题(dark / light)。 |
dumbcourse_default_view |
默认落地视图(latest / new / top / unseen / hot / my / categories)。 |
dumbcourse_sidebar_link_enabled |
在侧边栏添加指向 /dumb 的链接。 |











