이모지
GitLab v19.1GitLab은 tanuki_emoji gem을 통해 네이티브 이모지를 지원합니다. 이모지 지원은 백엔드와 프론트엔드 양쪽에서 구현되므로, 세 개의 마일스톤에 걸쳐 지원을 업데이트해야 합니다. 필요에 따라 tanuki_emoji gem을 업데이트합니다.
GitLab은 tanuki_emoji gem을 통해 네이티브 이모지를 지원합니다.
이모지 업데이트 방법#
이모지 지원은 백엔드와 프론트엔드 양쪽에서 구현되므로, 세 개의 마일스톤에 걸쳐 지원을 업데이트해야 합니다.
첫 번째 마일스톤 (백엔드)#
-
필요에 따라
tanuki_emojigem을 업데이트합니다. -
최신
tanuki_emojigem을 사용하도록Gemfile을 업데이트합니다. -
업그레이드 대상 Unicode 버전을 지원하는 최신
unicode-emoji를 사용하도록Gemfile을 업데이트합니다. -
lib/gitlab/emoji.rb의EMOJI_VERSION을 업데이트합니다. -
bundle exec rake tanuki_emoji:import- 버전이 지정된public/-/emojis디렉터리에 모든 폴백 이미지를 임포트합니다. 새로운 개별 이미지가 해당 디렉터리에 복사되었는지 확인합니다. -
테스트 시, 새 이모지의 단축코드를 사용하여 표시가 되는지 확인합니다.
두 번째 마일스톤 (프론트엔드)#
-
app/assets/javascripts/emoji/index.js의EMOJI_VERSION을 업데이트합니다. -
tanuki_emojigem의 Rake tasks를 사용하여 aliases, digests, sprites를 업데이트합니다. 다음 순서로 실행합니다:
bundle exec rake tanuki_emoji:aliases - fixtures/emojis/aliases.json을 업데이트합니다.
bundle exec rake tanuki_emoji:digests - public/-/emojis/VERSION/emojis.json 및 fixtures/emojis/digests.json을 업데이트합니다.
bundle exec rake tanuki_emoji:sprite - 새 스프라이트 시트를 생성합니다.
새 이모지가 추가되면 스프라이트 시트의 크기가 변경될 수 있습니다. 이런 변경에 대응하려면 먼저 위의 Rake 태스크로 app/assets/images/emoji.png 스프라이트 시트를 생성한 다음, 새 스프라이트 시트의 크기를 확인하고 lib/tasks/tanuki_emoji.rake의 SPRITESHEET_WIDTH 및 SPRITESHEET_HEIGHT 상수를 그에 맞게 업데이트합니다.
그런 다음 태스크를 다시 실행합니다.
이미지 크기를 최적화하려면 ImageOptim 또는 유사한 프로그램을 사용합니다.
- 1x 및 2x용 새 스프라이트 시트가 생성되었는지 확인합니다.
app/assets/images/emoji.png
-
app/assets/images/emoji@2x.png -
긍정적 또는 부정적 의도를 강조하고 싶은 새 이모지가 있다면
fixtures/emojis/intents.json을 업데이트합니다.
긍정적 의도는 0.5로 설정합니다.
-
중립 의도는
1로 설정할 수 있습니다. 이는 모든 이모지에 자동으로 적용되므로 명시적으로 설정할 필요가 없습니다. -
부정적 의도는
1.5로 설정합니다. -
특정 이모지를 지원하지 않는 플랫폼에서 이미지로 폴백해야 하는 경우, 새 이모지 Unicode 지원 체크 및 규칙을 추가해야 할 수 있습니다.
app/assets/javascripts/emoji/support/is_emoji_unicode_supported.js와app/assets/javascripts/emoji/support/unicode_support_map.js를 참고하세요. -
지원 대상 Unicode 버전에 해당하는 emoji-regex 버전을 사용하고 있는지 확인합니다. 이는
package.json에서 업데이트해야 합니다.app/assets/javascripts/emoji/index.js에서 이모지를 필터링하는 데 사용됩니다. -
카테고리 이름에 변경이 있었나요? 변경이 있다면
app/assets/javascripts/emoji/constants.js를 업데이트해야 합니다. -
테스트 시
GitLab Flavored Markdown(GLFM) 자동 완성에서 새 이모지와 해당 aliases를 볼 수 있는지 확인합니다.
- 이모지 반응 메뉴에서 새 이모지와 해당 aliases를 볼 수 있는지 확인합니다.
세 번째 마일스톤 (정리)#
public/-/emojis 디렉터리에서 오래된 이모지 버전을 제거합니다. 이 작업이 반드시 필요한 것은 아닙니다 — 제거하지 않아도 모든 것이 계속 작동합니다. 하지만 정리해 두는 것이 좋습니다.