作为用户禁用表情自动补全

你好 :slight_smile:

我希望能够禁用表情符号自动补全功能,拜托了。:slight_smile:

请参阅 禁用表情符号自动补全禁用笑脸符号 (在 discourse.gnome.org 上)

您能否在 OP 中也简要总结一下您遇到的问题/为什么此用户偏好在此处会很有益。这样可以使 Feature request(功能请求)更加全面(并且可以节省人们在链接中查找信息的时间 :slight_smile:

(什么是 OP?)

好的,我会试试。

  • 作为法国人,我有时会输入 <space> : <return>。(<return> 想要换行,而不是验证建议的表情符号。)
  • 我也经常输入笑脸,特别是“ :-) ”,而且总是在行尾。它被转换为“ :slight_smile: ”。我不喜欢这样,因为即使结果相同,也会使在发布消息之前对其进行审查更加困难。
  • 我是 discourse.gnome.org 的用户,他们告诉我他们无法帮助我,因为这是一个全站设置。这就是为什么我希望您将其设为用户级设置,拜托。 :slight_smile:

替代方案:您可以在自动完成功能中找到另一种验证建议表情符号的方法(也许是 <tab>?),这样 <return> 将被视为继续键入,忽略建议,就像 <space> 一样。

1 个赞

Original Post = 话题中的第一个帖子,也就是像您这个话题一样设定了话题标题的帖子。

那么为什么不直接按 空格 换行 呢?

如果在冒号后面加一个空格,表情符号自动完成弹出窗口应该会立即关闭。

4 个赞

所以我的意思是应该编辑第一个帖子而不是在它下面添加内容?

作为一个开发者,我讨厌留下无用的空格。我觉得这是糟糕的工作。
所以我习惯输入 : 然后按回车,我非常不愿意养成输入 : 空格 回车 的习惯。

输入 : 空格 退格键 回车 也不行,因为它会再次打开自动补全框。


重点是:我在任何纯文本编辑器中都有输入 : 然后按回车的习惯,我非常希望它在 Discourse 中也能得到相同的结果。也就是说,所有这些按键都被视为文本流(不仅仅是空格),因此自动补全建议应该被忽略。

为什么不使用“输入”键(键盘数字部分上的那个)而不是“回车”键?
既然它使用向上/向下箭头来选择表情符号,它也可以使用右箭头来验证它,因为左箭头/右箭头不会再次打开自动补全框。

嗯,抱歉,我不太明白你的论点。只是为了弄清楚——我给你提供了一个简单的解决方案,但你说它不够好,因为你习惯使用 :return 键,所以你觉得我们应该在用户偏好设置中为这个引入一项新功能? 顺便说一句,我不认为我之前看到过这个特定的功能请求。:thinking:

感谢您的临时解决方案。 :slight_smile:

  • 并且“:”不是一个临时解决方案,
  • 而且我不想养成在任何纯文本编辑器中输入“:”的习惯,因为它会弄脏工作,尤其是在代码和官方文档中。

新的功能是什么?

我的理解是:已经有一个全站设置,我建议将其设为用户级别。


我刚刚发现 GitLab 也有一个自动完成功能,与 Discourse 的类似,只是它打开自动完成框时没有选中的表情符号,所以用户必须输入来选择第一个建议的表情符号。

然后,“:”被视为输入流/文本流,自动完成建议被忽略。
即使在字母后键入“:”,它也会打开自动完成框,我认为这不会打扰任何人。 :slight_smile:

用户必须输入而不是来获取第一个建议的表情符号。

您会接受这个改变吗?

关于 space : escape return 作为一种变通方法怎么样?它似乎在我测试时有效,但可能会意外最小化编辑器。

1 个赞

非常感谢,这似乎是一个很好的解决方法。 :slight_smile:

请记住 GitLab 解决方案或用户范围禁用,这样我就不再需要在我的输入流程中插入 \u003cescape\u003e:slight_smile:

1 个赞

我希望在此请求上+1,我曾有用户要求禁用表情符号,因为他们想输入老式的表情符号,例如:)。

您希望 Discourse 显示 :-) 而不是 :slight_smile: 吗?

如果是这样,如果您是管理员,您可以为整个服务器(全站禁用)禁用表情符号。

如果您希望为用户禁用,您能否具体说明是希望为给定用户禁用他阅读的所有帖子中的表情符号,还是仅禁用他自己帖子中的表情符号?

在第一种情况下,请注意,我认为 Discourse 不会将用户禁用表情符号时所写的 :slight_smile: 翻译成 :-)


对我而言,我要求仅禁用表情符号自动补全,因为它在撰写帖子时会打扰我,看到 :slight_smile: 而不是 :-)。但在预览窗格或阅读帖子时,看到 :slight_smile: 并不打扰我。

我有一个用户不介意看到表情符号,但他们自己想将表情符号显示为 :-)

所以他们希望其他人看不到他们帖子中的表情符号。

这有点奇怪。我会告诉他们关于这些反引号的事情,因为它们可能会派上用场!

我也收到了一些关于此的用户请求,特别是针对 chat 插件(尽管该设置可以两者共享)

如果有人想在主题组件中禁用表情符号推荐器,可以使用类似下面的逻辑。 (我开始了一个概念验证,但这仍然允许表情符号被渲染,只是在编辑器中不被推荐)。

您需要编写代码来确定绕过推荐器的条件。它只关闭推荐器。如果用户输入类似 :persevering_face: 的内容,表情符号仍然会被渲染。

import { withPluginApi } from "discourse/lib/plugin-api";

export default {
  name: "disable-emoji-autocomplete-non-staff",

  initialize() {
    withPluginApi("0.8.12", (api) => {
      api.modifyClass("component:d-editor", {
        _applyEmojiAutocomplete() {
          let isGroupMember = ...获取成员的逻辑...
            });
          // 仅为工作人员应用表情符号自动补全
          if (!isGroupMember) {
            // 或者您可能希望它不为 hate_emoji 组的成员建议表情符号
            return; // 禁用非工作人员的自动补全
          }
          // 否则回退到原始行为
          this._super(...arguments);
        },
      });
    });
  },
};

如果您想要一个根据群组(或其他条件)禁用/允许表情符号推荐器的正常工作的主题组件,并且有预算,请随时与我联系。