質問:共有トピックの URL が別の Discourse に投稿された際の自動メンションについて

システムアカウントがメタフォーラムや他の場所で言及された際、共有トピックの URL を変更することで、自動的に言及される方法があるかどうか気になっています。

現在、この動作は投稿を作成し、所有権をシステムに切り替えることでシミュレートしています。ここで動作を確認してください。

意味がわかりません。なぜこれが望ましいのか、具体的な実例を挙げていただけますか?

もちろんです、

  1. フォーラム A で新しい投稿を作成します
  2. その投稿の URL を共有して、別の Discourse インスタンスであるフォーラム B に送信します。
  3. 何らかの仕組みでフォーラム A がこの動作を認識し、system が自動的に元のフォーラム A のスレッドで応答し、以下を表示します:

なるほど、それは役立ちますが、なぜですか?その重要性は何で、なぜ必要なのでしょうか?

(おそらく、GitHub 統合でも似たようなことをしているのでしょう。Discourse のトピックをコミットにリンクさせるわけですが、それはチョコレートとピーナッツバターのように、2 つの素晴らしい異なる要素を無理やり混ぜ合わせたようなものです。ここでは、ピーナッツバターと…ええと…もっとピーナッツバターを混ぜ合わせようとしているのでしょうか?)

meta.discourse などの場所で、当社の Discourse 内で議論された課題に対処しているため、これは非常に役立つと感じています。多くの管理者は、ユーザーや将来のメンテナーに文脈を提供するために、これらのスレッドへのリンクを張ることを思いつかないでしょう。私は最近になって当社のフォーラムのメンテナンスを引き継いだばかりですが、将来のメンテナーにより多くの情報を残せるよう願っています。:slight_smile:

フォーラム技術の「フェデレーション」は最近、ホットなトピックのようです。実現可能ではないようですが、一応確認してみました。

それは本当に異常なほど複雑です。ソーシャルソフトウェアにおける「完全自律型自動運転車がもうすぐ登場する」という主張に匹敵します。

GitHub ⇿ Discourse のユースケースは正当化できますが、P2P はそうではありません。私の見解では、 Reese’s Peanut Butter Cups の推移法則によれば、その可能性は極めて低いです。

それって、ピンバックの仕組みと同じですよね?

ブログ界隈では悪の根源となり、大量の悪用が横行しましたが、根本的な解決策は結局見つかりませんでした。

信頼できるサイトだけをホワイトリストに追加するという手もありますが、それでも手間のかかる割に得られるメリットは少ないように思えます。サーバーのバージョンや標準が更新された場合、どうなるのでしょうか?

一方、incoming_linksincoming_referersincoming_domains を使えば、これ还是比较簡単に実装できるのではないでしょうか?

もし incoming_domain をホワイトリストに登録できるようにし、そのドメインからのリンクに対してそのトピック内でワンボックス表示できるようにしたらどうでしょう?

編集:以下のスニペットは、Discourse サイト上の特定のトピックを指すすべてのリンクを一覧表示します。これをスケジュールジョブに組み込み、新しいリンクが見つかったらトピック内に投稿を挿入するようにすれば、ワンボックス表示は残りの処理が自動で行ってくれるはずです。

topic = Topic.find(xxx)
IncomingLink.where("post_id in (#{topic.posts.pluck(:id).join(',')})").where("incoming_referer_id is not null").each do |link|
  next unless link.incoming_referer.path.start_with?('/t/')
  puts "https://#{link.incoming_referer.incoming_domain.name}#{link.incoming_referer.path}"
end

) 現在は、Discourse リンクかどうかを判定するために単純なチェックを使用していますが、サイトのホームページを取得してメタデータを検査することも可能です。ただし、Discourse 以外のサイトからのリンクでも非常にうまく機能すると思います。プラグインの設定でドメインをホワイトリストに登録することも検討しましょう。