仅替换链接图标用于共享

我觉得 Discourse 界面的这一部分令人困惑。在编辑器中,链接图标用于插入超链接(这很合理,这正是它应有的功能,且与 99% 的其他界面一致)。

但在查看帖子时,相同的图标却被用于链接/社交分享功能。

实际上,我认为在这里使用更常见的分享图标会更合理:share-icon

有一段时间,我使用 通过 API 更改图标的方法

  <script type="text/discourse-plugin" version="0.8">
    api.replaceIcon('link', 'external-link-tab');
 </script>

但这会同时更改编辑器中的图标,因此用分享图标来表示插入超链接就不太合理了。如果能有独立的 API 调用来分别引用该按钮的这两种上下文,那将非常有帮助,这样我就可以将其替换为分享链接图标,而不会影响插入链接的图标。

???(我对 Discourse 内部工作原理的了解大多比较浅显)

4 个赞

这需要 Discourse 进行更改。我们必须在内部复制此图标,同时默认情况下两个版本使用相同的图标,以便下游用户可以分别针对每个版本进行更改。

再次说明,我并不是在寻找一个图标!我可以在自己的网站上使用任何我想要的图标。

我所需要的是在 Discourse 中实现一种方法,正如通过 API 覆盖图标的方式中所指定,用于更改分享帖子的按钮图标,而不影响编辑器中插入超链接按钮所使用的图标。

1 个赞

我们正在评估这样做是否可行,我们同意这将很有用。

是的,一旦下面的提交进入 tests-passed,你就可以进行你打算做的操作:

(该提交可能需要一个小时左右才能进入 tests-passed。)

因此,我为帖子和主题按钮中的分享图标添加了新的 ID,这样你现在就可以在 API 的 replaceIcon 调用中单独隔离它们,如下所示:

api.replaceIcon('d-post-share', 'share-square');
api.replaceIcon('d-topic-share', 'share-square');

6 个赞

谢谢!我刚才正想弄清楚为什么 Meta 这里分享按钮图标的类名与我们最新版本的 Discourse 不同。

3 个赞

看到更改已生效并在更新中可用,我们已在网站上进行了测试。在此提醒其他人:使用该图标需要通过 admin -> settings -> svg icon subset 添加,并使用 fa-share-square

效果完美。我们的分享图标从:

变为:

再次感谢。

5 个赞

已完成!请查看上文

我几小时前已更新我的 Discourse,新功能已生效。

3 个赞

这很有趣。我刚刚尝试更新自己的 Discourse 实例,但仍然没有看到它。

请允许我进行一些故障排查……:slight_smile:

我非常喜欢这个改动。我应该怎么做才能更改图标?

<script type="text/discourse-plugin" version="0.8">
        api.replaceIcon('d-post-share', 'share-square');
        api.replaceIcon('d-topic-share', 'share-square');
    </script>

编辑主题时,只需将此代码添加到您的 header 中即可。

3 个赞

我发现还有一步——你需要将此 Font Awesome 图标作为 SVG 图标提供。否则,在调整主题头部后,按钮将显示为空白。

我的设置如下所示:

1 个赞

此次更新除了更改分享按钮图标的类名外,未做任何其他改动,因此您不会立即察觉到差异。默认情况下,将保留之前的链接图标(link)。

如果您在浏览器中检查该按钮,发现其包含类名 d-icon-d-post-share(更新前为 d-icon-link),则表明更新已完成。

您需要按照此处说明编辑您的主题头部:Substitute Link Icon Only For Sharing - #22 by ondrej

1 个赞

此主题已在 2 天后自动关闭。不再允许新回复。