Private
Public Access
Add markdown :name: emoji shortcode support in messages (#27)
Typing a complete 😂/😉/etc. shortcode now renders as the emoji, matching Slack/GitHub/Discord. Render-time only, alongside the existing preserveLineBreaks preprocessing step -- stored/sent content keeps the raw :name: text, same as markdown itself is never converted until display. Fenced code blocks and inline code spans are skipped so pasted code (a Ruby symbol, a dict key) isn't silently mangled. frontend/src/lib/emojiShortcodes.ts is generated once from emojibase-data's GitHub shortcode set (same one-time-generator approach as #19's emojiNames.ts, never a runtime dependency) -- 928 of the app's 936 emoji matched, 956 aliases, no collisions. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import Markdown from 'markdown-to-jsx'
|
import Markdown from 'markdown-to-jsx'
|
||||||
|
import { EMOJI_SHORTCODES } from '../lib/emojiShortcodes'
|
||||||
|
|
||||||
interface MessageContentProps {
|
interface MessageContentProps {
|
||||||
content: string
|
content: string
|
||||||
@@ -23,6 +24,38 @@ function MarkdownImageLink({ src, alt, title }: MarkdownImageLinkProps) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const SHORTCODE_PATTERN = /:([a-z0-9_+-]+):/g
|
||||||
|
|
||||||
|
// Converts a complete `:name:` shortcode to its emoji, skipping fenced code
|
||||||
|
// blocks and inline code spans -- someone pasting code containing
|
||||||
|
// `:something:` (a Ruby symbol, a dict key) shouldn't get it silently
|
||||||
|
// turned into an emoji. This is render-time only: stored/sent content
|
||||||
|
// always keeps the literal `:name:` text, matching how markdown itself is
|
||||||
|
// never converted until display.
|
||||||
|
function convertShortcodes(text: string): string {
|
||||||
|
const lines = text.split('\n')
|
||||||
|
let inFence = false
|
||||||
|
return lines
|
||||||
|
.map((line) => {
|
||||||
|
if (/^\s*```/.test(line)) {
|
||||||
|
inFence = !inFence
|
||||||
|
return line
|
||||||
|
}
|
||||||
|
if (inFence) return line
|
||||||
|
// Splitting on backtick-delimited spans keeps inline code (`:foo:`)
|
||||||
|
// untouched -- odd-indexed segments are the code spans themselves.
|
||||||
|
return line
|
||||||
|
.split(/(`+[^`]*`+)/g)
|
||||||
|
.map((part, i) =>
|
||||||
|
i % 2 === 0
|
||||||
|
? part.replace(SHORTCODE_PATTERN, (match, name) => EMOJI_SHORTCODES[name] ?? match)
|
||||||
|
: part,
|
||||||
|
)
|
||||||
|
.join('')
|
||||||
|
})
|
||||||
|
.join('\n')
|
||||||
|
}
|
||||||
|
|
||||||
// CommonMark treats a single newline as a soft break (rendered as a space),
|
// CommonMark treats a single newline as a soft break (rendered as a space),
|
||||||
// not a visible line break -- only a trailing double-space or blank line
|
// not a visible line break -- only a trailing double-space or blank line
|
||||||
// produces one. The Composer's Shift+Enter has always inserted a plain
|
// produces one. The Composer's Shift+Enter has always inserted a plain
|
||||||
@@ -60,5 +93,5 @@ export const MARKDOWN_OPTIONS = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export function MessageContent({ content }: MessageContentProps) {
|
export function MessageContent({ content }: MessageContentProps) {
|
||||||
return <Markdown options={MARKDOWN_OPTIONS}>{preserveLineBreaks(content)}</Markdown>
|
return <Markdown options={MARKDOWN_OPTIONS}>{preserveLineBreaks(convertShortcodes(content))}</Markdown>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,967 @@
|
|||||||
|
// Shortcode -> emoji lookup for :name: conversion in chat messages,
|
||||||
|
// generated once from emojibase-data (MIT licensed,
|
||||||
|
// https://github.com/milesj/emojibase -- en/shortcodes/github.json), matched
|
||||||
|
// against the emoji actually used in emoji.ts. Not a runtime dependency:
|
||||||
|
// emojibase-data was only ever a dev-time tool to produce this static
|
||||||
|
// lookup, never added to package.json. Uses GitHub's shortcode set (the
|
||||||
|
// most broadly recognized convention) rather than Slack/CLDR/JoyPixels
|
||||||
|
// variants. If emoji.ts ever adds a new entry, this needs regenerating to
|
||||||
|
// match.
|
||||||
|
export const EMOJI_SHORTCODES: Record<string, string> = {
|
||||||
|
'+1': '👍',
|
||||||
|
'-1': '👎',
|
||||||
|
'100': '💯',
|
||||||
|
'1234': '🔢',
|
||||||
|
'1st_place_medal': '🥇',
|
||||||
|
'2nd_place_medal': '🥈',
|
||||||
|
'3rd_place_medal': '🥉',
|
||||||
|
'8ball': '🎱',
|
||||||
|
'a': '🅰️',
|
||||||
|
'ab': '🆎',
|
||||||
|
'abc': '🔤',
|
||||||
|
'adhesive_bandage': '🩹',
|
||||||
|
'adult': '🧑',
|
||||||
|
'airplane': '✈️',
|
||||||
|
'alarm_clock': '⏰',
|
||||||
|
'alembic': '⚗️',
|
||||||
|
'alien': '👽',
|
||||||
|
'ambulance': '🚑',
|
||||||
|
'anatomical_heart': '🫀',
|
||||||
|
'anchor': '⚓',
|
||||||
|
'anger': '💢',
|
||||||
|
'angry': '😠',
|
||||||
|
'anguished': '😧',
|
||||||
|
'ant': '🐜',
|
||||||
|
'apple': '🍎',
|
||||||
|
'art': '🎨',
|
||||||
|
'astonished': '😲',
|
||||||
|
'australia': '🇦🇺',
|
||||||
|
'avocado': '🥑',
|
||||||
|
'axe': '🪓',
|
||||||
|
'b': '🅱️',
|
||||||
|
'baby': '👶',
|
||||||
|
'baby_bottle': '🍼',
|
||||||
|
'baby_chick': '🐤',
|
||||||
|
'bacon': '🥓',
|
||||||
|
'badger': '🦡',
|
||||||
|
'badminton': '🏸',
|
||||||
|
'bagel': '🥯',
|
||||||
|
'baguette_bread': '🥖',
|
||||||
|
'balance_scale': '⚖️',
|
||||||
|
'balloon': '🎈',
|
||||||
|
'ballot_box_with_check': '☑️',
|
||||||
|
'bamboo': '🎍',
|
||||||
|
'banana': '🍌',
|
||||||
|
'bangbang': '‼️',
|
||||||
|
'bank': '🏦',
|
||||||
|
'baseball': '⚾',
|
||||||
|
'basket': '🧺',
|
||||||
|
'basketball': '🏀',
|
||||||
|
'bat': '🦇',
|
||||||
|
'bathtub': '🛁',
|
||||||
|
'battery': '🔋',
|
||||||
|
'beach_umbrella': '🏖️',
|
||||||
|
'bear': '🐻',
|
||||||
|
'bed': '🛏️',
|
||||||
|
'bee': '🐝',
|
||||||
|
'beer': '🍺',
|
||||||
|
'beers': '🍻',
|
||||||
|
'beginner': '🔰',
|
||||||
|
'bell': '🔔',
|
||||||
|
'bell_pepper': '🫑',
|
||||||
|
'bellhop_bell': '🛎️',
|
||||||
|
'bento': '🍱',
|
||||||
|
'beverage_box': '🧃',
|
||||||
|
'bicyclist': '🚴',
|
||||||
|
'bike': '🚲',
|
||||||
|
'biohazard': '☣️',
|
||||||
|
'bird': '🐦',
|
||||||
|
'birthday': '🎂',
|
||||||
|
'black_circle': '⚫',
|
||||||
|
'black_flag': '🏴',
|
||||||
|
'black_heart': '🖤',
|
||||||
|
'black_joker': '🃏',
|
||||||
|
'black_large_square': '⬛',
|
||||||
|
'black_medium_square': '◼️',
|
||||||
|
'blond_haired_person': '👱',
|
||||||
|
'blossom': '🌼',
|
||||||
|
'blowfish': '🐡',
|
||||||
|
'blue_book': '📘',
|
||||||
|
'blue_car': '🚙',
|
||||||
|
'blue_heart': '💙',
|
||||||
|
'blue_square': '🟦',
|
||||||
|
'blueberries': '🫐',
|
||||||
|
'blush': '😊',
|
||||||
|
'boar': '🐗',
|
||||||
|
'boat': '⛵',
|
||||||
|
'bomb': '💣',
|
||||||
|
'bone': '🦴',
|
||||||
|
'book': '📖',
|
||||||
|
'bookmark': '🔖',
|
||||||
|
'books': '📚',
|
||||||
|
'boom': '💥',
|
||||||
|
'bouncing_ball_person': '⛹️',
|
||||||
|
'bouquet': '💐',
|
||||||
|
'bow': '🙇',
|
||||||
|
'bow_and_arrow': '🏹',
|
||||||
|
'bowl_with_spoon': '🥣',
|
||||||
|
'bowling': '🎳',
|
||||||
|
'boxing_glove': '🥊',
|
||||||
|
'boy': '👦',
|
||||||
|
'brain': '🧠',
|
||||||
|
'brazil': '🇧🇷',
|
||||||
|
'bread': '🍞',
|
||||||
|
'bricks': '🧱',
|
||||||
|
'bridge_at_night': '🌉',
|
||||||
|
'broccoli': '🥦',
|
||||||
|
'broken_heart': '💔',
|
||||||
|
'broom': '🧹',
|
||||||
|
'brown_circle': '🟤',
|
||||||
|
'brown_heart': '🤎',
|
||||||
|
'brown_square': '🟫',
|
||||||
|
'bubble_tea': '🧋',
|
||||||
|
'bucket': '🪣',
|
||||||
|
'bug': '🐛',
|
||||||
|
'building_construction': '🏗️',
|
||||||
|
'bulb': '💡',
|
||||||
|
'burrito': '🌯',
|
||||||
|
'bus': '🚌',
|
||||||
|
'bust_in_silhouette': '👤',
|
||||||
|
'busts_in_silhouette': '👥',
|
||||||
|
'butter': '🧈',
|
||||||
|
'butterfly': '🦋',
|
||||||
|
'cactus': '🌵',
|
||||||
|
'cake': '🍰',
|
||||||
|
'calendar': '📆',
|
||||||
|
'call_me_hand': '🤙',
|
||||||
|
'camel': '🐫',
|
||||||
|
'camera': '📷',
|
||||||
|
'camera_flash': '📸',
|
||||||
|
'camping': '🏕️',
|
||||||
|
'canada': '🇨🇦',
|
||||||
|
'candle': '🕯️',
|
||||||
|
'candy': '🍬',
|
||||||
|
'canned_food': '🥫',
|
||||||
|
'canoe': '🛶',
|
||||||
|
'car': '🚗',
|
||||||
|
'card_file_box': '🗃️',
|
||||||
|
'card_index': '📇',
|
||||||
|
'carousel_horse': '🎠',
|
||||||
|
'carrot': '🥕',
|
||||||
|
'cartwheeling': '🤸',
|
||||||
|
'cat': '🐱',
|
||||||
|
'cat2': '🐈',
|
||||||
|
'cd': '💿',
|
||||||
|
'chains': '⛓️',
|
||||||
|
'chair': '🪑',
|
||||||
|
'champagne': '🍾',
|
||||||
|
'checkered_flag': '🏁',
|
||||||
|
'cheese': '🧀',
|
||||||
|
'cherries': '🍒',
|
||||||
|
'cherry_blossom': '🌸',
|
||||||
|
'chess_pawn': '♟️',
|
||||||
|
'chestnut': '🌰',
|
||||||
|
'chicken': '🐔',
|
||||||
|
'child': '🧒',
|
||||||
|
'chipmunk': '🐿️',
|
||||||
|
'chocolate_bar': '🍫',
|
||||||
|
'chopsticks': '🥢',
|
||||||
|
'christmas_tree': '🎄',
|
||||||
|
'church': '⛪',
|
||||||
|
'circus_tent': '🎪',
|
||||||
|
'city_sunrise': '🌇',
|
||||||
|
'city_sunset': '🌆',
|
||||||
|
'cityscape': '🏙️',
|
||||||
|
'clap': '👏',
|
||||||
|
'clapper': '🎬',
|
||||||
|
'classical_building': '🏛️',
|
||||||
|
'climbing': '🧗',
|
||||||
|
'clinking_glasses': '🥂',
|
||||||
|
'clipboard': '📋',
|
||||||
|
'closed_book': '📕',
|
||||||
|
'closed_lock_with_key': '🔐',
|
||||||
|
'cloud': '☁️',
|
||||||
|
'cloud_with_lightning_and_rain': '⛈️',
|
||||||
|
'cloud_with_rain': '🌧️',
|
||||||
|
'clown_face': '🤡',
|
||||||
|
'cn': '🇨🇳',
|
||||||
|
'cocktail': '🍸',
|
||||||
|
'coconut': '🥥',
|
||||||
|
'coffee': '☕',
|
||||||
|
'coffin': '⚰️',
|
||||||
|
'cold_face': '🥶',
|
||||||
|
'cold_sweat': '😰',
|
||||||
|
'collision': '💥',
|
||||||
|
'comet': '☄️',
|
||||||
|
'compass': '🧭',
|
||||||
|
'computer': '💻',
|
||||||
|
'computer_mouse': '🖱️',
|
||||||
|
'confetti_ball': '🎊',
|
||||||
|
'confounded': '😖',
|
||||||
|
'confused': '😕',
|
||||||
|
'construction': '🚧',
|
||||||
|
'cookie': '🍪',
|
||||||
|
'cool': '🆒',
|
||||||
|
'corn': '🌽',
|
||||||
|
'couch_and_lamp': '🛋️',
|
||||||
|
'cow': '🐮',
|
||||||
|
'cow2': '🐄',
|
||||||
|
'cowboy_hat_face': '🤠',
|
||||||
|
'crab': '🦀',
|
||||||
|
'crayon': '🖍️',
|
||||||
|
'credit_card': '💳',
|
||||||
|
'crescent_moon': '🌙',
|
||||||
|
'cricket_game': '🏏',
|
||||||
|
'crocodile': '🐊',
|
||||||
|
'croissant': '🥐',
|
||||||
|
'crossed_fingers': '🤞',
|
||||||
|
'crossed_flags': '🎌',
|
||||||
|
'crossed_swords': '⚔️',
|
||||||
|
'cry': '😢',
|
||||||
|
'crying_cat_face': '😿',
|
||||||
|
'cucumber': '🥒',
|
||||||
|
'cup_with_straw': '🥤',
|
||||||
|
'cupcake': '🧁',
|
||||||
|
'cupid': '💘',
|
||||||
|
'currency_exchange': '💱',
|
||||||
|
'curry': '🍛',
|
||||||
|
'cursing_face': '🤬',
|
||||||
|
'custard': '🍮',
|
||||||
|
'cut_of_meat': '🥩',
|
||||||
|
'cyclone': '🌀',
|
||||||
|
'dagger': '🗡️',
|
||||||
|
'dango': '🍡',
|
||||||
|
'dart': '🎯',
|
||||||
|
'dash': '💨',
|
||||||
|
'date': '📅',
|
||||||
|
'de': '🇩🇪',
|
||||||
|
'deaf_person': '🧏',
|
||||||
|
'deciduous_tree': '🌳',
|
||||||
|
'deer': '🦌',
|
||||||
|
'department_store': '🏬',
|
||||||
|
'desert': '🏜️',
|
||||||
|
'desert_island': '🏝️',
|
||||||
|
'desktop_computer': '🖥️',
|
||||||
|
'diamond_shape_with_a_dot_inside': '💠',
|
||||||
|
'disappointed': '😞',
|
||||||
|
'disappointed_relieved': '😥',
|
||||||
|
'disguised_face': '🥸',
|
||||||
|
'diya_lamp': '🪔',
|
||||||
|
'dizzy': '💫',
|
||||||
|
'dizzy_face': '😵',
|
||||||
|
'dog': '🐶',
|
||||||
|
'dog2': '🐕',
|
||||||
|
'dollar': '💵',
|
||||||
|
'dolphin': '🐬',
|
||||||
|
'door': '🚪',
|
||||||
|
'dotted_line_face': '🫥',
|
||||||
|
'doughnut': '🍩',
|
||||||
|
'dove': '🕊️',
|
||||||
|
'dragon': '🐉',
|
||||||
|
'dromedary_camel': '🐪',
|
||||||
|
'drooling_face': '🤤',
|
||||||
|
'drop_of_blood': '🩸',
|
||||||
|
'droplet': '💧',
|
||||||
|
'drum': '🥁',
|
||||||
|
'duck': '🦆',
|
||||||
|
'dumpling': '🥟',
|
||||||
|
'dvd': '📀',
|
||||||
|
'e-mail': '📧',
|
||||||
|
'eagle': '🦅',
|
||||||
|
'ear': '👂',
|
||||||
|
'ear_of_rice': '🌾',
|
||||||
|
'ear_with_hearing_aid': '🦻',
|
||||||
|
'earth_africa': '🌍',
|
||||||
|
'earth_americas': '🌎',
|
||||||
|
'earth_asia': '🌏',
|
||||||
|
'egg': '🥚',
|
||||||
|
'eggplant': '🍆',
|
||||||
|
'eight_pointed_black_star': '✴️',
|
||||||
|
'eight_spoked_asterisk': '✳️',
|
||||||
|
'electric_plug': '🔌',
|
||||||
|
'elephant': '🐘',
|
||||||
|
'email': '📧',
|
||||||
|
'envelope_with_arrow': '📩',
|
||||||
|
'es': '🇪🇸',
|
||||||
|
'euro': '💶',
|
||||||
|
'european_castle': '🏰',
|
||||||
|
'evergreen_tree': '🌲',
|
||||||
|
'exclamation': '❗',
|
||||||
|
'exploding_head': '🤯',
|
||||||
|
'expressionless': '😑',
|
||||||
|
'eye': '👁️',
|
||||||
|
'eye_speech_bubble': '👁️🗨️',
|
||||||
|
'eyes': '👀',
|
||||||
|
'face_holding_back_tears': '🥹',
|
||||||
|
'face_with_diagonal_mouth': '🫤',
|
||||||
|
'face_with_head_bandage': '🤕',
|
||||||
|
'face_with_open_eyes_and_hand_over_mouth': '🫢',
|
||||||
|
'face_with_peeking_eye': '🫣',
|
||||||
|
'face_with_thermometer': '🤒',
|
||||||
|
'facepalm': '🤦',
|
||||||
|
'facepunch': '👊',
|
||||||
|
'factory': '🏭',
|
||||||
|
'falafel': '🧆',
|
||||||
|
'fallen_leaf': '🍂',
|
||||||
|
'fearful': '😨',
|
||||||
|
'feet': '🐾',
|
||||||
|
'ferris_wheel': '🎡',
|
||||||
|
'field_hockey': '🏑',
|
||||||
|
'file_cabinet': '🗄️',
|
||||||
|
'file_folder': '📁',
|
||||||
|
'fire': '🔥',
|
||||||
|
'fire_engine': '🚒',
|
||||||
|
'fire_extinguisher': '🧯',
|
||||||
|
'firecracker': '🧨',
|
||||||
|
'fireworks': '🎆',
|
||||||
|
'first_quarter_moon': '🌓',
|
||||||
|
'first_quarter_moon_with_face': '🌛',
|
||||||
|
'fish': '🐟',
|
||||||
|
'fish_cake': '🍥',
|
||||||
|
'fishing_pole_and_fish': '🎣',
|
||||||
|
'fist': '✊',
|
||||||
|
'fist_left': '🤛',
|
||||||
|
'fist_oncoming': '👊',
|
||||||
|
'fist_raised': '✊',
|
||||||
|
'fist_right': '🤜',
|
||||||
|
'flamingo': '🦩',
|
||||||
|
'flashlight': '🔦',
|
||||||
|
'fleur_de_lis': '⚜️',
|
||||||
|
'flight_arrival': '🛬',
|
||||||
|
'flight_departure': '🛫',
|
||||||
|
'flipper': '🐬',
|
||||||
|
'floppy_disk': '💾',
|
||||||
|
'flower_playing_cards': '🎴',
|
||||||
|
'flushed': '😳',
|
||||||
|
'flying_disc': '🥏',
|
||||||
|
'flying_saucer': '🛸',
|
||||||
|
'foggy': '🌁',
|
||||||
|
'foot': '🦶',
|
||||||
|
'football': '🏈',
|
||||||
|
'fork_and_knife': '🍴',
|
||||||
|
'fortune_cookie': '🥠',
|
||||||
|
'fountain': '⛲',
|
||||||
|
'fountain_pen': '🖋️',
|
||||||
|
'four_leaf_clover': '🍀',
|
||||||
|
'fox_face': '🦊',
|
||||||
|
'fr': '🇫🇷',
|
||||||
|
'free': '🆓',
|
||||||
|
'fried_egg': '🍳',
|
||||||
|
'fried_shrimp': '🍤',
|
||||||
|
'fries': '🍟',
|
||||||
|
'frog': '🐸',
|
||||||
|
'frowning': '😦',
|
||||||
|
'frowning_face': '☹️',
|
||||||
|
'fu': '🖕',
|
||||||
|
'full_moon': '🌕',
|
||||||
|
'full_moon_with_face': '🌝',
|
||||||
|
'game_die': '🎲',
|
||||||
|
'garlic': '🧄',
|
||||||
|
'gb': '🇬🇧',
|
||||||
|
'gear': '⚙️',
|
||||||
|
'gem': '💎',
|
||||||
|
'ghost': '👻',
|
||||||
|
'gift': '🎁',
|
||||||
|
'gift_heart': '💝',
|
||||||
|
'giraffe': '🦒',
|
||||||
|
'girl': '👧',
|
||||||
|
'goal_net': '🥅',
|
||||||
|
'goat': '🐐',
|
||||||
|
'golf': '⛳',
|
||||||
|
'gorilla': '🦍',
|
||||||
|
'grapes': '🍇',
|
||||||
|
'green_apple': '🍏',
|
||||||
|
'green_book': '📗',
|
||||||
|
'green_circle': '🟢',
|
||||||
|
'green_heart': '💚',
|
||||||
|
'green_salad': '🥗',
|
||||||
|
'green_square': '🟩',
|
||||||
|
'grey_exclamation': '❕',
|
||||||
|
'grey_question': '❔',
|
||||||
|
'grimacing': '😬',
|
||||||
|
'grin': '😁',
|
||||||
|
'grinning': '😀',
|
||||||
|
'guitar': '🎸',
|
||||||
|
'gun': '🔫',
|
||||||
|
'hamburger': '🍔',
|
||||||
|
'hammer': '🔨',
|
||||||
|
'hammer_and_pick': '⚒️',
|
||||||
|
'hammer_and_wrench': '🛠️',
|
||||||
|
'hamster': '🐹',
|
||||||
|
'hand': '✋',
|
||||||
|
'hand_over_mouth': '🤭',
|
||||||
|
'hand_with_index_finger_and_thumb_crossed': '🫰',
|
||||||
|
'handball_person': '🤾',
|
||||||
|
'handshake': '🤝',
|
||||||
|
'hankey': '💩',
|
||||||
|
'hatched_chick': '🐥',
|
||||||
|
'headphones': '🎧',
|
||||||
|
'headstone': '🪦',
|
||||||
|
'hear_no_evil': '🙉',
|
||||||
|
'heart': '❤️',
|
||||||
|
'heart_decoration': '💟',
|
||||||
|
'heart_eyes': '😍',
|
||||||
|
'heart_eyes_cat': '😻',
|
||||||
|
'heart_hands': '🫶',
|
||||||
|
'heart_on_fire': '❤️🔥',
|
||||||
|
'heartbeat': '💓',
|
||||||
|
'heartpulse': '💗',
|
||||||
|
'hearts': '♥️',
|
||||||
|
'heavy_check_mark': '✔️',
|
||||||
|
'heavy_division_sign': '➗',
|
||||||
|
'heavy_dollar_sign': '💲',
|
||||||
|
'heavy_exclamation_mark': '❗',
|
||||||
|
'heavy_minus_sign': '➖',
|
||||||
|
'heavy_multiplication_x': '✖️',
|
||||||
|
'heavy_plus_sign': '➕',
|
||||||
|
'hedgehog': '🦔',
|
||||||
|
'helicopter': '🚁',
|
||||||
|
'herb': '🌿',
|
||||||
|
'hibiscus': '🌺',
|
||||||
|
'hindu_temple': '🛕',
|
||||||
|
'hippopotamus': '🦛',
|
||||||
|
'hocho': '🔪',
|
||||||
|
'honey_pot': '🍯',
|
||||||
|
'honeybee': '🐝',
|
||||||
|
'horse': '🐴',
|
||||||
|
'horse_racing': '🏇',
|
||||||
|
'hospital': '🏥',
|
||||||
|
'hot_face': '🥵',
|
||||||
|
'hot_pepper': '🌶️',
|
||||||
|
'hotdog': '🌭',
|
||||||
|
'hotel': '🏨',
|
||||||
|
'hourglass': '⌛',
|
||||||
|
'hourglass_flowing_sand': '⏳',
|
||||||
|
'house': '🏠',
|
||||||
|
'house_with_garden': '🏡',
|
||||||
|
'hugs': '🤗',
|
||||||
|
'hushed': '😯',
|
||||||
|
'ice_cream': '🍨',
|
||||||
|
'ice_cube': '🧊',
|
||||||
|
'ice_hockey': '🏒',
|
||||||
|
'ice_skate': '⛸️',
|
||||||
|
'icecream': '🍦',
|
||||||
|
'imp': '👿',
|
||||||
|
'inbox_tray': '📥',
|
||||||
|
'incoming_envelope': '📨',
|
||||||
|
'india': '🇮🇳',
|
||||||
|
'infinity': '♾️',
|
||||||
|
'information_desk_person': '💁',
|
||||||
|
'innocent': '😇',
|
||||||
|
'interrobang': '⁉️',
|
||||||
|
'iphone': '📱',
|
||||||
|
'ireland': '🇮🇪',
|
||||||
|
'it': '🇮🇹',
|
||||||
|
'japanese_goblin': '👺',
|
||||||
|
'japanese_ogre': '👹',
|
||||||
|
'jigsaw': '🧩',
|
||||||
|
'joy': '😂',
|
||||||
|
'joy_cat': '😹',
|
||||||
|
'jp': '🇯🇵',
|
||||||
|
'juggling_person': '🤹',
|
||||||
|
'kangaroo': '🦘',
|
||||||
|
'key': '🔑',
|
||||||
|
'keyboard': '⌨️',
|
||||||
|
'keycap_ten': '🔟',
|
||||||
|
'kick_scooter': '🛴',
|
||||||
|
'kiss': '💋',
|
||||||
|
'kissing': '😗',
|
||||||
|
'kissing_cat': '😽',
|
||||||
|
'kissing_closed_eyes': '😚',
|
||||||
|
'kissing_heart': '😘',
|
||||||
|
'kissing_smiling_eyes': '😙',
|
||||||
|
'kite': '🪁',
|
||||||
|
'kiwi_fruit': '🥝',
|
||||||
|
'knife': '🔪',
|
||||||
|
'koala': '🐨',
|
||||||
|
'kr': '🇰🇷',
|
||||||
|
'lacrosse': '🥍',
|
||||||
|
'lady_beetle': '🐞',
|
||||||
|
'large_blue_circle': '🔵',
|
||||||
|
'large_blue_diamond': '🔷',
|
||||||
|
'large_orange_diamond': '🔶',
|
||||||
|
'last_quarter_moon': '🌗',
|
||||||
|
'last_quarter_moon_with_face': '🌜',
|
||||||
|
'laughing': '😆',
|
||||||
|
'leafy_green': '🥬',
|
||||||
|
'leaves': '🍃',
|
||||||
|
'ledger': '📒',
|
||||||
|
'leg': '🦵',
|
||||||
|
'lemon': '🍋',
|
||||||
|
'leopard': '🐆',
|
||||||
|
'lion': '🦁',
|
||||||
|
'lips': '👄',
|
||||||
|
'lizard': '🦎',
|
||||||
|
'llama': '🦙',
|
||||||
|
'lobster': '🦞',
|
||||||
|
'lock': '🔒',
|
||||||
|
'lock_with_ink_pen': '🔏',
|
||||||
|
'lollipop': '🍭',
|
||||||
|
'lotion_bottle': '🧴',
|
||||||
|
'lotus_position': '🧘',
|
||||||
|
'loud_sound': '🔊',
|
||||||
|
'loudspeaker': '📢',
|
||||||
|
'love_letter': '💌',
|
||||||
|
'love_you_gesture': '🤟',
|
||||||
|
'luggage': '🧳',
|
||||||
|
'lungs': '🫁',
|
||||||
|
'lying_face': '🤥',
|
||||||
|
'magic_wand': '🪄',
|
||||||
|
'magnet': '🧲',
|
||||||
|
'mahjong': '🀄',
|
||||||
|
'mailbox': '📫',
|
||||||
|
'mailbox_closed': '📪',
|
||||||
|
'mailbox_with_mail': '📬',
|
||||||
|
'mailbox_with_no_mail': '📭',
|
||||||
|
'man': '👨',
|
||||||
|
'mandarin': '🍊',
|
||||||
|
'mango': '🥭',
|
||||||
|
'mantelpiece_clock': '🕰️',
|
||||||
|
'maple_leaf': '🍁',
|
||||||
|
'martial_arts_uniform': '🥋',
|
||||||
|
'mask': '😷',
|
||||||
|
'mate': '🧉',
|
||||||
|
'meat_on_bone': '🍖',
|
||||||
|
'mechanical_arm': '🦾',
|
||||||
|
'mechanical_leg': '🦿',
|
||||||
|
'medal_military': '🎖️',
|
||||||
|
'medal_sports': '🏅',
|
||||||
|
'medical_symbol': '⚕️',
|
||||||
|
'mega': '📣',
|
||||||
|
'melon': '🍈',
|
||||||
|
'melting_face': '🫠',
|
||||||
|
'memo': '📝',
|
||||||
|
'metal': '🤘',
|
||||||
|
'metro': '🚇',
|
||||||
|
'mexico': '🇲🇽',
|
||||||
|
'microphone': '🎤',
|
||||||
|
'microscope': '🔬',
|
||||||
|
'middle_finger': '🖕',
|
||||||
|
'milk_glass': '🥛',
|
||||||
|
'minidisc': '💽',
|
||||||
|
'mirror': '🪞',
|
||||||
|
'money_mouth_face': '🤑',
|
||||||
|
'money_with_wings': '💸',
|
||||||
|
'moneybag': '💰',
|
||||||
|
'monkey_face': '🐵',
|
||||||
|
'monocle_face': '🧐',
|
||||||
|
'moon': '🌔',
|
||||||
|
'moon_cake': '🥮',
|
||||||
|
'mosque': '🕌',
|
||||||
|
'motor_scooter': '🛵',
|
||||||
|
'motorcycle': '🏍️',
|
||||||
|
'mountain': '⛰️',
|
||||||
|
'mountain_bicyclist': '🚵',
|
||||||
|
'mountain_snow': '🏔️',
|
||||||
|
'mouse': '🐭',
|
||||||
|
'mouse2': '🐁',
|
||||||
|
'movie_camera': '🎥',
|
||||||
|
'moyai': '🗿',
|
||||||
|
'muscle': '💪',
|
||||||
|
'mushroom': '🍄',
|
||||||
|
'musical_keyboard': '🎹',
|
||||||
|
'musical_score': '🎼',
|
||||||
|
'mute': '🔇',
|
||||||
|
'nail_care': '💅',
|
||||||
|
'name_badge': '📛',
|
||||||
|
'nauseated_face': '🤢',
|
||||||
|
'negative_squared_cross_mark': '❎',
|
||||||
|
'nerd_face': '🤓',
|
||||||
|
'netherlands': '🇳🇱',
|
||||||
|
'neutral_face': '😐',
|
||||||
|
'new': '🆕',
|
||||||
|
'new_moon': '🌑',
|
||||||
|
'new_moon_with_face': '🌚',
|
||||||
|
'newspaper': '📰',
|
||||||
|
'night_with_stars': '🌃',
|
||||||
|
'no_bell': '🔕',
|
||||||
|
'no_entry': '⛔',
|
||||||
|
'no_entry_sign': '🚫',
|
||||||
|
'no_good': '🙅',
|
||||||
|
'no_mobile_phones': '📵',
|
||||||
|
'no_mouth': '😶',
|
||||||
|
'norway': '🇳🇴',
|
||||||
|
'nose': '👃',
|
||||||
|
'notebook': '📓',
|
||||||
|
'notebook_with_decorative_cover': '📔',
|
||||||
|
'nut_and_bolt': '🔩',
|
||||||
|
'o': '⭕',
|
||||||
|
'o2': '🅾️',
|
||||||
|
'octopus': '🐙',
|
||||||
|
'oden': '🍢',
|
||||||
|
'office': '🏢',
|
||||||
|
'oil_drum': '🛢️',
|
||||||
|
'ok': '🆗',
|
||||||
|
'ok_hand': '👌',
|
||||||
|
'ok_person': '🙆',
|
||||||
|
'old_key': '🗝️',
|
||||||
|
'older_adult': '🧓',
|
||||||
|
'older_man': '👴',
|
||||||
|
'older_woman': '👵',
|
||||||
|
'olive': '🫒',
|
||||||
|
'onion': '🧅',
|
||||||
|
'open_book': '📖',
|
||||||
|
'open_file_folder': '📂',
|
||||||
|
'open_hands': '👐',
|
||||||
|
'open_mouth': '😮',
|
||||||
|
'orange': '🍊',
|
||||||
|
'orange_book': '📙',
|
||||||
|
'orange_circle': '🟠',
|
||||||
|
'orange_heart': '🧡',
|
||||||
|
'orange_square': '🟧',
|
||||||
|
'otter': '🦦',
|
||||||
|
'outbox_tray': '📤',
|
||||||
|
'owl': '🦉',
|
||||||
|
'ox': '🐂',
|
||||||
|
'oyster': '🦪',
|
||||||
|
'package': '📦',
|
||||||
|
'page_facing_up': '📄',
|
||||||
|
'page_with_curl': '📃',
|
||||||
|
'pager': '📟',
|
||||||
|
'paintbrush': '🖌️',
|
||||||
|
'palm_tree': '🌴',
|
||||||
|
'palms_up_together': '🤲',
|
||||||
|
'pancakes': '🥞',
|
||||||
|
'panda_face': '🐼',
|
||||||
|
'paperclip': '📎',
|
||||||
|
'parrot': '🦜',
|
||||||
|
'partly_sunny': '⛅',
|
||||||
|
'partying_face': '🥳',
|
||||||
|
'paw_prints': '🐾',
|
||||||
|
'peach': '🍑',
|
||||||
|
'peacock': '🦚',
|
||||||
|
'peanuts': '🥜',
|
||||||
|
'pear': '🍐',
|
||||||
|
'pen': '🖊️',
|
||||||
|
'pencil': '📝',
|
||||||
|
'pencil2': '✏️',
|
||||||
|
'penguin': '🐧',
|
||||||
|
'pensive': '😔',
|
||||||
|
'people_hugging': '🫂',
|
||||||
|
'performing_arts': '🎭',
|
||||||
|
'persevere': '😣',
|
||||||
|
'person_fencing': '🤺',
|
||||||
|
'phone': '☎️',
|
||||||
|
'pick': '⛏️',
|
||||||
|
'pie': '🥧',
|
||||||
|
'pig': '🐷',
|
||||||
|
'pig2': '🐖',
|
||||||
|
'pig_nose': '🐽',
|
||||||
|
'pill': '💊',
|
||||||
|
'pinata': '🪅',
|
||||||
|
'pinched_fingers': '🤌',
|
||||||
|
'pinching_hand': '🤏',
|
||||||
|
'pineapple': '🍍',
|
||||||
|
'ping_pong': '🏓',
|
||||||
|
'pirate_flag': '🏴☠️',
|
||||||
|
'pizza': '🍕',
|
||||||
|
'plate_with_cutlery': '🍽️',
|
||||||
|
'pleading_face': '🥺',
|
||||||
|
'point_down': '👇',
|
||||||
|
'point_left': '👈',
|
||||||
|
'point_right': '👉',
|
||||||
|
'point_up': '☝️',
|
||||||
|
'point_up_2': '👆',
|
||||||
|
'police_car': '🚓',
|
||||||
|
'poodle': '🐩',
|
||||||
|
'poop': '💩',
|
||||||
|
'popcorn': '🍿',
|
||||||
|
'portugal': '🇵🇹',
|
||||||
|
'postal_horn': '📯',
|
||||||
|
'postbox': '📮',
|
||||||
|
'potato': '🥔',
|
||||||
|
'potted_plant': '🪴',
|
||||||
|
'poultry_leg': '🍗',
|
||||||
|
'pound': '💷',
|
||||||
|
'pout': '😡',
|
||||||
|
'pouting_cat': '😾',
|
||||||
|
'pray': '🙏',
|
||||||
|
'pretzel': '🥨',
|
||||||
|
'printer': '🖨️',
|
||||||
|
'punch': '👊',
|
||||||
|
'purple_circle': '🟣',
|
||||||
|
'purple_heart': '💜',
|
||||||
|
'purple_square': '🟪',
|
||||||
|
'pushpin': '📌',
|
||||||
|
'question': '❓',
|
||||||
|
'rabbit': '🐰',
|
||||||
|
'rabbit2': '🐇',
|
||||||
|
'raccoon': '🦝',
|
||||||
|
'racehorse': '🐎',
|
||||||
|
'racing_car': '🏎️',
|
||||||
|
'radio': '📻',
|
||||||
|
'radioactive': '☢️',
|
||||||
|
'rage': '😡',
|
||||||
|
'rainbow': '🌈',
|
||||||
|
'rainbow_flag': '🏳️🌈',
|
||||||
|
'raised_back_of_hand': '🤚',
|
||||||
|
'raised_eyebrow': '🤨',
|
||||||
|
'raised_hand': '✋',
|
||||||
|
'raised_hand_with_fingers_splayed': '🖐️',
|
||||||
|
'raised_hands': '🙌',
|
||||||
|
'raising_hand': '🙋',
|
||||||
|
'ramen': '🍜',
|
||||||
|
'rat': '🐀',
|
||||||
|
'razor': '🪒',
|
||||||
|
'receipt': '🧾',
|
||||||
|
'recycle': '♻️',
|
||||||
|
'red_car': '🚗',
|
||||||
|
'red_circle': '🔴',
|
||||||
|
'red_square': '🟥',
|
||||||
|
'relieved': '😌',
|
||||||
|
'reminder_ribbon': '🎗️',
|
||||||
|
'revolving_hearts': '💞',
|
||||||
|
'rhinoceros': '🦏',
|
||||||
|
'ribbon': '🎀',
|
||||||
|
'rice': '🍚',
|
||||||
|
'rice_ball': '🍙',
|
||||||
|
'rice_cracker': '🍘',
|
||||||
|
'right_anger_bubble': '🗯️',
|
||||||
|
'ringed_planet': '🪐',
|
||||||
|
'robot': '🤖',
|
||||||
|
'rocket': '🚀',
|
||||||
|
'rofl': '🤣',
|
||||||
|
'roll_eyes': '🙄',
|
||||||
|
'roll_of_paper': '🧻',
|
||||||
|
'roller_coaster': '🎢',
|
||||||
|
'roller_skate': '🛼',
|
||||||
|
'rooster': '🐓',
|
||||||
|
'rose': '🌹',
|
||||||
|
'rowboat': '🚣',
|
||||||
|
'ru': '🇷🇺',
|
||||||
|
'rugby_football': '🏉',
|
||||||
|
'running_shirt_with_sash': '🎽',
|
||||||
|
'safety_pin': '🧷',
|
||||||
|
'sailboat': '⛵',
|
||||||
|
'sake': '🍶',
|
||||||
|
'salt': '🧂',
|
||||||
|
'saluting_face': '🫡',
|
||||||
|
'sandwich': '🥪',
|
||||||
|
'satellite': '📡',
|
||||||
|
'satisfied': '😆',
|
||||||
|
'sauropod': '🦕',
|
||||||
|
'saxophone': '🎷',
|
||||||
|
'school': '🏫',
|
||||||
|
'scissors': '✂️',
|
||||||
|
'scorpion': '🦂',
|
||||||
|
'scream': '😱',
|
||||||
|
'scream_cat': '🙀',
|
||||||
|
'scroll': '📜',
|
||||||
|
'see_no_evil': '🙈',
|
||||||
|
'seedling': '🌱',
|
||||||
|
'selfie': '🤳',
|
||||||
|
'shallow_pan_of_food': '🥘',
|
||||||
|
'shamrock': '☘️',
|
||||||
|
'shark': '🦈',
|
||||||
|
'shaved_ice': '🍧',
|
||||||
|
'sheep': '🐑',
|
||||||
|
'shell': '🐚',
|
||||||
|
'shield': '🛡️',
|
||||||
|
'shinto_shrine': '⛩️',
|
||||||
|
'ship': '🚢',
|
||||||
|
'shit': '💩',
|
||||||
|
'shopping_cart': '🛒',
|
||||||
|
'shower': '🚿',
|
||||||
|
'shrimp': '🦐',
|
||||||
|
'shrug': '🤷',
|
||||||
|
'shushing_face': '🤫',
|
||||||
|
'skateboard': '🛹',
|
||||||
|
'ski': '🎿',
|
||||||
|
'skier': '⛷️',
|
||||||
|
'skull': '💀',
|
||||||
|
'skull_and_crossbones': '☠️',
|
||||||
|
'skunk': '🦨',
|
||||||
|
'sled': '🛷',
|
||||||
|
'sleeping': '😴',
|
||||||
|
'sleepy': '😪',
|
||||||
|
'slightly_frowning_face': '🙁',
|
||||||
|
'slightly_smiling_face': '🙂',
|
||||||
|
'slot_machine': '🎰',
|
||||||
|
'sloth': '🦥',
|
||||||
|
'small_blue_diamond': '🔹',
|
||||||
|
'small_orange_diamond': '🔸',
|
||||||
|
'small_red_triangle': '🔺',
|
||||||
|
'small_red_triangle_down': '🔻',
|
||||||
|
'smile': '😄',
|
||||||
|
'smile_cat': '😸',
|
||||||
|
'smiley': '😃',
|
||||||
|
'smiley_cat': '😺',
|
||||||
|
'smiling_face_with_tear': '🥲',
|
||||||
|
'smiling_face_with_three_hearts': '🥰',
|
||||||
|
'smiling_imp': '😈',
|
||||||
|
'smirk': '😏',
|
||||||
|
'smirk_cat': '😼',
|
||||||
|
'smoking': '🚬',
|
||||||
|
'snail': '🐌',
|
||||||
|
'snake': '🐍',
|
||||||
|
'sneezing_face': '🤧',
|
||||||
|
'snowboarder': '🏂',
|
||||||
|
'snowflake': '❄️',
|
||||||
|
'snowman': '⛄',
|
||||||
|
'snowman_with_snow': '☃️',
|
||||||
|
'soap': '🧼',
|
||||||
|
'sob': '😭',
|
||||||
|
'soccer': '⚽',
|
||||||
|
'softball': '🥎',
|
||||||
|
'sound': '🔉',
|
||||||
|
'space_invader': '👾',
|
||||||
|
'spaghetti': '🍝',
|
||||||
|
'sparkle': '❇️',
|
||||||
|
'sparkler': '🎇',
|
||||||
|
'sparkles': '✨',
|
||||||
|
'sparkling_heart': '💖',
|
||||||
|
'speak_no_evil': '🙊',
|
||||||
|
'speaker': '🔈',
|
||||||
|
'speaking_head': '🗣️',
|
||||||
|
'speech_balloon': '💬',
|
||||||
|
'spider': '🕷️',
|
||||||
|
'sponge': '🧽',
|
||||||
|
'spoon': '🥄',
|
||||||
|
'squid': '🦑',
|
||||||
|
'stadium': '🏟️',
|
||||||
|
'star': '⭐',
|
||||||
|
'star2': '🌟',
|
||||||
|
'star_struck': '🤩',
|
||||||
|
'statue_of_liberty': '🗽',
|
||||||
|
'steam_locomotive': '🚂',
|
||||||
|
'stethoscope': '🩺',
|
||||||
|
'stew': '🍲',
|
||||||
|
'stopwatch': '⏱️',
|
||||||
|
'straight_ruler': '📏',
|
||||||
|
'strawberry': '🍓',
|
||||||
|
'stuck_out_tongue': '😛',
|
||||||
|
'stuck_out_tongue_closed_eyes': '😝',
|
||||||
|
'stuck_out_tongue_winking_eye': '😜',
|
||||||
|
'stuffed_flatbread': '🥙',
|
||||||
|
'sun_behind_large_cloud': '🌥️',
|
||||||
|
'sun_behind_rain_cloud': '🌦️',
|
||||||
|
'sun_behind_small_cloud': '🌤️',
|
||||||
|
'sun_with_face': '🌞',
|
||||||
|
'sunflower': '🌻',
|
||||||
|
'sunglasses': '😎',
|
||||||
|
'sunny': '☀️',
|
||||||
|
'sunrise': '🌅',
|
||||||
|
'sunrise_over_mountains': '🌄',
|
||||||
|
'surfer': '🏄',
|
||||||
|
'sushi': '🍣',
|
||||||
|
'swan': '🦢',
|
||||||
|
'sweat': '😓',
|
||||||
|
'sweat_drops': '💦',
|
||||||
|
'sweat_smile': '😅',
|
||||||
|
'sweden': '🇸🇪',
|
||||||
|
'sweet_potato': '🍠',
|
||||||
|
'swimmer': '🏊',
|
||||||
|
'symbols': '🔣',
|
||||||
|
'syringe': '💉',
|
||||||
|
't-rex': '🦖',
|
||||||
|
'taco': '🌮',
|
||||||
|
'tada': '🎉',
|
||||||
|
'takeout_box': '🥡',
|
||||||
|
'tangerine': '🍊',
|
||||||
|
'taxi': '🚕',
|
||||||
|
'tea': '🍵',
|
||||||
|
'teapot': '🫖',
|
||||||
|
'telephone': '☎️',
|
||||||
|
'telephone_receiver': '📞',
|
||||||
|
'telescope': '🔭',
|
||||||
|
'tennis': '🎾',
|
||||||
|
'tent': '⛺',
|
||||||
|
'thinking': '🤔',
|
||||||
|
'thought_balloon': '💭',
|
||||||
|
'thumbsdown': '👎',
|
||||||
|
'thumbsup': '👍',
|
||||||
|
'ticket': '🎫',
|
||||||
|
'tiger': '🐯',
|
||||||
|
'tiger2': '🐅',
|
||||||
|
'timer_clock': '⏲️',
|
||||||
|
'tipping_hand_person': '💁',
|
||||||
|
'tired_face': '😫',
|
||||||
|
'toilet': '🚽',
|
||||||
|
'tokyo_tower': '🗼',
|
||||||
|
'tomato': '🍅',
|
||||||
|
'tongue': '👅',
|
||||||
|
'toolbox': '🧰',
|
||||||
|
'tooth': '🦷',
|
||||||
|
'toothbrush': '🪥',
|
||||||
|
'tornado': '🌪️',
|
||||||
|
'train2': '🚆',
|
||||||
|
'triangular_flag_on_post': '🚩',
|
||||||
|
'triangular_ruler': '📐',
|
||||||
|
'trident': '🔱',
|
||||||
|
'triumph': '😤',
|
||||||
|
'trophy': '🏆',
|
||||||
|
'tropical_drink': '🍹',
|
||||||
|
'tropical_fish': '🐠',
|
||||||
|
'truck': '🚚',
|
||||||
|
'trumpet': '🎺',
|
||||||
|
'tulip': '🌷',
|
||||||
|
'tumbler_glass': '🥃',
|
||||||
|
'turkey': '🦃',
|
||||||
|
'turtle': '🐢',
|
||||||
|
'tv': '📺',
|
||||||
|
'two_hearts': '💕',
|
||||||
|
'uk': '🇬🇧',
|
||||||
|
'umbrella': '☔',
|
||||||
|
'unamused': '😒',
|
||||||
|
'underage': '🔞',
|
||||||
|
'unicorn': '🦄',
|
||||||
|
'unlock': '🔓',
|
||||||
|
'up': '🆙',
|
||||||
|
'upside_down_face': '🙃',
|
||||||
|
'us': '🇺🇸',
|
||||||
|
'v': '✌️',
|
||||||
|
'vertical_traffic_light': '🚦',
|
||||||
|
'video_camera': '📹',
|
||||||
|
'video_game': '🎮',
|
||||||
|
'violin': '🎻',
|
||||||
|
'volcano': '🌋',
|
||||||
|
'volleyball': '🏐',
|
||||||
|
'vomiting_face': '🤮',
|
||||||
|
'vulcan_salute': '🖖',
|
||||||
|
'waffle': '🧇',
|
||||||
|
'waning_crescent_moon': '🌘',
|
||||||
|
'waning_gibbous_moon': '🌖',
|
||||||
|
'wastebasket': '🗑️',
|
||||||
|
'watch': '⌚',
|
||||||
|
'water_buffalo': '🐃',
|
||||||
|
'watermelon': '🍉',
|
||||||
|
'wave': '👋',
|
||||||
|
'wavy_dash': '〰️',
|
||||||
|
'waxing_crescent_moon': '🌒',
|
||||||
|
'waxing_gibbous_moon': '🌔',
|
||||||
|
'weary': '😩',
|
||||||
|
'wedding': '💒',
|
||||||
|
'weight_lifting': '🏋️',
|
||||||
|
'whale': '🐳',
|
||||||
|
'whale2': '🐋',
|
||||||
|
'white_check_mark': '✅',
|
||||||
|
'white_circle': '⚪',
|
||||||
|
'white_flag': '🏳️',
|
||||||
|
'white_heart': '🤍',
|
||||||
|
'white_large_square': '⬜',
|
||||||
|
'white_medium_square': '◻️',
|
||||||
|
'wilted_flower': '🥀',
|
||||||
|
'window': '🪟',
|
||||||
|
'wine_glass': '🍷',
|
||||||
|
'wink': '😉',
|
||||||
|
'wolf': '🐺',
|
||||||
|
'woman': '👩',
|
||||||
|
'woozy_face': '🥴',
|
||||||
|
'world_map': '🗺️',
|
||||||
|
'worried': '😟',
|
||||||
|
'wrench': '🔧',
|
||||||
|
'wrestling': '🤼',
|
||||||
|
'writing_hand': '✍️',
|
||||||
|
'x': '❌',
|
||||||
|
'yawning_face': '🥱',
|
||||||
|
'yellow_circle': '🟡',
|
||||||
|
'yellow_heart': '💛',
|
||||||
|
'yellow_square': '🟨',
|
||||||
|
'yen': '💴',
|
||||||
|
'yo_yo': '🪀',
|
||||||
|
'yum': '😋',
|
||||||
|
'zany_face': '🤪',
|
||||||
|
'zap': '⚡',
|
||||||
|
'zebra': '🦓',
|
||||||
|
'zipper_mouth_face': '🤐',
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user