Dumbcourse – 适用于旧浏览器的友好界面,位于 /dumb(方向键 + 小屏幕)

:information_source: 摘要 Dumbcourse 在 /dumb 下增加了一个轻量级的、对旧版浏览器友好的 Discourse 用户界面,专为 D 键导航小屏幕旧版 Android WebViews 设计,在这些环境下标准 Discourse UI 可能过于沉重。
:hammer_and_wrench: 仓库链接 https://github.com/TripleU613/dumbcourse
:open_book: 安装指南 如何在 Discourse 中安装插件


该项目得益于 @ars18 的工作:

原始项目使用 Cloudflare worker 代理来提供论坛,而 dumbcourse 插件则将其完全集成到您的 discourse 实例中。


特性

  • 在与 Discourse 相同的域名下,于 /dumb 提供一个最小化的 SPA(单页应用)
  • ES5 / 无构建步骤;有意保持最小的 DOM/JS/CSS 以兼容旧版浏览器和 WebViews
  • 使用同源 Discourse JSON 端点和标准的 Discourse 会话 Cookie
  • 主题列表:latest(最新)、new(新帖)、top(热门)、unseen(未读)、hot(火热)、my(我的),以及分类
  • 分类视图:/dumb/c/:slug/:id
  • 主题阅读和发帖(回复/引用/反应)
  • 搜索和基本个人资料视图
  • D 键友好的导航,具有可聚焦的 UI 元素

配置

  1. 安装插件

    • containers/app.ymlhooks -> after_code 部分添加仓库地址,然后重建容器。
  2. 启用

    • 前往 管理 → 插件 → Dumbcourse
    • 启用 dumbcourse_enabled
  3. 选择默认设置

    • 设置默认主题和默认着陆视图(参见下文的设置)。
  4. 验证

    • 访问:https://YOUR_FORUM_DOMAIN/dumb
    • 未登录用户应跳转到 /dumb/login
    • 已登录用户应看到配置的默认视图

截图

旧版浏览器 / 标准 Discourse UI

Dumbcourse UI

在帖子中

帖子操作 / 选择

基本菜单

插件设置


状态 / 已知限制

该项目目前处于 Beta 阶段(初始实现较快完成),因此可能会有一些不完善之处。欢迎贡献和代码审查。

当前已知的差距/待解决问题:

  • 注册 + 验证码 (CAPTCHA): 账户创建依赖于 Discourse 的标准注册流程,但验证码的行为可能因站点配置而异。
  • 安全审查: 简化的 UI 不应绕过 Discourse 的权限,但尚未进行彻底的安全审查。请报告任何疑虑或可疑行为。
  • 管理/管理员 UX: 目前管理和管理员工具很少;安全地扩展这部分功能已在路线图上。
  • 触摸 + D 键交互: 在某些设备上,触摸输入可能会与焦点导航冲突;计划进行改进。
  • 链接分享: /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 的链接。
13 个赞

这听起来是个绝妙的主意!

不过我不喜欢在网址中出现这个名称——它能配置吗?比如用 /simple/ 代替 /dumb/

(说实话,我对这个名字不太满意,但如果可以配置的话会有帮助。这是一个侮辱性词语,而且相当口语化。)

3 个赞

哇,这看起来真不错!看起来为 Dropping iOS 15 & other old browsers in July 2025 中旧浏览器不受支持而感到沮丧的一些用户找到了解决方案。

在功能手机世界中这是可以接受的,但我们会为此添加一个设置。

2 个赞

我最近添加了管理员/版主设置。审核队列仍需要一些工作。

截图

2 个赞

忘记提了,这是配套的安卓 APK。

支持 Android 6+ 和 Chrome WebView 44+。

示例(我们的论坛 APK)

1 个赞

给你看。

3 个赞

干得快……多谢!

@TripleU 在 Meta 上有许多请求,要求提供一个选项来禁用无限滚动,转而使用分页。这个插件能实现这个功能吗?

Dumbcourse 目前没有该选项(如果大家真的想要……那么以后可能会有)。

1 个赞

已推送!

我建议将路径(甚至插件名称)更改为不那么冒犯性的名称。比如 simple(简单)、basic(基础)。

因为这不是一个愚蠢的功能,拥有一个低保真界面实际上相当智能。

1 个赞

你来晚了一点 :grin:

3 个赞

这很有趣,我喜欢这个名字,因为它有工程历史背景,而且我一点也不觉得它带有侮辱性——但提供路由设置是一个很棒的补充。

无论如何,说到“笨拙”,我给你举个例子:

2 个赞

哦,这引出了一个问题:图片和嵌入式媒体如何处理?它们是链接化、被抑制,还是被渲染……?

2 个赞

图像、视频、音频和 iframe 都在帖子正文中内联渲染,其 URL 已重写为正确的资源基础路径。

1 个赞

测试中

太棒了! 这样看来,正如 Nate 在上面的帖子中所指出的,这是让我们的论坛在旧浏览器(旧电脑、旧手机、旧平板电脑)上可用的一个好方法。

有没有办法让用户设置一个偏好设置,让他们自动采用这种显示方式?(最好使用选定的名称,不一定是“哑巴”/“简陋”)。

这没关系,但如果你仔细想想,这并不重要。 如果有人想在老年人院、成人培训中心,或任何人们处于不利地位、技术知识不足、或者只是不年轻、或者不是英语母语人士的场合推广这个功能,那么将其标记为“哑巴”/“简陋”将会带来非常糟糕的观感。 重要的不是你是否感到被冒犯,也不是网站管理员的顾虑,而是潜在的最终用户。

我不明白。他们只需访问所选路径的网址。你的意思是别的什么吗?

Ed,请别把我当傻瓜,我当然明白。我现在就停下来,因为这真是个令人恼火的烫手山芋……

3 个赞