Фильтр карточек в документации Discourse

:discourse2: Сводка Discourse Docs Card Filter предназначен для использования с плагином Discourse Docs и позволяет размещать «карточки», которые действуют как кликабельный фильтр для более быстрого получения результатов при входе на страницу /docs пользователями.
:eyeglasses: Предпросмотр Предпросмотр в конструкторе тем Discourse
:hammer_and_wrench: Ссылка на репозиторий https://github.com/discourse/discourse-docs-card-filter
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

Установить этот компонент темы

Возможности

Вышеуказанное будет отображаться с этими настройками в плагине docs:

Настройки

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

Название Описание
category icons Выберите значки и порядок тем для соответствующих ID категорий. Например, ‘6,heart,title-asc’ назначит значок сердца категории 6 и отсортирует список тем по возрастанию активности. ПРИМЕЧАНИЕ: порядок может быть (title,activity)-(asc/desc)
category description Включить отображение описания категории в карточках фильтра по категориям на странице docs.
tag icons Выберите значки и порядок тем для соответствующих слаг тегов. Например, ‘featured,heart,activity-desc’ назначит значок сердца тегу featured и отсортирует список тем по убыванию активности. ПРИМЕЧАНИЕ: порядок может быть (title,activity)-(asc/desc)
Перевод По умолчанию
topics Темы
topic Тема

:discourse2: Размещено у нас? Компоненты тем доступны для использования в наших тарифах Standard, Business и Enterprise.

33 лайка

Спасибо за создание этого! Так ли это, что если у пользователя нет прав на просмотр (частной) категории, то карточка этой частной категории не будет отображаться над полем поиска? (Или, полагаю, на боковой панели, но я просто хочу подтвердить, что поведение последовательно.)

1 лайк

Так и должно быть, поскольку мы получаем информацию о категории из

@discourseComputed("category")
  categoryInfo(category) {
    return this.site.categories.findBy("id", category.id);
  },

Насколько мне известно, this.site.categories вернёт только те категории, которые может видеть текущий пользователь.

2 лайка

Отлично. Это сделает инструмент действительно удобным для использования в наших нескольких рабочих группах, позволяя быстро получать доступ к справочным материалам своей группы и оперативно фильтровать материалы Группы A от Группы B и т. д. Спасибо!

3 лайка

Возможно, счётчик на странице /docs не учитывает темы, перемещённые в эту категорию после её создания?

Я только что создал новую категорию, добавил документацию, переместил несколько тем, но счётчик всё ещё показывает «0 тем».

РЕДАКТИРОВАНИЕ: похоже, просто требуется время для обновления.

Есть ли способ изменить порядок сортировки карточек, даже если для этого потребуется внести изменения в код? Я хотел бы, чтобы сортировка была по алфавиту, а не по количеству тем. Спасибо!

1 лайк

Всем привет. Документация и это расширение для неё — просто супер. Но есть один момент. Не мог бы кто-нибудь помочь добавить эти карточки в раздел top_menu или на главную страницу? Было бы здорово иметь стандартную главную страницу с вкладкой «Последние» по умолчанию, но с этими карточками вверху. При клике на карточку пользователь должен переходить на страницу отфильтрованной документации.

Также у меня есть другой плагин (поле поиска), который находится в разделе top_menu. Я не смог понять, как изменить порядок отображения, если в этом разделе показываются несколько плагинов.

Спасибо.

3 лайка

Привет @jordan.vidrine

Мы протестировали tc, и он отлично подходит для вашего сценария использования. Теперь мы можем создать базу знаний.

В связи с этим у меня есть вопрос: можете ли вы предложить какое-либо решение для добавления параметров к каждой карточке категории или тега? Таким образом, мы хотели бы добавлять &order=title, чтобы влиять на сортировку для каждой отдельной карточки категории или тега.

PS:

Хм… Не уверен.

Как бы вы хотели, чтобы были отсортированы карточки категорий и тегов?

Привет, Джордан,

Мы могли бы добавить параметр сортировки в настройку темы «Иконки категорий». Например, для значения 6,heart можно добавить дополнительную команду сортировки, например, сортировку по заголовку темы по возрастанию: 6,heart,title-asc.

При открытии карточки категории к ней будут просто добавляться параметры запроса, например: /docs?ascending=true&category=71&order=title.

Что ты думаешь об этом?

1 лайк

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

Тем не менее, мы приветствуем PR для компонентов, а также возможность форкнуть компонент и использовать его по-своему!

Не стесняйтесь создать PR с этой функциональностью или форкнуть проект для дальнейшей разработки под свои нужды.

3 лайка

Я могу сделать PR по этому запросу, так как @jrgong спонсирует эту работу.

4 лайка

Поднимаю эту тему! Удалось ли кому-нибудь разобраться в этом?

2 лайка

Мое решение заключалось в том, чтобы отключить карточки (так как у меня слишком много категорий, чтобы они были полезны), и изменить порядок сортировки Документов. Подробнее об этом можно узнать здесь: Modifying Discourse Docs to only allow for sorting by Title - #2 by Nick_Chomey

2 лайка

Мы определенно приветствуем полезные PR-запросы к нашим компонентам!

Если вы планируете добавить возможность сортировки этих карточек, я бы рекомендовал создать новый список значений, куда можно будет указать порядок карточек по ID категории и ID тега. Не стоит добавлять их в уже существующий список значений для чего-то нерелевантного.

:smile:

1 лайк

@jordan.vidrine Спасибо за создание отличного компонента. Можно ли отключить компонент на мобильных устройствах, но отображать его на ПК/Mac?

Справедливо. Но не могли бы вы хотя бы изменить настройку category icons на value-list? Гораздо удобнее управлять карточками в нескольких текстовых полях, чем в одном. :wink:

И как временное решение было бы очень полезно, если бы у каждой карточки документации был CSS-класс с соответствующим слагом категории или тега.

До: <a class="docs-card-box category-card">
После: <a class="docs-card-box [category-slug] category-card">

1 лайк

Это хорошее предложение :+1:

2 лайка

Дайте знать, если нужна помощь с тестированием, буду рад выступить в роли подопытного кролика :slight_smile:

1 лайк

После дополнительных размышлений я решил не менять настройку category icons на список значений, так как отсутствие варианта по умолчанию привело бы к поломке компонентов у текущих пользователей.

Добавление варианта по умолчанию потребовало бы проверки, установил ли пользователь иконки в текущем поле или в новом поле value-list. Мне кажется, что внедрять такую логику в этот компонент слишком громоздко: это добавило бы ещё один уровень настроек и могло бы вызвать путаницу.

Что касается добавления классов, это отличная идея, но у меня пока нет сроков, когда это будет реализовано, так как есть более срочные задачи, требующие моего внимания.

Тем не менее, когда у нас будет возможность, мы будем рады получить pull-запросы (PR) для наших компонентов — ведь мы с вами с открытым исходным кодом!

1 лайк