ドキュメントカテゴリの各サブカテゴリのランディングページをデフォルトでインデックスファイルにリダイレクトする

Discourse チームの皆様、こんにちは。

Discourse Doc Categories の調査を始めています。非常に有望に見えます。素晴らしい仕事ですね!

私が気づいた点として、現在各サブカテゴリのランディングページには、そのサブカテゴリ配下の投稿が「最新」順またはその他の並べ替えオプションでリスト表示されています。

これは議論の場としては受け入れられるアプローチですが、私は これ が Discourse を初めて使用するユーザーを混乱させるのではないかと 感じ ます。デフォルトでインデックスページがランディングページとして表示されることを期待していました。これにより、サイドバーとも一致します。

この2つの表示モードを切り替えるオプションを追加することは可能でしょうか?

新しい設定により、ユーザーがドキュメントのホームページから「Integrations」サブカテゴリをクリックすると、このページに遷移し、すべてのコンテンツを表示できます。

次のページではなく:

これにより、ユーザーはドキュメントの構造を把握し、必要な情報を素早く見つけることが容易になります。

「いいね!」 6

どうやらこれはすでにここでリクエストされていたようです。間違ったカテゴリで探していました! :man_facepalming:

このトピックを閉じるか削除しても構いません。コメントは別の投稿に追加しました。

「いいね!」 6

ただし、リンクされたトピックは投票追跡対象の機能トピックではないため、おそらくあなたのトピックはそのまま残しておくべきでしょう?

「いいね!」 4

ドキュメントカテゴリをデフォルトでインデックストピックで開く組み込みオプションがあれば、さらに良いと思います。それまで、以下のJavaScriptによる回避策を使用しています:

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {

    // ドキュメントカテゴリ:カテゴリ一覧をインデックストピックにリダイレクト

    api.onPageChange(() => {
        
        const currentPath = window.location.pathname;
        const queryParams = window.location.search;
        
        const redirects = {
            
            "/c/category-1-slug/category-1-id": "/t/topic-1-slug/index-topic-1-id",
            "/c/category-2-slug/category-2-id": "/t/topic-2-slug/index-topic-2-id"
        };
        
        if (queryParams.includes("list=true")) return;
        
        const match = Object.keys(redirects).find(cat => currentPath.startsWith(cat));
        
        if (match) {
          const targetTopic = redirects[match];
          
          if (currentPath !== targetTopic) {

            const router = api.container.lookup("router:main");
            router.transitionTo(targetTopic);
          }
        }
    });

});

通常の一覧表示でドキュメントカテゴリを開くには、URLにパラメータを追加します:

/c/category-1-slug/category-1-id?list=true
「いいね!」 4

いいね、私にはより良く見えます。現在、内部でAからZまでのローカルレンダリングを試しており、同じアプローチを念頭に、各セッションでドキュメントカテゴリへの最初のアクセス時にサイドバーを自動的に表示するようにしています。これは、怠惰なユーザーが迷子にならないようにするためです :slight_smile:

「いいね!」 2