Здесь, возможно, есть ошибка: включение этой настройки (при том что изначально она была отключена) вызвало проблемы для аккаунтов без прав администратора. Не уверен, что именно вступило в конфликт, но некоторые темы стали скрытыми, а навигация по категориям и тегам стала полностью неработоспособной для аккаунтов с ограниченным доступом (TL1).
Вот обновление, которое модернизирует компонент и добавляет поддержку текстового редактора с форматированием!
Возможно, потребуется некоторая доработка или могут возникнуть непредвиденные крайние случаи, но я считаю, что это хорошее начало.
Кратко
Добавлена поддержка текстового редактора с форматированием (подробный обзор ниже)
Добавлено сочетание клавиш Ctrl + q для вставки вызова по умолчанию.
Работает в обоих редакторах, а сочетание клавиш добавлено в модальное окно «Горячие клавиши».
Изображения
Давайте поговорим о текстовом редакторе с форматированием и о том, чего ожидать!
Создание вызовов:
У вас есть четыре способа вставки вызовов:
Горячие клавиши
Панель инструментов
Правила ввода
/callout<type>
!!<type>
Поддержка вставки
Видео
Редактирование вызовов
Элементы управления для редактирования вызова появляются только после его выбора.
Выбор типа
При клике на иконку появится всплывающее меню.
Пользовательский заголовок
Поддерживается встроенное форматирование и эмодзи
Сворачивание
Возможность сделать вызов сворачиваемым. Доступно через меню параметров.
Видео
Организация вызовов
Элементы управления перемещением
Настольный компьютер
Есть ручка, за которую можно потянуть, чтобы перетащить вызов.
Устройство с сенсорным экраном
Вы можете перемещать вызовы вверх/вниз или встраивать их в соседние вызовы. По умолчанию эта функция отключена, чтобы не перегружать интерфейс, так как вы редко будете этим заниматься. Включить можно в настройках.
Видео
Навигация с клавиатуры
Это помогает легче перемещаться внутрь и из вложенных вызовов.
Возможно, в будущих версиях потребуется внести некоторые изменения для обеспечения согласованности поведения.
← В начале заголовка автоматически откроется выбор типа вызова.
↑ ↓ Внутри тела вызова, если нет абзаца, в который можно перейти, будет создан новый; если вы выйдете с пустым содержимым, абзац будет удалён.
Enter внутри заголовка перемещает курсор в тело (и создаёт его, если необходимо).
Видео
Вставка по клику
В областях, где нет абзаца, можно кликнуть внутрь, чтобы открыть новый абзац.
При желании также можно использовать кнопки для открытия абзаца внутри или снаружи вызова.
Видео
Возможно, позже я займусь:
автодополнением правил ввода
улучшением цветов с помощью современного CSS для обеспечения согласованности и видимости, особенно в тёмной теме.
Я бы хотел убрать все настройки и сначала сосредоточиться на простоте, оставив продвинутую кастомизацию только через CSS, но уже слишком поздно для этого
Особая благодарность Moin за обратную связь.
На этом всё. Дайте знать, что вы думаете. Отзывы очень приветствуются!
Я заметил, что вы реализовали такой эффект: если у определённого типа есть несколько алиасов, то при выборе типа в редакторе с форматированием каждый алиас отображается как отдельный вариант, расположенные подряд.
Это приятное решение, но, кажется, его стоит доработать: если заголовок (Title) не задан, отображается тип колл-аута, поэтому эти идущие подряд варианты с одинаковой цветовой схемой будут показывать разные имена и заголовки. Однако, если заголовок задан, в списке отображается и используется один и тот же заголовок, как и при создании цитаты, что может сбивать с толку.
Если такая доработка сложна в реализации, возможно, стоит добавить чекбокс, который позволит отключать добавление дополнительных записей в список выбора типов, соответствующих алиасам один к одному, когда задан заголовок.
Вы правы! Спасибо за обратную связь, приятно видеть, что люди используют TC.
На самом деле я об этом думал, но совершенно забыл это исправить.
Я займусь исправлением, чтобы правильно фильтровать список, когда указано заголовок.
Я только что протестировал последнюю версию, и теперь элементы с заголовком отображаются в списке выбора категории только один раз, независимо от количества алиасов.
У меня возникает следующая ошибка, только при использовании перевода на de*:
JS-консоль:
client-error-handler.js:109 [THEME 6 'Quote Callouts'] TypeError: Cannot set properties of undefined (setting 'callout_sample')
at new po (callouts.gjs:30:19)
at callouts.gjs:265:23
at eK (plugin-api.gjs:3582:10)
at Object.initialize (callouts.gjs:264:5)
at i.initialize (app.js:304:28)
at index.js:375:19
at e.each (index.js:183:7)
at e.walk (index.js:112:10)
at e.each (index.js:59:20)
at e.topsort (index.js:65:10)
at ij._runInitializer (index.js:388:11)
at ij.runInstanceInitializers (index.js:373:10)
at l._bootSync (instance.js:111:22)
at ij.didBecomeReady (index.js:780:18)
at invoke (index.js:262:14)
at m.flush (index.js:180:11)
at g.flush (index.js:334:19)
at Y._end (index.js:762:32)
at Y._boundAutorunEnd (index.js:499:12)
h @ client-error-handler.js:109
* установите /u/<username>/preferences/interface “Язык интерфейса” на “Немецкий (Deutsch)”
Похоже, что ошибка была внесена в одном из последних обновлений Discourse между версиями 2026.3.0-latest и 2026.4.0-latest, но я не могу определить точное место. В данный момент я использую версию 2026.4.0-latest 4b2c45376d и Quote Callout v0.0.1 9aa6548
Я действительно думал, что подобные проблемы уже исправлены.
Правильно ли я понимаю, что локаль сайта установлена по умолчанию на английский (США), а локаль пользователя — на немецкий?