Dumbcourse – /dumb の旧ブラウザ対応UI(D-pad+小画面)

:information_source: 概要 Dumbcourseは、標準のDiscourse UIが重すぎる古いAndroid WebViewD-padナビゲーション小画面向けに設計された、軽量で旧ブラウザ対応のDiscourse UIを**/dumb**の下に追加します。
:hammer_and_wrench: リポジトリリンク 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
:open_book: インストールガイド 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要素を持つD-pad対応ナビゲーション

設定

  1. プラグインのインストール

    • containers/app.ymlhooks -> after_codeにリポジトリを追加し、コンテナを再構築します。
  2. 有効化

    • 管理 → プラグイン → Dumbcourseに移動
    • **dumbcourse_enabled**を有効にする
  3. デフォルトの選択

    • デフォルトのテーマとデフォルトのランディングビューを設定します (以下の設定を参照)。
  4. 確認

    • 訪問: https://YOUR_FORUM_DOMAIN/dumb
    • 匿名ユーザーは/dumb/loginに到達するはずです
    • ログイン済みユーザーは設定されたデフォルトビューが表示されるはずです

スクリーンショット

旧ブラウザ / 標準Discourse UI

Dumbcourse UI

スレッド内

投稿アクション / 選択

基本メニュー

プラグイン設定


ステータス / 既知の制限

このプロジェクトは現在ベータ版です (初期実装は迅速に行われたため)、そのため荒い部分があることを想定してください。貢献とコードレビューは歓迎します。

現在の既知のギャップ / 未解決の問題:

  • サインアップ + CAPTCHA: アカウント作成はDiscourseの標準的なサインアップフローに依存していますが、CAPTCHAの動作はサイト設定によって異なる場合があります。
  • セキュリティレビュー: シンプル化されたUIはDiscourseの権限をバイパスすべきではありませんが、まだ徹底的なセキュリティレビューは行われていません。懸念事項や不審な動作を見つけた場合は報告してください。
  • モデレーション/管理UX: モデレーションと管理ツールは現在最小限です。これを安全に拡張することはロードマップにあります。
  • タッチ + D-pad操作: 一部のデバイスでは、タッチ入力がフォーカスナビゲーションと競合する可能性があります。改善が計画されています。
  • リンク共有: /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へのサイドバーリンクを追加します。

「いいね!」 18

これは素晴らしいアイデアですね!

ただ、URLにその名前が表示されるのは好みではありません。例えば、/dumb/ の代わりに /simple/ のように設定可能にできますか?

(正直なところ、その名前にはあまり満足していませんが、設定可能であれば助かります。それは差別用語であり、かなり慣用的な表現です。)

「いいね!」 3

これは本当に良さそうですね!Dropping iOS 15 & other old browsers in July 2025 で古いブラウザがサポートされなくなることによる一部ユーザーの不満に対する解決策のようです。

フィーチャーフォン(ガラケー)の世界では受け入れられていますが、はい、そのための設定を追加します。

「いいね!」 2

管理/モデレーター設定の追加を最近実装しました。レビューキューはまだ調整が必要です。

スクリーンショット

「いいね!」 4

言い忘れていましたが、こちらがコンパニオンのAndroid APKです。

Android 6以降およびChrome WebView 44以降をサポートしています。

サンプル(当社のフォーラムAPK)

「いいね!」 3

どうぞ。

「いいね!」 4

迅速な作業…ありがとうございます!

@TripleU Metaでは、無限スクロールを無効にしてページネーションを有効にするオプションを求めるリクエストが多数寄せられています。このプラグインはそれを実現しますか?

「いいね!」 1

Dumbcourse にはそのオプションはありません(もし本当に多くの人が望むなら、まだ追加されるかもしれませんが…)。

「いいね!」 4

プッシュしました!

「いいね!」 2

パス(あるいはプラグイン名)を、もっと侮辱的でないものに変更することを提案してもよろしいでしょうか。例えば、「simple」や「basic」のような。

なぜなら、これは愚かな機能ではなく、むしろ低忠実度のインターフェースを持つことは非常に賢明だからです。

「いいね!」 1

少し遅いですね :grin:

「いいね!」 4

これはとても楽しいですし、その名前も気に入っています。というのも、それにまつわる工学的な歴史がありますし、全く侮辱的だとは思いません。しかし、ルート設定の提供は素晴らしい追加機能です。

とにかく、馬鹿な話といえば、これに対抗します:

「いいね!」 4

ああ、それは疑問を提起しますね。画像や埋め込みメディアの扱いはどうなりますか?リンク化されるのでしょうか、それとも抑制されるのでしょうか、それともレンダリングされるのでしょうか…?

「いいね!」 3

画像、動画、音声、iframeはすべて投稿本文にインラインでレンダリングされ、URLは正しいアセットベースに書き換えられます。

「いいね!」 2

テスト中

「いいね!」 1

素晴らしい!これで、上記の Nate の投稿で述べられているように、古いブラウザ(古いコンピューター、古い携帯電話、古いタブレット)でフォーラムを利用できるようにする良い方法のようです。

ユーザーがこの表示に自動的に登録されるように、環境設定を設定する方法はありますか?(「dumb」という名前ではなく、選択された名前で呼ばれることが望ましいです。)

それは構いませんが、考えてみれば重要ではありません。もしこれを老人ホームや成人訓練センター、あるいは人々が不利な立場にある、あるいは技術に詳しくない、あるいは若くない、あるいは英語を母国語としないなど、さまざまな状況で展開したい場合、「dumb」とラベル付けされていると、見栄えが非常に悪くなります。あなたが侮辱されているかどうか、あるいはそうでないかは重要ではありませんし、サイト管理者の懸念でもありません。重要なのは、将来のユーザーです。

「いいね!」 2

混乱しています。ユーザーは選択したパスのURLにアクセスするだけです。何か別のことを意味していますか?

エド、私が馬鹿だと思わないでください。もちろんそれは理解しています。これは厄介な問題なので、もうやめます…

「いいね!」 4