グローバルにアイコンを変更する

はい、このガイドに従ってください:Replace Discourse's default SVG icons with custom icons in a theme

「いいね!」 2

バンプをお願いします。私も同じ質問があります。

デフォルトの状態では、Discourse は投稿の下部にあるリンクアイコンを「共有」ボタンとして使用しています(単なるリンク以上の機能で、ソーシャルメディア共有も提供します)が、同じアイコンがエディタ内でリンクを編集するためにも使用されています。

これらは異なる機能なので、本来は別のアイコンであるべきです。あるいは、投稿エディタでのグローバル変更を上書きする方法をご存知の方がいれば、教えていただけると幸いです。

「いいね!」 2

最近、「いいね」アイコンを「ハート」から「読書中」に変更しました。

通知のドロップダウンリストにあるもの以外は、すべての「いいね」アイコンの置き換えに成功しました。

Capture166

考えられるすべてのオプションを追加して、以下のヘッダーを使用しました。

   <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>

プラットフォーム上のすべての場所でハートは置き換わりましたが、通知のドロップダウンリスト内だけは例外です…

何かご意見はありますか?

「いいね!」 1

また、以下を追加してみてください。

api.replaceIcon('notification.liked_consolidated', 'book-reader');

「いいね!」 1

ご返信ありがとうございます、ダニエラさん!

追加しましたが、まだ変化がありません。通知アイコンは引き続きハートとして表示されます。

   <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 :waving_hand:

通知を含むアイコンの置き換えは、こちらで見つけることができます。

スニペットにこの行を追加してください。

api.replaceIcon("notification.private_message", "inbox");
「いいね!」 1