在类别主页隐藏第三级类别而不破坏布局的选项

这是一个合理的需求,因为如果只有少数几个分类,却包含多层子分类,那么 /categories 页面的布局确实很难平衡。

我们真的不希望大家再使用 modifyClass,因为正如你所说,维护这类覆盖规则可能需要一定的开发工作量。

现在我们有一些更新的自定义方法,更容易保持稳定性。在这种情况下,值转换器(value transformer)可以帮助解决这个问题。我刚刚添加了一个,很快将在更新中可用:DEV: Add a category-list-subcategories value transformer - Pull Request #42804 - discourse/discourse - GitHub

一个简单的演示如下:

api.registerValueTransformer(
  "category-list-subcategories",
  ({ value, context }) =>
  context.page === "categories" && context.category.level >= 1 ? [] : value
);

这将只显示一层子分类。现在使用转换器还有其他可用的选项,因此我制作了一个主题组件,我们可以对其进行维护以支持这些功能。

因此,一旦 Discourse 更新,你可以安装此组件来控制 /categories 页面以及其他一些分类列表中显示的子分类数量:

Categories page depth 设置为 2,以隐藏所有孙级分类。

2 个赞