Discourseをプラグイン、テーマ、テーマコンポーネントで拡張したり、コアコードを操作したり、Discourse APIを使用したりするためのドキュメント。
はじめに
- はじめに:Discourse開発入門
開発環境
- Dev Container:Dev Containerを使用してDiscourseを開発する
- GitHub Codespaces:GitHub CodespacesでDiscourseを開発する
- Dockerセットアップ:Dockerを使用して開発用にDiscourseをインストールする
- macOSセットアップ:macOSに開発用にDiscourseをインストールする
- Ubuntu/Debianセットアップ:UbuntuまたはDebianに開発用にDiscourseをインストールする
- Windowsセットアップ:Windowsに開発用にDiscourseをインストールする
- 非Dockerプラグイン:非Docker開発環境にプラグインをインストールする
- ローカルセットアップ:ローカルのDiscourse開発環境をセットアップしますか?
- マルチサイトセットアップ:マルチサイト開発環境をセットアップする
- Fedoraセットアップ:Fedora Linuxで開発用にDiscourseをセットアップする
コードと内部構造
- Emberコンポーネント: DiscourseにEmberコンポーネントを追加する
- Lintとフォーマット: コミット前にコードを自動でLintおよびフォーマットする
- 受け入れテスト: DiscourseでEmberコードの受け入れテストとコンポーネントテストを作成する
- テストスイートの実行: Discourse core、プラグイン、テーマのQUnitテストスイートを実行する方法
- バージョンの互換性: 古いDiscourseインストールのためのプラグインとテーマのバージョンの固定(.discourse-compatibility)
- Emberオブジェクトの所有権: Emberオブジェクトの所有権 (getOwner、サービスインジェクションなど)
- JSパフォーマンス: DiscourseでGoogleの ‘tachometer’ を使用してJSパフォーマンスの変化を測定する
- GitHub Actionsを使用したCI: GitHub Actionsを使用して継続的インテグレーションをセットアップする
- Markdown拡張: Markdown拡張の開発者ガイド
- モーダルの変換: レガシーコントローラーから新しいDModalコンポーネントAPIへのモーダルの変換
- DModal API: DModal APIを使用してDiscourseでモーダルウィンドウ(ポップアップ/ダイアログとも呼ばれる)をレンダリングする
- JS API: JS APIの使用
- プラグインアウトレットコネクター: テーマまたはプラグインからのプラグインアウトレットコネクターの使用
- modifyClass: modifyClassを使用してコアの動作を変更する
- ルートの作成: Discourseでのルートの作成とデータの表示
- 認証方法: Discourseに新しい ‘managed’ 認証方法を追加する
- ActiveRecordモデルの偶発的なシリアル化: ActiveRecordモデルの偶発的なシリアル化の防止
- テンプレートのオーバーライド: (非推奨) テーマまたはプラグインからDiscourseテンプレートをオーバーライドする
- サービスオブジェクト: Discourseでのサービスオブジェクトの使用
- システムスペック: Discourseユーザーインターフェースのエンドツーエンドシステムスペックを作成する
- FormKit: フォームをレンダリングするためのDiscourseツールキット。
- AppEventsトリガー: AppEventsトリガーリファレンス
- トランスフォーマー: トランスフォーマーを使用してクライアント側の値と動作をカスタマイズする
- トピックリストのカスタマイズ: トピックリストのカスタマイズ
- CSSガイドライン: BEMを使用したCSSクラスのガイドライン
- デバイスの設計: さまざまなデバイスの設計 (ビューポートサイズ、タッチ/ホバーなど)
プラグイン
- 基本的なプラグイン:Discourseプラグインの開発 - パート1 - 基本的なプラグインの作成
- プラグインアウトレット:Discourseプラグインの開発 - パート2 - プラグインアウトレットへの接続
- サイト設定:Discourseプラグインの開発 - パート3 - カスタムサイト設定の追加
- Gitの設定:Discourseプラグインの開発 - パート4 - Gitの設定
- 管理インターフェース:Discourseプラグインの開発 - パート5 - 管理インターフェースの追加
- 受け入れテスト:Discourseプラグインの開発 - パート6 - 受け入れテストの追加
- プラグインの公開:Discourseプラグインの開発 - パート7 - プラグインの公開
- 新しいロケール:プラグインから新しいロケールを追加
- チャット連携:discourse-chat-integrationに新しいプロバイダーを追加
- markdown-it拡張機能:markdown-it拡張機能をDiscourseプラグインとして再パッケージ化
- Railsの自動ロード:Railsの自動ロードのためのプラグインの構造化
テーマとコンポーネント
- …