默认将文档分类下各子类别的着陆页重定向至索引文件

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 个赞

不错,我觉得看起来更好了。我目前正在内部尝试 A-Z 本地渲染,并在每个会话中首次访问文档类别时自动显示侧边栏,思路是一样的:防止懒惰的用户迷路 :slight_smile:

2 个赞