Composerのドラッグ&ドロップとカスタムアップローダー

こんにちは、

コンポーザーのドラッグ&ドロップ機能を拡張して、より高度な処理を開始できるようにしたいと考えています。例えば、ユーザーが大きなビデオファイルをそこにドラッグした場合、そのファイルを Google ドライブにアップロードするためにカスタム JavaScript が実行されるようにしたいです。完了後、コンポーザーに特定の iframe コードを挿入したいと考えています。

現在、この機能はツールバーのアイコンとモーダルウィンドウを介してのみ動作するように実装されていますが、既存の onebox 機能を拡張して、両方の機能を統合したいと考えています。

これらのイベントにフックする方法に関するドキュメントをご存知の方はいらっしゃいますか?

よろしくお願いいたします。

おもしろそう!

どこを詳しく見ればいいかは言えないけど、私が探すとすれば、コードブロックを自動検出する部分かな。最近その件について少し議論があったような気がするけど、さっと検索しても何も出てこなかった。

これはまさに最近のクライアントサイド画像最適化のデフォルト有効化が行っていることです。フックの箇所は以下でご確認ください:

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/initializers/register-media-optimization-upload-processor.js

重要な注意点として、このリリースでは jQuery.FileUpload から Uppy への移行が行われているため、現在はこの機能に関する実装方法が 2 つ存在します。