Как создать вкладку с пользовательской активностью в профиле пользователя?

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

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

P.S.
Я пытаюсь внести изменения в следующие разделы:

  1. Добавить пользовательскую строку в область метаданных темы (userbit) под именем пользователя в сообщении.
  2. Добавить кнопку в область управления сообщениями для открытия формы.
  3. Добавить пользовательскую вкладку на страницу активности профиля пользователя.
  4. Добавить некоторую пользовательскую сводную информацию на карточку пользователя и в статистику пользователя.

Я рекомендую использовать Introducing Discourse developer toolbar .

Затем найдите точку расширения (plugin outlet), куда можно вставить компонент:

image

После этого вы сможете увидеть, например:

Вот руководство по этой теме:

Возможно ли запросить плагины-вставки?

Я надеюсь разместить рейтинг репутации пользователя под его именем. Или, исходя из опыта, где было бы хорошим местом для его размещения? topic-map-expanded-after?

Конечно! Вы можете создать тему Development.

По какой-то причине это не отображается, но у вас уже есть outlets вокруг имени поста:

старый ответ

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/app/components/post/meta-data/poster-name.gjs#L119

Для этого необходимо включить режим glimmer post stream:

После этого они появятся:

Значит, этот выход — это post-metadata__after, или нужно использовать renderAfterWrapperOutlet("post-metadata")?

Да, это был бы хороший вариант для проверки.

С этим можно поэкспериментировать, но обязательно прочитайте отказ от ответственности в описании настройки. Этот режим ещё не готов к использованию в продакшене. Мы даже не используем его в Meta.

Для текущей реализации потока сообщений вам нужно использовать старый API decorateWidget или API addPosterIcon:

Извини, Дэвид, я слишком увлёкся новыми вещами и совсем забыл о предупреждении, что они всё ещё находятся в активной разработке. :sweat_smile: В следующий раз буду осторожнее.

Для этого я использовал следующий код для отображения кнопки:

api.registerValueTransformer("post-menu-buttons", ({ value: dag, context })

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