Discourse уже давно поддерживает ссылки на категории (#announcements) и теги (release-notes) с помощью хештегов (#). С появлением Discourse Chat мы хотели добавить возможность ссылаться на каналы чата через хештеги. Это потребовало существенной переработки системы: теперь каналы могут предлагаться в автодополнении, а также корректно обрабатываться в постах и сообщениях чата. Мы также решили воспользоваться этим случаем, чтобы обновить дизайн меню автодополнения и оформленных хештегов.
Краткое описание изменений, включённых в эту переработку:
Возможность поиска каналов чата, если функция чата включена.
Результаты поиска по хештегам отдают приоритет точным совпадениям на основе слага. В зависимости от того, используете ли вы хештег в посте или сообщении чата, приоритет отдаётся разным типам результатов (например, в постах на первом месте категории, а в чате — каналы).
Для каждого результата отображается уникальная иконка.
Новый стиль оформления хештегов, включающий уникальную иконку.
Вы можете включить эту новую версию автодополнения и оформления хештегов, активировав параметр сайта enable_experimental_hashtag_autocomplete на вашем сайте Discourse:
Мы планируем сделать эту функцию стандартной в новом году, однако пока она считается экспериментальной, поэтому ещё предстоит исправить и доработать несколько моментов.
Эта функция теперь также включена на Discourse Meta
Вот обновление — мы сделали это настройкой по умолчанию для всех сайтов после внесения изменений в обработку хештегов. Теперь мы также отображаем цвета для иконок, включая стилизацию оригинальных подкатегорий :
Спасибо, что обратили на это внимание, это очень важный момент. По крайней мере, необходимо добавить aria-label для каждого хэштега. Я постараюсь сделать коммит с этим исправлением на этой неделе.
Старые темы не будут использовать новый формат тегов и категорий до пересборки HTML. Есть способ безопасно пересобрать все темы для обеспечения единообразия интерфейса? Возможно, с помощью rake?
Без bundle exec вроде бы работает на продакшн-сайте
root@Canapin-app:/var/www/discourse# rake hashtags:mark_old_format_for_rebake
Поиск постов, соответствующих старому формату, это может занять некоторое время...
[!] Вы собираетесь пометить 0 постов с хештегами в старом формате для повторной обработки. [CTRL+c] для отмены, [ENTER] для продолжения
Готово, повторная обработка произойдёт, когда запустится задача периодических обновлений.