Я пробовал разные варианты массовой загрузки пользовательских эмодзи, но пока не нашёл решения, поэтому спрашиваю здесь, каким должен быть лучший вариант в будущем.
У меня есть небольшая коллекция пользовательских эмодзи, которые я люблю загружать во все свои форумы Discourse. Некоторые из них — иконки FontAwesome, которые мне удобно использовать в виде :icon-name: при написании постов, чтобы объяснять пользователям элементы интерфейса Discourse. Другие просто для развлечения, например, флаг Йоркшира. Они хранятся в папках (и, полагаю, их легко можно было бы разместить и в онлайн-репозитории GitHub).
Мне хотелось бы иметь возможность загружать эти папки целиком, за один раз, в интерфейс пользовательских эмодзи. В настоящее время лимит на загрузку зависит от настройки simultaneous_uploads («Максимальное количество файлов, которые можно перетащить в редакторе»), которая ограничена значением 20 (Ошибка: «simultaneous_uploads: Значение должно быть в диапазоне от 0 до 20», если попытаться увеличить его выше, даже временно).
С интересом изучил другую настройку эмодзи — external-emoji-url, которая позволяет задать URL для внешнего набора эмодзи, но, к сожалению, она заменяет все «стандартные» эмодзи, а я не хочу их терять.
Мне нужно лишь одно: чтобы загрузка папок с пользовательскими эмодзи работала так же, как сейчас работает загрузка отдельных пользовательских эмодзи. Либо, если бы не было лимита на количество загрузок (возможно, задачу загрузки можно было бы отправить в Sidekiq для асинхронного выполнения с уведомлением администраторов PM по завершении, как это делается при массовой рассылке приглашений).
Я также изучил возможность использования REST API Discourse для этой цели, но пользовательские эмодзи через него не доступны. Загрузки доступны в API, и у меня это даже работало, но даже при использовании типа custom_emoji для загрузки эмодзи они не появляются в списке.
Просто интересно узнать мнение сообщества о том, какой путь развития был бы лучшим:
- Задача Rake для автоматизации создания пользовательских эмодзи?
- Выполнение через консоль Rails?
- Изменение лимитов загрузки в административном интерфейсе для одновременной загрузки нескольких сотен файлов?
- Добавление функции «загрузка папки» в административный интерфейс?
- Сделать пользовательские эмодзи темой-компонентом, которую можно развернуть и добавить через URL GitHub? (Мне нравится простота этого варианта)
- Разрешить несколько внешних URL эмодзи, чтобы можно было иметь как набор эмодзи, так и свои пользовательские (возможно, размещённые в репозитории GitHub Pages)?
- Создать единый репозиторий «эмодзи и пользовательские эмодзи», к которому можно обращаться по URL?
ИЛИ — есть ли другой способ сделать все иконки FontAwesome, которые Discourse использует в своём интерфейсе, доступными в редакторе с использованием синтаксиса :icon-name:? На самом деле, большинство моих задач связано именно с этим. Настройка сайта, которая сделает иконки интерфейса доступными в редакторе, решила бы 90% моих проблем.