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

:information_source: 概要 Dumbcourseは、標準のDiscourse UIが重すぎるD-padナビゲーション小型スクリーン古いAndroid WebView向けに設計された、軽量で古いブラウザでも動作するDiscourse UIを**/dumb**の下に追加します。
:hammer_and_wrench: リポジトリリンク https://github.com/TripleU613/dumbcourse
:open_book: インストールガイド Discourseにプラグインをインストールする方法


このプロジェクトは@ars18の協力により実現しました:

元のプロジェクトでは、Cloudflareワーカープロキシを使用してフォーラムを提供しており、dumbcourseプラグインはこれをDiscourseインスタンスに完全に統合します。


特徴

  • 同じ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. 有効化

    • Admin → Plugins → 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へのリンクを追加します。

「いいね!」 13

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

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

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

「いいね!」 3

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

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

「いいね!」 2

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

スクリーンショット

「いいね!」 2

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

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

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

「いいね!」 1

どうぞ。

「いいね!」 3

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

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

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

「いいね!」 1

プッシュしました!

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

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

「いいね!」 1

少し遅いですね :grin:

「いいね!」 3

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

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

「いいね!」 2

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

「いいね!」 2

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

「いいね!」 1

テスト中

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

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

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

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

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

「いいね!」 3