Dies ist eine einfache Möglichkeit, ein Discourse-Symbol global zu ändern.
-
Klicke mit der rechten Maustaste auf das Symbol, das du ändern möchtest, und wähle “Element untersuchen” oder “Untersuchen” (je nach Browser).
-
Finde den Namen des Symbols.
-
Suche ein neues Symbol hier Find Icons with the Perfect Look & Feel | Font Awesome, z. B. external-link-alt
-
Passe den Code an und füge ihn in deinem
admin > anpassen > Themen > Code bearbeiten -> JS-Tab hinzu.
// {theme}/javascripts/discourse/api-initializers/init-theme.gjs
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
api.replaceIcon("link", "external-link-tab");
});
- Symbole, die von Discourse nicht standardmäßig verwendet werden, müssen in der Site-Einstellung
svg icon subsethinzugefügt werden. Aktualisiere dann deinen Browser, um die Änderungen zu sehen.
Ergebnis:

Alle “link”-Symbole werden durch “external-link-tab” ersetzt.
Wenn ein Symbol für mehrere Elemente auf anderen Seiten verwendet wird, z. B. für Abzeichen, wird das Symbol auch dort ersetzt.
Ausnahmen
Beachte, dass es bereits eine Themenkomponente gibt, die es dir ermöglicht, das Like-Symbol zu ändern. Ich verwende diesen Fall als Beispiel.
Das “heart”-Symbol, das zum Liken verwendet wird, ist mit anderen Namen ('d-liked' und 'd-unliked') hart codiert und sollte anders behandelt werden als andere Symbole. Um also das
-Symbol durch das
-Symbol zu ersetzen:
api.replaceIcon("d-liked", "thumbs-up");
api.replaceIcon("d-unliked", "thumbs-o-up");
![]()
![]()
Aber auf der Abzeichen-Seite ist das Symbol immer noch “heart”:
Um es auf dieser Seite zu ändern, fügen wir hinzu:
api.replaceIcon("heart", "thumbs-up");
Ein weiteres Beispiel:
api.replaceIcon("d-watching", "eye");
ändert das Beobachtungssymbol:
Siehe hier andere Ausnahmen, die den Verfolgungsstatus, Ein-/Ausklappen, Benachrichtigungen und Likes abdecken.
const REPLACEMENTS = {
"d-tracking": "bell",
"d-muted": "discourse-bell-slash",
"d-regular": "far-bell",
"d-watching": "discourse-bell-exclamation",
"d-watching-first": "discourse-bell-one",
"d-drop-expanded": "caret-down",
"d-drop-collapsed": "caret-right",
"d-unliked": "far-heart",
"d-liked": "heart",
"d-post-share": "link",
"d-topic-share": "link",
"notification.mentioned": "at",
"notification.group_mentioned": "users",
"notification.quoted": "quote-right",
"notification.replied": "reply",
"notification.posted": "reply",
"notification.edited": "pencil-alt",
"notification.bookmark_reminder": "discourse-bookmark-clock",
"notification.liked": "heart",
"notification.liked_2": "heart",
"notification.liked_many": "heart",
"notification.liked_consolidated": "heart",
"notification.private_message": "far-envelope",
"notification.invited_to_private_message": "far-envelope",
"notification.invited_to_topic": "hand-point-right",
"notification.invitee_accepted": "user",
"notification.moved_post": "sign-out-alt",
"notification.linked": "link",
"notification.granted_badge": "certificate",
"notification.topic_reminder": "far-clock",
"notification.watching_first_post": "discourse-bell-one",
"notification.group_message_summary": "users",
"notification.post_approved": "check",
"notification.membership_request_accepted": "user-plus",
"notification.membership_request_consolidated": "users",
"notification.reaction": "bell",
"notification.votes_released": "plus",
"notification.chat_quoted": "quote-right",
};
Ref: discourse/icon-library.js at main · discourse/discourse (github.com)
Erstelle gerne weitere Themenkomponenten und teile sie in unserer Kategorie #theme-component!
Dieses Dokument ist versioniert - schlage Änderungen auf GitHub vor.








