私の目標は、ユーザーが特定のURL(ドメイン+基本パス)へのリンクを含めた場合に、それを自動的に特別なフォーマットで表示できるようにすることです。
レンダリングされた投稿ではdecorateCookedElement()でこれを実現できますが、Rich Text Editorの表示にフックして、そこでリンクの外観をカスタマイズする方法がわかりません。
Theme ComponentのapiInitializer内で使用できるapi機能で、Rich Text Editorのレンダリングをカスタマイズする方法はありますか?
サーバー自体で実行されるプラグインを構築することは避けたいと考えており、より簡単な解決策もまだ見つかっていませんが、代替案はいつでも歓迎します!(例えば、このドメインのOneBoxingを全体として無効にしたくはありません。非SPAマーケティングページには、OneBoxing用の優れたOpenGraphタグがあります。)
過去のアプローチ: decorateCookedElement()
私は以前、Bunny.netから提供される動画に関して同様のことを行っていました(参照投稿)。標準レンダリング(OneBoxビデオ)を許可し、その後decorateCookedElement()を使用して、Bunny.netストリーミングURLからのOneBox動画にアスペクト比やフルスクリーン許可などのいくつかの修正を適用していました(theme-initializer.gjs#L8-L15)。
Bunny動画の場合、これは問題なく機能しました。エディタ内では、常にグレー表示されたOneBox動画プレースホルダー(白い動画アイコン付きのグレーボックス)が表示されるため、そのコンテンツを調整する必要はありませんでした。
Rich Textの問題
私の現在の目標である、特定のURL(ドメイン+基本パス)へのリンクを置き換えるためにdecorateCookedElement()を使用する上での課題は、ユーザーがRich Text Editorでそのリンクを単独の行に含め、Enterキーを押したときに、エディタがそれをOneBoxに変換してしまうことです。このレンダリングフローにフックする方法や、それをカスタマイズする方法が見つかりませんでした。
この特定のリンクは、シングルページアプリケーション(静的ホスティング)内の機能へのものであり、特に意味のあるOpen Graph/メタタグのセットを提供しないため、OneBoxは直感的ではなく、コミュニティメンバーがインポートリンクをコードブレースで囲むなどの回避策を使用していることに気づきました。
そのため、この特定のリンクがRich Text Editorでもどのようにレンダリングされるかをカスタマイズできれば、ユーザーはより直感的な形式を目にし、それを受け入れるだろうと考えていました。
