Это разумное замечание: поддерживать балансировку макета страницы /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, чтобы скрыть все категории третьего уровня (внуки).