| 요약 | Dumbcourse는 표준 Discourse UI가 무거울 수 있는 D-pad 내비게이션, 작은 화면, 구형 Android WebView 환경을 위해 /dumb 경로 아래에 경량화되고 구형 브라우저에 친숙한 Discourse UI를 추가합니다. |
|
| 레포지토리 링크 | 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 워커 프록시를 사용하여 포럼을 서빙하며, Dumbcourse 플러그인은 이를 Discourse 인스턴스에 완전히 통합합니다. Dumbcourse는 프록시를 사용하지 않고 직접 서빙합니다.
기능
- 동일한 Discourse 도메인에서
/dumb경로에 최소한의 SPA를 서빙합니다. - ES5 / 빌드 단계 없음; 구형 브라우저와 WebView를 위해 의도적으로 DOM/JS/CSS를 최소화했습니다.
- 동일 출처의 Discourse JSON 엔드포인트와 표준 Discourse 세션 쿠키를 사용합니다.
- 토픽 목록:
latest,new,top,unseen,hot,my, 그리고 카테고리 - 카테고리 뷰:
/dumb/c/:slug/:id - 토픽 읽기 및 게시 (답글/인용/반응)
- 검색 및 기본 프로필 뷰
- 포커스 가능한 UI 요소를 갖춘 D-pad 친화적 내비게이션
설정
-
플러그인 설치
containers/app.yml의hooks -> after_code아래에 레포지토리를 추가한 후 컨테이너를 다시 빌드합니다.
-
활성화
- 관리자 → 플러그인 → Dumbcourse로 이동합니다.
- **
dumbcourse_enabled**를 활성화합니다.
-
기본값 선택
- 기본 테마와 기본 랜딩 뷰를 설정합니다(아래 설정 참조).
-
확인
- 방문:
https://YOUR_FORUM_DOMAIN/dumb - 익명 사용자는
/dumb/login에 도달해야 합니다. - 로그인한 사용자는 설정된 기본 뷰를 확인해야 합니다.
- 방문:
스크린샷
상태 / 알려진 한계
이 프로젝트는 현재 베타 버전입니다(초기 구현이 빠르게 이루어졌으므로), 따라서 거친 부분이 있을 수 있습니다. 기여 및 코드 리뷰를 환영합니다.
현재 알려진 결함 / 미해결 질문:
- 가입 + CAPTCHA: 계정 생성은 Discourse의 표준 가입 플로우에 의존하지만, CAPTCHA 동작은 사이트 설정에 따라 달라질 수 있습니다.
- 보안 검토: 단순화된 UI는 Discourse 권한을 우회하지 않아야 하지만, 아직 철저한 보안 검토를 거치지 않았습니다. 우려 사항이나 의심스러운 동작이 발견되면 보고해 주세요.
- 모더레이션/관리자 UX: 현재 모더레이션 및 관리자 도구는 최소한이며, 이를 안전하게 확장하는 것은 로드맵에 포함되어 있습니다.
- 터치 + D-pad 상호작용: 일부 기기에서 터치 입력이 포커스 내비게이션과 충돌할 수 있으며, 개선이 계획되어 있습니다.
- 링크 공유:
/dumb는 대체 UI를 제공하므로, “dumb” 사용자와 표준 사용자 간의 정정 링크(canonical links) 공유에 대한 질문이 제기됩니다. 일관된 접근 방식이 아직 정제되는 중입니다.
크레딧
주요 기여 및 초기 아이디어 착수에 도움을 주신 @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에 사이드바 링크를 추가합니다. |










