Перенаправлять целевую страницу каждой подкатегории на index по умолчанию для категорий документации

Привет, команда Discourse,

Мы начали изучать Категории документации Discourse. Выглядит очень перспективно. Отличная работа!

Один момент, который я заметил: на стартовой странице каждой подкатегории в настоящее время отображается список сообщений в этой подкатегории, отсортированный по «Последним» или другим доступным вариантам сортировки.

Хотя для обсуждений это приемлемый подход, я чувствую, что это может сбить с толку новых пользователей, не знакомых с Discourse. Я ожидал увидеть по умолчанию индексную страницу как стартовую. Это также будет соответствовать боковой панели.

Возможно ли добавить опцию, позволяющую пользователю переключаться между этими двумя режимами?

С новыми настройками, когда пользователь нажимает на подкатегорию «Интеграции» на домашней странице документации, он попадет на эту страницу и увидит всё содержимое.

Вместо этой:

Это должно облегчить пользователям изучение структуры документов и быстрое нахождение нужной информации.

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 лайка

Красиво, мне нравится больше. В настоящее время я тестирую внутри компании локальный рендеринг от А до Я и автоматическое отображение боковой панели при первой попытке обращения к категориям документации в каждой сессии, используя тот же подход: не позволять ленивым пользователям заблудиться :slight_smile:

2 лайка