Cambia le icone globalmente

Questo è un modo semplice per cambiare un’icona di Discourse globalmente.

  1. Fai clic destro sull’icona che vuoi cambiare e seleziona “Ispeziona elemento” o “Ispeziona” (a seconda del browser)

  2. Trova il nome dell’icona
    image

  3. Cerca una nuova icona qui https://fontawesome.com/icons?d=gallery, ad esempio external-link-alt

  4. Personalizza e aggiungi il codice nella scheda admin > customize > themes > edit code - > JS

// {theme}/javascripts/discourse/api-initializers/init-theme.gjs

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  api.replaceIcon("link", "external-link-tab");
});
  1. Le icone non utilizzate di default da Discourse devono essere aggiunte nell’impostazione del sito svg icon subset, quindi forza l’aggiornamento del browser per vedere le modifiche applicate.
    Risultato:
    image
    Tutte le icone “link” saranno sostituite con “external-link-tab”.
    Se un’icona è usata per più elementi in altre pagine, come i badge, l’icona sarà sostituita anche lì.

Eccezioni

Nota che esiste già un componente tema che ti permette di cambiare l’icona Mi piace. Sto usando questo caso come esempio

L’icona “cuore”, usata per dare Mi piace, è codificata con altri nomi ('d-liked' e 'd-unliked') e dovrebbe essere trattata diversamente dalle altre icone, quindi per cambiare l’icona :heart: con l’icona :+1::

api.replaceIcon("d-liked", "thumbs-up");
api.replaceIcon("d-unliked", "thumbs-o-up");

like
firefox_2018-04-24_18-37-02
ma sulla pagina dei badge l’icona è ancora “cuore”:
firefox_2018-04-24_18-38-15
quindi per cambiarla lì aggiungiamo:

api.replaceIcon("heart", "thumbs-up");

firefox_2018-04-24_18-47-50

Un altro esempio:

api.replaceIcon("d-watching", "eye");

cambia l’icona di watching:
watching-original watching

Vedi qui altre eccezioni che coprono lo stato di tracciamento, espandi/comprimi, notifiche e Mi piace ovviamente.
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)


Sentiti libero di creare altri componenti tema e condividerli nella nostra categoria Theme component!


Questo documento è controllato tramite versione - suggerisci modifiche su github.

38 Mi Piace