Отображение текста «полная тема» на странице категории + доступ к подкатегории из строки меню

В нашем сообществе есть очень большой раздел часто задаваемых вопросов (FAQ). Чтобы сделать каждый вопрос более доступным (для ссылок), мы разбили его на отдельные темы в подкатегории FAQ (она входит в верхнеуровневую категорию «Обучение»).

Вот как это выглядит сейчас, с темой Air и компонентом навигационной панели категорий.

Я пытаюсь понять, как реализовать две вещи (ни одна из которых не выглядит очевидной):

  1. Добавить прямой доступ к подкатегориям в навигационной панели через выпадающее меню.
  2. Отображать темы в режиме «полного текста» как на настольных компьютерах, так и на мобильных устройствах, чтобы пользователи могли просто прокручивать страницу вниз, не открывая темы, и читать всё подряд, если захотят.

Как бы вы это организовали?

Вот как это выглядит сейчас:

А вот ссылка, если хотите посмотреть напрямую: FAQ - Diabète Félin

Спасибо за вашу помощь!

Поскольку это отдельный компонент, вам, скорее всего, нужно будет задать вопрос в теме, посвящённой этому компоненту.

Итак, вы хотите, чтобы в карточке темы отображался полный пост темы, а не краткое содержание?

Боюсь, что решение может потребовать использования другого компонента :-/

Именно — точно так же, как на блоге, где можно отображать полные посты на главной странице вместо отрывков.

ИЛИ какой-то другой способ «объединить» все темы (без ответов) на одной странице.

Я считаю, что оба варианта можно реализовать с помощью компонентов темы.

Это может вызвать проблемы с производительностью, так как отображаются все сообщения тем (но их можно смягчить с помощью ленивой загрузки?). Если у вас много тем, например, как в разделе «Мета», это может стать неосуществимым (если только не загружать больше тем по мере того, как пользователь доходит до конца страницы).

1 лайк

Это только для этой категории и, возможно, ещё для нескольких других с ограниченным количеством тем.

Так что… мне нужно научиться разрабатывать компоненты темы? :face_with_peeking_eye::sweat_smile:

1 лайк

В чём преимущество размещения этих вопросов в отдельных темах, а не в отдельных сообщениях внутри одной темы? Одна тема в Discourse прокручивается без каких-либо доработок. Кроме того, вы можете, например, добавить оглавление в первое сообщение.

2 лайка

Или, если у вас есть бюджет, вы можете разместить объявление в канале Marketplace.

1 лайк

Меня тоже это интересует. Неужели цель состоит в том, чтобы каждая тема FAQ оставалась открытой для ответов и обсуждений?

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

По-моему, disco-toc всё ещё работает в рамках каждого поста. Я тоже об этом подумал; именно так я сделал на другом форуме Discourse. Но я не уверен, что в таком случае легко будет ссылаться на один из вопросов. У заголовков есть якоря, поэтому к ним можно ссылаться, но как только в FAQ добавляется новый вопрос, все ID заголовков после этого заголовка меняются, что ломает все ссылки. Тогда поиск этих ссылок в старых темах поддержки становится бесполезным, потому что они больше не ведут к нужному абзацу, а лишь к теме. Вот почему я обычно не ссылаюсь на FAQ, а каждый раз цитирую его.

2 лайка

Ах, я об этом не задумывался. Теперь буду иметь это в виду перед тем, как ссылаться на заголовки. :face_with_diagonal_mouth:

1 лайк

Это позволяет нам легко и напрямую ссылаться на один из вопросов при ответе кому-либо. Одна из проблем в моём сообществе заключается в том, что у нас огромный объём документации, охватывающий практически всё, но люди, приходящие сюда («мой кот умирает»), чувствуют себя перегруженными и не читают её. Кроме того, те, кто отвечает, не очень технически подкованы, поэтому просить их (в Facebook) скопировать и вставить ссылку на Google Doc в своём ответе — это слишком сложно, они просто этого не делают.

Discourse делает для нетехнических пользователей намного проще ссылаться на материалы внутри сообщества: нажмите на маленькую кнопку со ссылкой, начните вводить ключевое слово или название того, на что хотите сослаться, — и готово. Мы хотим упростить направление людей к отдельному элементу в FAQ, а не ко всему FAQ целиком.

1 лайк

Да, к сожалению, бюджета нет, я уже трачу свои деньги на хостинг :wink:

Более серьёзно: если я хочу начать собирать что-то под свои нужды, есть ли в Meta категория, где можно получить помощь? Я не имею в виду, чтобы кто-то сделал это за меня (я реалист), но чтобы отвечали на вопросы «новичка-разработчика» о том, как сделать xyz в моём компоненте и т.д.

Конечно, есть категория Development. Также вы можете ознакомиться с материалами по разработке в Documentation > Developer Guides и #community-wiki:developers.

1 лайк

У нас в Google Docs именно так: https://docs.google.com/document/u/0/d/1X4c1whNRQI32kuDFlYqOtaNFqw1R-CfzIv3quEuQYEU/

Но проблема здесь в том, как создать ссылку на заголовок раздела: если я нажимаю кнопку создания ссылки и начинаю вводить текст, предложит ли Discourse выбрать заголовки разделов для прямой ссылки или только темы/категории?

Спасибо, я добавлю это в свой список дел!

1 лайк

Нет, вы правы, заголовки разделов здесь не подойдут. Похоже, вы на правильном пути с темами FAQ.

1 лайк

А как насчет Discourse Doc Categories?

1 лайк

О, я забыл об этом! Это может помочь. Добавлю это в свой список для изучения. (Мой список начинает становиться очень длинным :cry:)

Вы можете ссылаться на заголовки внутри поста так: https://meta.discourse.org/t/configuring-the-default-sidebar-for-your-users/347764#p-1690272-adding-a-custom-section-13. Единственная проблема в том, что ссылка перестанет работать, если кто-то добавит новый заголовок выше этого.

Вы также можете добавлять ручные якоря в посты так: https://meta.discourse.org/t/markdown-links-to-anchors-not-working/150175/2. Они не сломаются, если будет добавлен новый заголовок.

Я также добавил в закладки https://meta.discourse.org/t/i-created-a-bookmarklet-to-create-the-table-of-content-for-forum-posts/270961, когда искал лучшее решение для раздела «Часто задаваемые вопросы».

Извините, ТоддZ, это не был прямой ответ на ваш пост.

3 лайка