Вращающийся плейсхолдер композитора

:discourse2: Сводка Rotating Composer Placeholder добавляет динамический, вращающийся текст-заполнитель в редактор Discourse, показывая каждый раз новый подсказку при открытии редактора.
:hammer_and_wrench: Ссылка на репозиторий https://github.com/Ethsim12/discourse-rotating-composer-placeholder
:open_book: Новичок в темах Discourse? Руководство для начинающих по использованию тем Discourse

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

Возможности

  • Вращение текста-заполнителя в редакторе при каждом его открытии
  • Работает для:
    • ответов
    • создания новых тем
  • Полностью настраивается через параметры компонента темы
  • Не требует установки плагина
  • Работает только на стороне клиента (безопасно и компактно)
  • Использует современные api-initializers

Установка

  1. В панели администратора Discourse перейдите по пути:
    Администрирование → Внешний вид → Темы и компоненты → Компоненты → три точки

  2. Нажмите Установить.

  3. Выберите Из git-репозитория.

  4. Вставьте URL этого репозитория и нажмите Установить.

Активация компонента темы

Установка компонента темы не активирует его автоматически.
Его необходимо подключить к теме.

  1. Перейдите по пути:
    Администрирование → Внешний вид → Темы и компоненты → Компоненты → Rotating Composer Placeholder

  2. Нажмите на вашу активную тему
    (например: «По умолчанию», «Desktop» или вашу пользовательскую тему).

  3. Нажмите зелёную галочку.

  4. Обновите страницу в браузере.

После активации компонент сразу применится к выбранной теме.

Настройка компонента

  1. Оставайтесь на странице компонента темы.

  2. Отредактируйте список rotating_placeholders.

Примеры значений:

  • Что вы пытались сделать? Укажите шаги для воспроизведения.
  • Одна идея в одном ответе. Если это новая проблема, создайте новую тему.
  • Пожалуйста, укажите: ожидаемый результат, фактический результат и любые ошибки.
  • Совет: вставляйте логи внутри ```тройных обратных кавычек```.

Примечания:

  • Каждая запись в списке становится возможным текстом-заполнителем.
  • Пустые записи игнорируются.
  • Если список пуст, используется текст-заполнитель по умолчанию.

Известные ограничения

  • Улучшение только интерфейса
  • Не влияет на содержимое сообщений
  • Текст-заполнитель меняется при открытии редактора
  • Будущие изменения в редакторе могут потребовать незначительных обновлений селекторов

Совместимость

  • Предназначен для современных версий Discourse
  • Рекомендуемая минимальная версия: Discourse 3.2+
  • Использует только поддерживаемые API тем
4 лайка

Можете привести примеры случаев использования?

1 лайк

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

Также можно добавить забавные пасхалки.

4 лайка

О, точно, я даже не заметил примеры.

Игра престолов: Путь позора

3 лайка

Спасибо! Один из приятных бонусов, который я обнаружил, заключается в том, что компонент корректно работает и с редактором богатого текста — плейсхолдер там тоже вращается правильно.

Поскольку он интегрируется в жизненный цикл редактора, а не зависит от внутренних механизмов, специфичных для редактора, он не опирается на селекторы только для Markdown, что помогает сохранять совместимость между различными режимами редактора.

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

1 лайк

Отлично сделано, @Ethsim2 :clap:

Возможно, стоит добавить заполнители, специфичные для категорий? (хотя мне кажется, где-то уже есть компонент с такой функцией)

На самом деле я хочу использовать это, чтобы сделать их ВСЕ забавными на одном из моих форумов…

“ЧТО С ТОБОЙ НЕ ТАК? ТЫ НЕ УМЕЕШЬ ЧИТАТЬ???”
“В чём разница между тем, кто не ищет перед публикацией, и ленивым лентяем?”
“Если вы сообщаете об ошибке, сначала убедитесь, что это не паук.”
“Какова скорость полёта пустой ласточки?”

5 лайков

Пожалуйста! :slightly_smiling_face:

Идея с плейсхолдерами, специфичными для категорий, действительно отличная — я вижу, как она может быть особенно полезна для категорий «Поддержка / Баги» и «Общий чат», где подсказки, которые вы хотите показывать пользователям, полностью различаются.

С точки зрения реализации контекст композера обычно предоставляет достаточно сигналов для чистого решения:

• Новая тема: ориентироваться на выбранный categoryId в модели композера

• Ответ: извлекать категорию из контекста темы

Таким образом, возможный вариант v1 мог бы выглядеть так:

• настройка темы, сопоставляющая category_id со списком плейсхолдеров

• использование глобальных rotating_placeholders в качестве запасного варианта, если совпадение по категории не найдено

Если вы помните существующий компонент, о котором думаете, пришлите, пожалуйста, ссылку — в противном случае я с радостью добавлю это сюда как запрос на новую функцию и оценю интерес (и избежу дублирования работы, если она уже существует).

Кстати, ваш список «ВСЕ смешные» — это именно тот хаотичный добрый порядок, который я имел в виду :joy:

(Я бы, вероятно, всё же добавил несколько серьёзных, чтобы иногда пробиралось полезное напоминание!)

Вот Topic Template Placeholder Text theme component, где можно использовать шаблон категории в качестве текста-заполнителя.

2 лайка

Спасибо! Это действительно полезная ссылка.

Этот компонент («Текст-заполнитель шаблона темы») работает немного иначе, чем тот, о котором речь: он использует шаблон темы категории в качестве заполнителя (так что заполнитель зависит от категории, но по сути это содержимое шаблона).

Этот компонент темы при каждом открытии редактора перебирает список коротких подсказок (и это касается как ответов, так и новых тем). Поэтому «заполнители, зависящие от категории», могли бы стать полезным дополнением здесь, если мы хотим реализовать вращающиеся списки для каждой категории с откатом к глобальному списку — особенно для разделов «Поддержка/Баги» и «Общий чат».

Но если цель кого-то конкретно заключается в том, чтобы «отображать шаблон моей категории как заполнитель», то другой TC уже отлично решает эту задачу.