RSSフィードの自動検出がトピック固有のフィードを見逃すことがある

こんにちは、Aryaさん

はい、これはフィードリーダーのバグではなく、Discourseがトピック固有のRSSフィードを処理する方法によるものです。根本的な原因は、Discourseがトピック/カテゴリのRSSフィードの<link>要素にrel="nofollow"を追加することです。多くのフィードリーダーはnofollow付きのリンクを無視するため、フィード自体は有効で直接アクセスすれば機能するにもかかわらず、自動検出が妨げられます。

実用的な回避策は、テーマコンポーネントを使用して、nofollowなしでトピック固有のRSSリンクを追加することです。以下に簡単な例を示します。

<!-- nofollowなしでトピック固有のRSSリンクを追加 -->
<script type="text/discourse-plugin" version="0.8">
  api.onPageChange((url, title) => {
    document.querySelectorAll('link.custom-rss').forEach(e => e.remove());
    document.querySelectorAll('link[title^="RSS feed of"]').forEach(link => {
      const newLink = document.createElement('link');
      newLink.rel = "alternate";
      newLink.type = "application/rss+xml";
      newLink.href = link.href;
      newLink.title = link.title;
      newLink.classList.add('custom-rss');
      document.head.appendChild(newLink);
    });
  });
</script>

これは、すべてのトピック/カテゴリRSSリンクをスキャンし、nofollowのない新しい<link>要素を<head>に挿入します。

これにより、フィードリーダーはトピック固有のフィードを自動的に検出できるようになるはずです。

別の方法として、より簡単なアプローチとして、フィードURL(例:https://community.nlnetlabs.nl/c/cascade/10.rss)をユーザーと直接共有することもできます。

この方法はDiscourseのコアを変更せずに済み、アップデートをまたいで機能します。これがフィードの自動検出が期待どおりに機能する助けになれば幸いです!

乾杯!

「いいね!」 1