사용자로서 이모지 자동 완성 비활성화

안녕하세요 :slight_smile:

사용자로서 이모지 자동 완성을 비활성화할 수 있으면 좋겠습니다. :slight_smile:

이모지 자동 완성 비활성화와 스마일리 비활성화 (discourse.gnome.org에서)를 참고해 주세요.

OP에도 현재 겪고 있는 문제의 간단한 요약이나 이 사용자 설정이 왜 유용한지 설명을 포함해 주실 수 있을까요? 이렇게 하면 훨씬 더 잘 정리된 Contribute > Feature 요청이 되며, 링크를 통해 정보를 찾아봐야 하는 수고를 줄여줍니다 :slight_smile:

(OP가 무엇인가요?)

알겠습니다, 시도해 보겠습니다.

  • 저는 프랑스인이라 가끔 <space>:<return> 순서로 입력합니다. (<return>은 이모지 제안을 확정하는 것이 아니라 새 줄을 만드는 역할을 해야 합니다.)
  • 또한 줄의 끝에 위치하더라도 이모티콘, 특히 “:-)”을 자주 입력합니다. 이것이 ":slight_smile: "로 변환됩니다. 저는 이것이 싫습니다. 결과가 같더라도, 게시하기 전 메시지를 검토하기가 더 어려워지거든요.
  • 저는 discourse.gnome.org의 사용자입니다. 그곳에서는 사이트 전체 설정이기 때문에 도움을 줄 수 없다고 합니다. 그래서 사용자별 설정으로 만들어 주셨으면 합니다. :slight_smile:

대안: 자동 완성 기능에서 제안된 이모지를 확정하는 다른 방법을 찾아낼 수 있습니다 (예를 들어 <tab> 키?). 그러면 <return>은 제안을 무시하고 타이핑을 계속하는 것으로 처리되며, <space>와 같은 역할을 하게 됩니다.

1개의 좋아요

Original Post(원본 게시물)는 주제 내에서 가장 첫 번째 게시물로, 이 주제와 같은 제목을 설정한 게시물입니다.

그렇다면 왜 :spacereturn 순서로 입력하지 않나요?

콜론 뒤에 공백을 입력하면 자동 완성 이모지 팝업이 즉시 닫혀야 합니다.

4개의 좋아요

죄송하지만, 그 말은 첫 번째 게시물 아래에 추가하는 대신 첫 번째 게시물을 수정해야 한다는 뜻인가요?

개발자로서, 쓸모없는 곳에 공백이 남아있는 것을 그냥 두는 것을 싫어합니다. 그것은 더러운 작업이라고 생각합니다.
그래서 저는 <space>:<return> 순서로 입력하는 습관이 있고, <space>:<space><return>이라는 반사적 행동을 익히는 것을 별로 좋아하지 않습니다.

<space>:<space><backspace><return>도 작동하지 않습니다. 왜냐하면 이는 자동 완성 상자를 다시 열기 때문입니다.


핵심은 이렇습니다: 저는 모든 일반 텍스트 에디터에서 <space>:<return> 순서로 입력하는 습관이 있으며, Discourse에서도 동일한 결과가 나오기를 매우 원합니다. 즉, 이 모든 키 입력이 타이핑 플로우/텍스트 플로우(단순히 <space>만이 아닌)로 간주되어, 자동 완성 제안이 무시되어야 한다는 뜻입니다.

(키보드 숫자 키패드에 있는) <return> 대신 <enter>를 사용하는 것은 어떨까요?
이모지를 선택할 때 <arrow-up> / <arrow-down>을 사용하므로, <arrow-left><arrow-right>가 자동 완성 상자를 다시 열지 않는다는 점을 고려할 때, <arrow-right>를 사용하여 이모지를 확인하는 것도 가능합니다.

음, 죄송하지만 말씀하시는 논리를 잘 이해하지 못하겠습니다. 다시 한번 명확히 하자면, 저는 간단한 해결책을 제시했는데, :return을 사용하는 습관이 있어서 그 해결책이 충분하지 않다고 주장하시는 건가요? 그래서 사용자 설정에 이 기능을 새로 도입해야 한다는 건가요? 참고로, 저는 아직 이 특정 기능 요청을 본 적이 없습니다. :thinking:

우회책에 대해 감사합니다. :slight_smile:

  • 그리고 :<space><backspace><return>는 우회책이 아니며,
  • :<space><return>의 반사 동작을 습관으로 삼고 싶지 않습니다. 그렇게 하면 일반 텍스트 에디터에서 입력하게 되는데, 이는 특히 코드나 공식 문서에서 작업을 지저분하게 만들 것이기 때문입니다.

새로운 기능이란 무엇인가요?

제가 이해한 바로는: 이미 사이트 전체 설정이 존재하며, 저는 이 설정을 사용자 전체(user-wide)로 만들 것을 제안하고 있습니다.


방금 GitLab에도 Discourse와 유사한 자동 완성 기능이 있다는 것을 발견했습니다. 다만 자동 완성 상자가 열릴 때 선택된 이모지가 없어서, 사용자가 첫 번째 제안된 이모지를 선택하려면 <arrow-down>을 입력해야 한다는 점이 다릅니다.

그 후, :<return>은 입력 흐름 / 텍스트 흐름으로 간주되며, 자동 완성 제안은 무시됩니다.
글자 뒤에 :를 입력해도 자동 완성 상자가 열리며, 이것이 누군가에게 불편을 주진 않을 것 같습니다. :slight_smile:

사용자는 첫 번째 제안된 이모지를 얻기 위해 <return> 대신 <arrow-down><return>을 입력해야 합니다.

이 변경 사항을 받아들이실 수 있으신가요?

작업 순서로 space : escape return를 사용하는 것은 어떨까요? 테스트에서는 제게 잘 작동하는 것 같지만, 컴포저를 실수로 최소화하기 쉬울 수 있습니다.

1개의 좋아요

정말 감사합니다. 아주 좋은 우회 해결책인 것 같습니다. :slight_smile:

타이핑 흐름에 <escape>를 직접 삽입할 필요가 없도록 GitLab 솔루션 또는 사용자 전체 비활성화 중 하나를 꼭 고려해 주시면 좋겠습니다. :slight_smile:

1개의 좋아요

이 요청에 +1을 하고 싶습니다. 기존처럼 : ) 같은 이모티콘을 직접 입력하고 싶어 이모티콘을 비활성화해 달라는 사용자 요청을 받은 적이 있습니다.

사용자들이 Discourse에서 :slight_smile: 대신 :-)을 표시하길 원합니까?

그렇다면 관리자인 경우 이미 전체 서버(사이트 전체)에 대한 이모지를 비활성화할 수 있습니다.

사용자 전체에 대한 비활성화를 원하신다면, 특정 사용자가 읽는 모든 게시글에서 이모지가 비활성화되길 원하시는지, 아니면 자신의 게시글에서만 비활성화되길 원하시는지 명확히 해 주세요.

전자의 경우 주의해 주세요. 이모지를 비활성화하지 않은 사용자가 작성한 :slight_smile:이 :-)로 변환되지 않을 수 있습니다.


저의 경우, 게시글을 작성할 때만 불편함을 느끼기 때문에 이모지 자동완성 기능만 비활성화해 달라고 요청했습니다. :-) 대신 :slight_smile:이 표시되는 것이 불편할 뿐, 미리보기 창이나 게시글을 읽을 때 :-)가 표시되는 것은 불편하지 않습니다.

이모지 표시를 마다하지 않지만, 대신 :-) 같은 텍스트로 표시하고 싶어 하는 사용자가 있습니다.

즉, 자신의 게시물에서 이모지가 다른 사람들에게 보이지 않기를 원하는 것이죠.

좀 특이한 요청이긴 합니다. 하지만 이 백틱(`) 기능에 대해 알려주면, 원하는 결과를 얻을 수 있을 것 같습니다!

저도 이 관련해서 사용자 요청을 몇 건 받고 있습니다. 특히 채팅 플러그인에 대한 것이었죠(다만 이 설정은 두 플러그인 간에 공유할 수도 있습니다).

테마 컴포넌트에서 이모지 추천 기능을 비활성화하는 로직이 필요하다면, 아래와 같은 코드가 작동합니다. (개념 증명을 시작했지만, 이 경우에도 이모지는 렌더링되지만 컴포저에서 추천만 되지 않습니다.)

추천기를 우회하는 조건을 직접 코드로 구현해야 합니다. 참고로 이 방법은 추천기만 끕니다. 사용자가 :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);
        },
      });
    });
  },
};

그룹(또는 다른 조건?)에 따라 이모지 추천기를 비활성화/활성화하는 제대로 작동하는 테마 컴포넌트를 원한다면, Marketplace 토픽에서 이 코드를 참고할 수 있습니다.