Да, следуйте этой инструкции: Replace Discourse's default SVG icons with custom icons in a theme
Подниму, пожалуйста. У меня тот же вопрос.
Из коробки Discourse использует значок ссылки внизу поста как кнопку «Поделиться» (это больше, чем просто ссылка, она предлагает варианты для социальных сетей), однако тот же значок используется в редакторе для редактирования ссылки.
Они действительно должны быть разными, так как выполняют разные функции. ИЛИ, если у кого-то есть способ переопределить глобальное изменение в редакторе поста, буду признателен.
Недавно я изменил иконку «Нравится» с «сердечка» на «book-reader».
Удалось успешно заменить все иконки «Нравится», кроме той, что в выпадающем списке уведомлений.

Я использовал следующий заголовок, добавив все возможные варианты, которые мог придумать:
<script type="text/discourse-plugin" version="0.8">
api.replaceIcon('d-unliked', 'book-reader');
api.replaceIcon('d-liked', 'book-reader');
api.replaceIcon('heart', 'book-reader');
api.replaceIcon('new read', 'book-reader');
api.replaceIcon('d-icon-heart', 'book-reader');
api.replaceIcon('notification.liked', 'book-reader'); // уведомления
api.replaceIcon('notification.liked_2', 'book-reader'); // уведомления
api.replaceIcon('notification.liked_many', 'book-reader'); // уведомления
</script>
Сердечко заменено везде на платформе, кроме выпадающего списка уведомлений…
Есть какие-то идеи?
Попробуйте также добавить
api.replaceIcon('notification.liked_consolidated', 'book-reader');
Спасибо за ответ, Даниэла!
Добавил, но изменений всё равно нет. Сердце всё ещё отображается как иконка уведомления.
<script type="text/discourse-plugin" version="0.8">
api.replaceIcon('d-unliked', 'book-reader');
api.replaceIcon('d-liked', 'book-reader');
api.replaceIcon('heart', 'book-reader');
api.replaceIcon('new read', 'book-reader');
api.replaceIcon('d-icon-heart', 'book-reader');
api.replaceIcon('notification.liked', 'book-reader');
api.replaceIcon('notification.liked_2', 'book-reader');
api.replaceIcon('notification.liked_many', 'book-reader');
api.replaceIcon('notification.liked_consolidated', 'book-reader');
</script>
Помимо этого случая, иконка book-reader заменила все иконки сердца везде.
Подумал, что это может быть конфликт иконок, поэтому сменил «book-reader» на «pencil», так как знаю, что уведомления могут использовать эту иконку. Не сработало, всё ещё сердце.
Есть какие-то идеи?
Я попытался заменить иконку envelope на иконку inbox, но изменения не применяются к иконкам внутри панели меню пользователя. Нужно ли обращаться к ним каким-то специфическим образом?
Мой фрагмент:
// {theme}/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
api.replaceIcon("envelope", "inbox");
});
Привет @jrgong ![]()
Здесь вы можете найти замену иконок, которые содержат уведомления.
Добавьте эту строку в ваш сниппет:
api.replaceIcon("notification.private_message", "inbox");