From: Dessalines Date: Wed, 4 Sep 2019 22:22:31 +0000 (-0700) Subject: Adding emoji-short-name package. X-Git-Url: http://these/git/%22https:/lemmy.ml/post/241819/%22?a=commitdiff_plain;h=d16df598fa93074d6210d4699937ce42c8b51b22;p=lemmy.git Adding emoji-short-name package. - Fixes #266 --- diff --git a/ui/package.json b/ui/package.json index 1942449e..338893dd 100644 --- a/ui/package.json +++ b/ui/package.json @@ -23,6 +23,7 @@ "autosize": "^4.0.2", "classcat": "^1.1.3", "dotenv": "^6.1.0", + "emoji-short-name": "^0.1.0", "i18next": "^17.0.9", "inferno": "^7.0.1", "inferno-i18next": "nimbusec-oss/inferno-i18next", diff --git a/ui/src/components/comment-form.tsx b/ui/src/components/comment-form.tsx index 54035fde..e18a6e3f 100644 --- a/ui/src/components/comment-form.tsx +++ b/ui/src/components/comment-form.tsx @@ -2,12 +2,12 @@ import { Component, linkEvent } from 'inferno'; import { CommentNode as CommentNodeI, CommentForm as CommentFormI, SearchForm, SearchType, SortType, UserOperation, SearchResponse } from '../interfaces'; import { Subscription } from "rxjs"; import { capitalizeFirstLetter, mentionDropdownFetchLimit, msgOp, mdToHtml, randomStr, imageUploadUrl, markdownHelpUrl } from '../utils'; -import { twemojis } from '../twemojis'; import { WebSocketService, UserService } from '../services'; import * as autosize from 'autosize'; import { i18n } from '../i18next'; import { T } from 'inferno-i18next'; import Tribute from 'tributejs/src/Tribute.js'; +import * as emojiShortName from 'emoji-short-name'; interface CommentFormProps { postId?: number; @@ -55,7 +55,7 @@ export class CommentForm extends Component { selectTemplate: (item: any) => { return `:${item.original.key}:`; }, - values: Object.entries(twemojis).map(e => {return {'key': e[0], 'val': e[1]}}), + values: Object.entries(emojiShortName).map(e => {return {'key': e[1], 'val': e[0]}}), allowSpaces: false, autocompleteMode: true, menuItemLimit: 10, diff --git a/ui/src/twemojis.ts b/ui/src/twemojis.ts deleted file mode 100644 index e8005423..00000000 --- a/ui/src/twemojis.ts +++ /dev/null @@ -1,1721 +0,0 @@ -export const twemojis = { - "grinning_face": "😀", - "grinning_face_with_big_eyes": "😃", - "grinning_face_with_smiling_eyes": "😄", - "beaming_face_with_smiling_eyes": "😁", - "grinning_squinting_face": "😆", - "grinning_face_with_sweat": "😅", - "rolling_on_the_floor_laughing": "🤣", - "face_with_tears_of_joy": "😂", - "slightly_smiling_face": "🙂", - "upside-down_face": "🙃", - "winking_face": "😉", - "smiling_face_with_smiling_eyes": "😊", - "smiling_face_with_halo": "😇", - "smiling_face_with_hearts": "🥰", - "smiling_face_with_heart-eyes": "😍", - "star-struck": "🤩", - "face_blowing_a_kiss": "😘", - "kissing_face": "😗", - "smiling_face": "☺", - "kissing_face_with_closed_eyes": "😚", - "kissing_face_with_smiling_eyes": "😙", - "face_savoring_food": "😋", - "face_with_tongue": "😛", - "winking_face_with_tongue": "😜", - "zany_face": "🤪", - "squinting_face_with_tongue": "😝", - "money-mouth_face": "🤑", - "hugging_face": "🤗", - "face_with_hand_over_mouth": "🤭", - "shushing_face": "🤫", - "thinking_face": "🤔", - "zipper-mouth_face": "🤐", - "face_with_raised_eyebrow": "🤨", - "neutral_face": "😐", - "expressionless_face": "😑", - "face_without_mouth": "😶", - "smirking_face": "😏", - "unamused_face": "😒", - "face_with_rolling_eyes": "🙄", - "grimacing_face": "😬", - "lying_face": "🤥", - "relieved_face": "😌", - "pensive_face": "😔", - "sleepy_face": "😪", - "drooling_face": "🤤", - "sleeping_face": "😴", - "face_with_medical_mask": "😷", - "face_with_thermometer": "🤒", - "face_with_head-bandage": "🤕", - "nauseated_face": "🤢", - "face_vomiting": "🤮", - "sneezing_face": "🤧", - "hot_face": "🥵", - "cold_face": "🥶", - "woozy_face": "🥴", - "dizzy_face": "😵", - "exploding_head": "🤯", - "cowboy_hat_face": "🤠", - "partying_face": "🥳", - "smiling_face_with_sunglasses": "😎", - "nerd_face": "🤓", - "face_with_monocle": "🧐", - "confused_face": "😕", - "worried_face": "😟", - "slightly_frowning_face": "🙁", - "frowning_face": "☹", - "face_with_open_mouth": "😮", - "hushed_face": "😯", - "astonished_face": "😲", - "flushed_face": "😳", - "pleading_face": "🥺", - "frowning_face_with_open_mouth": "😦", - "anguished_face": "😧", - "fearful_face": "😨", - "anxious_face_with_sweat": "😰", - "sad_but_relieved_face": "😥", - "crying_face": "😢", - "loudly_crying_face": "😭", - "face_screaming_in_fear": "😱", - "confounded_face": "😖", - "persevering_face": "😣", - "disappointed_face": "😞", - "downcast_face_with_sweat": "😓", - "weary_face": "😩", - "tired_face": "😫", - "⊛_yawning_face": "🥱", - "face_with_steam_from_nose": "😤", - "pouting_face": "😡", - "angry_face": "😠", - "face_with_symbols_on_mouth": "🤬", - "smiling_face_with_horns": "😈", - "angry_face_with_horns": "👿", - "skull": "💀", - "skull_and_crossbones": "☠", - "pile_of_poo": "💩", - "clown_face": "🤡", - "ogre": "👹", - "goblin": "👺", - "ghost": "👻", - "alien": "👽", - "alien_monster": "👾", - "robot": "🤖", - "grinning_cat": "😺", - "grinning_cat_with_smiling_eyes": "😸", - "cat_with_tears_of_joy": "😹", - "smiling_cat_with_heart-eyes": "😻", - "cat_with_wry_smile": "😼", - "kissing_cat": "😽", - "weary_cat": "🙀", - "crying_cat": "😿", - "pouting_cat": "😾", - "see-no-evil_monkey": "🙈", - "hear-no-evil_monkey": "🙉", - "speak-no-evil_monkey": "🙊", - "kiss_mark": "💋", - "love_letter": "💌", - "heart_with_arrow": "💘", - "heart_with_ribbon": "💝", - "sparkling_heart": "💖", - "growing_heart": "💗", - "beating_heart": "💓", - "revolving_hearts": "💞", - "two_hearts": "💕", - "heart_decoration": "💟", - "heart_exclamation": "❣", - "broken_heart": "💔", - "red_heart": "❤", - "orange_heart": "🧡", - "yellow_heart": "💛", - "green_heart": "💚", - "blue_heart": "💙", - "purple_heart": "💜", - "⊛_brown_heart": "🤎", - "black_heart": "🖤", - "⊛_white_heart": "🤍", - "hundred_points": "💯", - "anger_symbol": "💢", - "collision": "💥", - "dizzy": "💫", - "sweat_droplets": "💦", - "dashing_away": "💨", - "hole": "🕳", - "bomb": "💣", - "speech_balloon": "💬", - "eye_in_speech_bubble": "👁️‍🗨️", - "left_speech_bubble": "🗨", - "right_anger_bubble": "🗯", - "thought_balloon": "💭", - "zzz": "💤", - "waving_hand": "👋", - "raised_back_of_hand": "🤚", - "hand_with_fingers_splayed": "🖐", - "raised_hand": "✋", - "vulcan_salute": "🖖", - "OK_hand": "👌", - "⊛_pinching_hand": "🤏", - "victory_hand": "✌", - "crossed_fingers": "🤞", - "love-you_gesture": "🤟", - "sign_of_the_horns": "🤘", - "call_me_hand": "🤙", - "backhand_index_pointing_left": "👈", - "backhand_index_pointing_right": "👉", - "backhand_index_pointing_up": "👆", - "middle_finger": "🖕", - "backhand_index_pointing_down": "👇", - "index_pointing_up": "☝", - "thumbs_up": "👍", - "thumbs_down": "👎", - "raised_fist": "✊", - "oncoming_fist": "👊", - "left-facing_fist": "🤛", - "right-facing_fist": "🤜", - "clapping_hands": "👏", - "raising_hands": "🙌", - "open_hands": "👐", - "palms_up_together": "🤲", - "handshake": "🤝", - "folded_hands": "🙏", - "writing_hand": "✍", - "nail_polish": "💅", - "selfie": "🤳", - "flexed_biceps": "💪", - "⊛_mechanical_arm": "🦾", - "⊛_mechanical_leg": "🦿", - "leg": "🦵", - "foot": "🦶", - "ear": "👂", - "⊛_ear_with_hearing_aid": "🦻", - "nose": "👃", - "brain": "🧠", - "tooth": "🦷", - "bone": "🦴", - "eyes": "👀", - "eye": "👁", - "tongue": "👅", - "mouth": "👄", - "baby": "👶", - "child": "🧒", - "boy": "👦", - "girl": "👧", - "person": "🧑", - "person_blond_hair": "👱", - "man": "👨", - "man_beard": "🧔", - "man_blond_hair": "👱‍♂️", - "man_red_hair": "👨‍🦰", - "man_curly_hair": "👨‍🦱", - "man_white_hair": "👨‍🦳", - "man_bald": "👨‍🦲", - "woman": "👩", - "woman_blond_hair": "👱‍♀️", - "woman_red_hair": "👩‍🦰", - "woman_curly_hair": "👩‍🦱", - "woman_white_hair": "👩‍🦳", - "woman_bald": "👩‍🦲", - "older_person": "🧓", - "old_man": "👴", - "old_woman": "👵", - "person_frowning": "🙍", - "man_frowning": "🙍‍♂️", - "woman_frowning": "🙍‍♀️", - "person_pouting": "🙎", - "man_pouting": "🙎‍♂️", - "woman_pouting": "🙎‍♀️", - "person_gesturing_NO": "🙅", - "man_gesturing_NO": "🙅‍♂️", - "woman_gesturing_NO": "🙅‍♀️", - "person_gesturing_OK": "🙆", - "man_gesturing_OK": "🙆‍♂️", - "woman_gesturing_OK": "🙆‍♀️", - "person_tipping_hand": "💁", - "man_tipping_hand": "💁‍♂️", - "woman_tipping_hand": "💁‍♀️", - "person_raising_hand": "🙋", - "man_raising_hand": "🙋‍♂️", - "woman_raising_hand": "🙋‍♀️", - "⊛_deaf_person": "🧏", - "⊛_deaf_man": "🧏‍♂️", - "⊛_deaf_woman": "🧏‍♀️", - "person_bowing": "🙇", - "man_bowing": "🙇‍♂️", - "woman_bowing": "🙇‍♀️", - "person_facepalming": "🤦", - "man_facepalming": "🤦‍♂️", - "woman_facepalming": "🤦‍♀️", - "person_shrugging": "🤷", - "man_shrugging": "🤷‍♂️", - "woman_shrugging": "🤷‍♀️", - "man_health_worker": "👨‍⚕️", - "woman_health_worker": "👩‍⚕️", - "man_student": "👨‍🎓", - "woman_student": "👩‍🎓", - "man_teacher": "👨‍🏫", - "woman_teacher": "👩‍🏫", - "man_judge": "👨‍⚖️", - "woman_judge": "👩‍⚖️", - "man_farmer": "👨‍🌾", - "woman_farmer": "👩‍🌾", - "man_cook": "👨‍🍳", - "woman_cook": "👩‍🍳", - "man_mechanic": "👨‍🔧", - "woman_mechanic": "👩‍🔧", - "man_factory_worker": "👨‍🏭", - "woman_factory_worker": "👩‍🏭", - "man_office_worker": "👨‍💼", - "woman_office_worker": "👩‍💼", - "man_scientist": "👨‍🔬", - "woman_scientist": "👩‍🔬", - "man_technologist": "👨‍💻", - "woman_technologist": "👩‍💻", - "man_singer": "👨‍🎤", - "woman_singer": "👩‍🎤", - "man_artist": "👨‍🎨", - "woman_artist": "👩‍🎨", - "man_pilot": "👨‍✈️", - "woman_pilot": "👩‍✈️", - "man_astronaut": "👨‍🚀", - "woman_astronaut": "👩‍🚀", - "man_firefighter": "👨‍🚒", - "woman_firefighter": "👩‍🚒", - "police_officer": "👮", - "man_police_officer": "👮‍♂️", - "woman_police_officer": "👮‍♀️", - "detective": "🕵", - "man_detective": "🕵️‍♂️", - "woman_detective": "🕵️‍♀️", - "guard": "💂", - "man_guard": "💂‍♂️", - "woman_guard": "💂‍♀️", - "construction_worker": "👷", - "man_construction_worker": "👷‍♂️", - "woman_construction_worker": "👷‍♀️", - "prince": "🤴", - "princess": "👸", - "person_wearing_turban": "👳", - "man_wearing_turban": "👳‍♂️", - "woman_wearing_turban": "👳‍♀️", - "man_with_Chinese_cap": "👲", - "woman_with_headscarf": "🧕", - "man_in_tuxedo": "🤵", - "bride_with_veil": "👰", - "pregnant_woman": "🤰", - "breast-feeding": "🤱", - "baby_angel": "👼", - "Santa_Claus": "🎅", - "Mrs._Claus": "🤶", - "superhero": "🦸", - "man_superhero": "🦸‍♂️", - "woman_superhero": "🦸‍♀️", - "supervillain": "🦹", - "man_supervillain": "🦹‍♂️", - "woman_supervillain": "🦹‍♀️", - "mage": "🧙", - "man_mage": "🧙‍♂️", - "woman_mage": "🧙‍♀️", - "fairy": "🧚", - "man_fairy": "🧚‍♂️", - "woman_fairy": "🧚‍♀️", - "vampire": "🧛", - "man_vampire": "🧛‍♂️", - "woman_vampire": "🧛‍♀️", - "merperson": "🧜", - "merman": "🧜‍♂️", - "mermaid": "🧜‍♀️", - "elf": "🧝", - "man_elf": "🧝‍♂️", - "woman_elf": "🧝‍♀️", - "genie": "🧞", - "man_genie": "🧞‍♂️", - "woman_genie": "🧞‍♀️", - "zombie": "🧟", - "man_zombie": "🧟‍♂️", - "woman_zombie": "🧟‍♀️", - "person_getting_massage": "💆", - "man_getting_massage": "💆‍♂️", - "woman_getting_massage": "💆‍♀️", - "person_getting_haircut": "💇", - "man_getting_haircut": "💇‍♂️", - "woman_getting_haircut": "💇‍♀️", - "person_walking": "🚶", - "man_walking": "🚶‍♂️", - "woman_walking": "🚶‍♀️", - "⊛_person_standing": "🧍", - "⊛_man_standing": "🧍‍♂️", - "⊛_woman_standing": "🧍‍♀️", - "⊛_person_kneeling": "🧎", - "⊛_man_kneeling": "🧎‍♂️", - "⊛_woman_kneeling": "🧎‍♀️", - "⊛_man_with_probing_cane": "👨‍🦯", - "⊛_woman_with_probing_cane": "👩‍🦯", - "⊛_man_in_motorized_wheelchair": "👨‍🦼", - "⊛_woman_in_motorized_wheelchair": "👩‍🦼", - "⊛_man_in_manual_wheelchair": "👨‍🦽", - "⊛_woman_in_manual_wheelchair": "👩‍🦽", - "person_running": "🏃", - "man_running": "🏃‍♂️", - "woman_running": "🏃‍♀️", - "woman_dancing": "💃", - "man_dancing": "🕺", - "man_in_suit_levitating": "🕴", - "people_with_bunny_ears": "👯", - "men_with_bunny_ears": "👯‍♂️", - "women_with_bunny_ears": "👯‍♀️", - "person_in_steamy_room": "🧖", - "man_in_steamy_room": "🧖‍♂️", - "woman_in_steamy_room": "🧖‍♀️", - "person_climbing": "🧗", - "man_climbing": "🧗‍♂️", - "woman_climbing": "🧗‍♀️", - "person_fencing": "🤺", - "horse_racing": "🏇", - "skier": "⛷", - "snowboarder": "🏂", - "person_golfing": "🏌", - "man_golfing": "🏌️‍♂️", - "woman_golfing": "🏌️‍♀️", - "person_surfing": "🏄", - "man_surfing": "🏄‍♂️", - "woman_surfing": "🏄‍♀️", - "person_rowing_boat": "🚣", - "man_rowing_boat": "🚣‍♂️", - "woman_rowing_boat": "🚣‍♀️", - "person_swimming": "🏊", - "man_swimming": "🏊‍♂️", - "woman_swimming": "🏊‍♀️", - "person_bouncing_ball": "⛹", - "man_bouncing_ball": "⛹️‍♂️", - "woman_bouncing_ball": "⛹️‍♀️", - "person_lifting_weights": "🏋", - "man_lifting_weights": "🏋️‍♂️", - "woman_lifting_weights": "🏋️‍♀️", - "person_biking": "🚴", - "man_biking": "🚴‍♂️", - "woman_biking": "🚴‍♀️", - "person_mountain_biking": "🚵", - "man_mountain_biking": "🚵‍♂️", - "woman_mountain_biking": "🚵‍♀️", - "person_cartwheeling": "🤸", - "man_cartwheeling": "🤸‍♂️", - "woman_cartwheeling": "🤸‍♀️", - "people_wrestling": "🤼", - "men_wrestling": "🤼‍♂️", - "women_wrestling": "🤼‍♀️", - "person_playing_water_polo": "🤽", - "man_playing_water_polo": "🤽‍♂️", - "woman_playing_water_polo": "🤽‍♀️", - "person_playing_handball": "🤾", - "man_playing_handball": "🤾‍♂️", - "woman_playing_handball": "🤾‍♀️", - "person_juggling": "🤹", - "man_juggling": "🤹‍♂️", - "woman_juggling": "🤹‍♀️", - "person_in_lotus_position": "🧘", - "man_in_lotus_position": "🧘‍♂️", - "woman_in_lotus_position": "🧘‍♀️", - "person_taking_bath": "🛀", - "person_in_bed": "🛌", - "⊛_people_holding_hands": "🧑‍🤝‍🧑", - "women_holding_hands": "👭", - "woman_and_man_holding_hands": "👫", - "men_holding_hands": "👬", - "kiss": "💏", - "kiss_woman,_man": "👩‍❤️‍💋‍👨", - "kiss_man,_man": "👨‍❤️‍💋‍👨", - "kiss_woman,_woman": "👩‍❤️‍💋‍👩", - "couple_with_heart": "💑", - "couple_with_heart_woman,_man": "👩‍❤️‍👨", - "couple_with_heart_man,_man": "👨‍❤️‍👨", - "couple_with_heart_woman,_woman": "👩‍❤️‍👩", - "family": "👪", - "family_man,_woman,_boy": "👨‍👩‍👦", - "family_man,_woman,_girl": "👨‍👩‍👧", - "family_man,_woman,_girl,_boy": "👨‍👩‍👧‍👦", - "family_man,_woman,_boy,_boy": "👨‍👩‍👦‍👦", - "family_man,_woman,_girl,_girl": "👨‍👩‍👧‍👧", - "family_man,_man,_boy": "👨‍👨‍👦", - "family_man,_man,_girl": "👨‍👨‍👧", - "family_man,_man,_girl,_boy": "👨‍👨‍👧‍👦", - "family_man,_man,_boy,_boy": "👨‍👨‍👦‍👦", - "family_man,_man,_girl,_girl": "👨‍👨‍👧‍👧", - "family_woman,_woman,_boy": "👩‍👩‍👦", - "family_woman,_woman,_girl": "👩‍👩‍👧", - "family_woman,_woman,_girl,_boy": "👩‍👩‍👧‍👦", - "family_woman,_woman,_boy,_boy": "👩‍👩‍👦‍👦", - "family_woman,_woman,_girl,_girl": "👩‍👩‍👧‍👧", - "family_man,_boy": "👨‍👦", - "family_man,_boy,_boy": "👨‍👦‍👦", - "family_man,_girl": "👨‍👧", - "family_man,_girl,_boy": "👨‍👧‍👦", - "family_man,_girl,_girl": "👨‍👧‍👧", - "family_woman,_boy": "👩‍👦", - "family_woman,_boy,_boy": "👩‍👦‍👦", - "family_woman,_girl": "👩‍👧", - "family_woman,_girl,_boy": "👩‍👧‍👦", - "family_woman,_girl,_girl": "👩‍👧‍👧", - "speaking_head": "🗣", - "bust_in_silhouette": "👤", - "busts_in_silhouette": "👥", - "footprints": "👣", - "red_hair": "🦰", - "curly_hair": "🦱", - "white_hair": "🦳", - "bald": "🦲", - "monkey_face": "🐵", - "monkey": "🐒", - "gorilla": "🦍", - "⊛_orangutan": "🦧", - "dog_face": "🐶", - "dog": "🐕", - "⊛_guide_dog": "🦮", - "⊛_service_dog": "🐕‍🦺", - "poodle": "🐩", - "wolf": "🐺", - "fox": "🦊", - "raccoon": "🦝", - "cat_face": "🐱", - "cat": "🐈", - "lion": "🦁", - "tiger_face": "🐯", - "tiger": "🐅", - "leopard": "🐆", - "horse_face": "🐴", - "horse": "🐎", - "unicorn": "🦄", - "zebra": "🦓", - "deer": "🦌", - "cow_face": "🐮", - "ox": "🐂", - "water_buffalo": "🐃", - "cow": "🐄", - "pig_face": "🐷", - "pig": "🐖", - "boar": "🐗", - "pig_nose": "🐽", - "ram": "🐏", - "ewe": "🐑", - "goat": "🐐", - "camel": "🐪", - "two-hump_camel": "🐫", - "llama": "🦙", - "giraffe": "🦒", - "elephant": "🐘", - "rhinoceros": "🦏", - "hippopotamus": "🦛", - "mouse_face": "🐭", - "mouse": "🐁", - "rat": "🐀", - "hamster": "🐹", - "rabbit_face": "🐰", - "rabbit": "🐇", - "chipmunk": "🐿", - "hedgehog": "🦔", - "bat": "🦇", - "bear": "🐻", - "koala": "🐨", - "panda": "🐼", - "⊛_sloth": "🦥", - "⊛_otter": "🦦", - "⊛_skunk": "🦨", - "kangaroo": "🦘", - "badger": "🦡", - "paw_prints": "🐾", - "turkey": "🦃", - "chicken": "🐔", - "rooster": "🐓", - "hatching_chick": "🐣", - "baby_chick": "🐤", - "front-facing_baby_chick": "🐥", - "bird": "🐦", - "penguin": "🐧", - "dove": "🕊", - "eagle": "🦅", - "duck": "🦆", - "swan": "🦢", - "owl": "🦉", - "⊛_flamingo": "🦩", - "peacock": "🦚", - "parrot": "🦜", - "frog": "🐸", - "crocodile": "🐊", - "turtle": "🐢", - "lizard": "🦎", - "snake": "🐍", - "dragon_face": "🐲", - "dragon": "🐉", - "sauropod": "🦕", - "T-Rex": "🦖", - "spouting_whale": "🐳", - "whale": "🐋", - "dolphin": "🐬", - "fish": "🐟", - "tropical_fish": "🐠", - "blowfish": "🐡", - "shark": "🦈", - "octopus": "🐙", - "spiral_shell": "🐚", - "snail": "🐌", - "butterfly": "🦋", - "bug": "🐛", - "ant": "🐜", - "honeybee": "🐝", - "lady_beetle": "🐞", - "cricket": "🦗", - "spider": "🕷", - "spider_web": "🕸", - "scorpion": "🦂", - "mosquito": "🦟", - "microbe": "🦠", - "bouquet": "💐", - "cherry_blossom": "🌸", - "white_flower": "💮", - "rosette": "🏵", - "rose": "🌹", - "wilted_flower": "🥀", - "hibiscus": "🌺", - "sunflower": "🌻", - "blossom": "🌼", - "tulip": "🌷", - "seedling": "🌱", - "evergreen_tree": "🌲", - "deciduous_tree": "🌳", - "palm_tree": "🌴", - "cactus": "🌵", - "sheaf_of_rice": "🌾", - "herb": "🌿", - "shamrock": "☘", - "four_leaf_clover": "🍀", - "maple_leaf": "🍁", - "fallen_leaf": "🍂", - "leaf_fluttering_in_wind": "🍃", - "grapes": "🍇", - "melon": "🍈", - "watermelon": "🍉", - "tangerine": "🍊", - "lemon": "🍋", - "banana": "🍌", - "pineapple": "🍍", - "mango": "🥭", - "red_apple": "🍎", - "green_apple": "🍏", - "pear": "🍐", - "peach": "🍑", - "cherries": "🍒", - "strawberry": "🍓", - "kiwi_fruit": "🥝", - "tomato": "🍅", - "coconut": "🥥", - "avocado": "🥑", - "eggplant": "🍆", - "potato": "🥔", - "carrot": "🥕", - "ear_of_corn": "🌽", - "hot_pepper": "🌶", - "cucumber": "🥒", - "leafy_green": "🥬", - "broccoli": "🥦", - "⊛_garlic": "🧄", - "⊛_onion": "🧅", - "mushroom": "🍄", - "peanuts": "🥜", - "chestnut": "🌰", - "bread": "🍞", - "croissant": "🥐", - "baguette_bread": "🥖", - "pretzel": "🥨", - "bagel": "🥯", - "pancakes": "🥞", - "⊛_waffle": "🧇", - "cheese_wedge": "🧀", - "meat_on_bone": "🍖", - "poultry_leg": "🍗", - "cut_of_meat": "🥩", - "bacon": "🥓", - "hamburger": "🍔", - "french_fries": "🍟", - "pizza": "🍕", - "hot_dog": "🌭", - "sandwich": "🥪", - "taco": "🌮", - "burrito": "🌯", - "stuffed_flatbread": "🥙", - "⊛_falafel": "🧆", - "egg": "🥚", - "cooking": "🍳", - "shallow_pan_of_food": "🥘", - "pot_of_food": "🍲", - "bowl_with_spoon": "🥣", - "green_salad": "🥗", - "popcorn": "🍿", - "⊛_butter": "🧈", - "salt": "🧂", - "canned_food": "🥫", - "bento_box": "🍱", - "rice_cracker": "🍘", - "rice_ball": "🍙", - "cooked_rice": "🍚", - "curry_rice": "🍛", - "steaming_bowl": "🍜", - "spaghetti": "🍝", - "roasted_sweet_potato": "🍠", - "oden": "🍢", - "sushi": "🍣", - "fried_shrimp": "🍤", - "fish_cake_with_swirl": "🍥", - "moon_cake": "🥮", - "dango": "🍡", - "dumpling": "🥟", - "fortune_cookie": "🥠", - "takeout_box": "🥡", - "crab": "🦀", - "lobster": "🦞", - "shrimp": "🦐", - "squid": "🦑", - "⊛_oyster": "🦪", - "soft_ice_cream": "🍦", - "shaved_ice": "🍧", - "ice_cream": "🍨", - "doughnut": "🍩", - "cookie": "🍪", - "birthday_cake": "🎂", - "shortcake": "🍰", - "cupcake": "🧁", - "pie": "🥧", - "chocolate_bar": "🍫", - "candy": "🍬", - "lollipop": "🍭", - "custard": "🍮", - "honey_pot": "🍯", - "baby_bottle": "🍼", - "glass_of_milk": "🥛", - "hot_beverage": "☕", - "teacup_without_handle": "🍵", - "sake": "🍶", - "bottle_with_popping_cork": "🍾", - "wine_glass": "🍷", - "cocktail_glass": "🍸", - "tropical_drink": "🍹", - "beer_mug": "🍺", - "clinking_beer_mugs": "🍻", - "clinking_glasses": "🥂", - "tumbler_glass": "🥃", - "cup_with_straw": "🥤", - "⊛_beverage_box": "🧃", - "⊛_mate": "🧉", - "⊛_ice": "🧊", - "chopsticks": "🥢", - "fork_and_knife_with_plate": "🍽", - "fork_and_knife": "🍴", - "spoon": "🥄", - "kitchen_knife": "🔪", - "amphora": "🏺", - "globe_showing_Europe-Africa": "🌍", - "globe_showing_Americas": "🌎", - "globe_showing_Asia-Australia": "🌏", - "globe_with_meridians": "🌐", - "world_map": "🗺", - "map_of_Japan": "🗾", - "compass": "🧭", - "snow-capped_mountain": "🏔", - "mountain": "⛰", - "volcano": "🌋", - "mount_fuji": "🗻", - "camping": "🏕", - "beach_with_umbrella": "🏖", - "desert": "🏜", - "desert_island": "🏝", - "national_park": "🏞", - "stadium": "🏟", - "classical_building": "🏛", - "building_construction": "🏗", - "brick": "🧱", - "houses": "🏘", - "derelict_house": "🏚", - "house": "🏠", - "house_with_garden": "🏡", - "office_building": "🏢", - "Japanese_post_office": "🏣", - "post_office": "🏤", - "hospital": "🏥", - "bank": "🏦", - "hotel": "🏨", - "love_hotel": "🏩", - "convenience_store": "🏪", - "school": "🏫", - "department_store": "🏬", - "factory": "🏭", - "Japanese_castle": "🏯", - "castle": "🏰", - "wedding": "💒", - "Tokyo_tower": "🗼", - "Statue_of_Liberty": "🗽", - "church": "⛪", - "mosque": "🕌", - "⊛_hindu_temple": "🛕", - "synagogue": "🕍", - "shinto_shrine": "⛩", - "kaaba": "🕋", - "fountain": "⛲", - "tent": "⛺", - "foggy": "🌁", - "night_with_stars": "🌃", - "cityscape": "🏙", - "sunrise_over_mountains": "🌄", - "sunrise": "🌅", - "cityscape_at_dusk": "🌆", - "sunset": "🌇", - "bridge_at_night": "🌉", - "hot_springs": "♨", - "carousel_horse": "🎠", - "ferris_wheel": "🎡", - "roller_coaster": "🎢", - "barber_pole": "💈", - "circus_tent": "🎪", - "locomotive": "🚂", - "railway_car": "🚃", - "high-speed_train": "🚄", - "bullet_train": "🚅", - "train": "🚆", - "metro": "🚇", - "light_rail": "🚈", - "station": "🚉", - "tram": "🚊", - "monorail": "🚝", - "mountain_railway": "🚞", - "tram_car": "🚋", - "bus": "🚌", - "oncoming_bus": "🚍", - "trolleybus": "🚎", - "minibus": "🚐", - "ambulance": "🚑", - "fire_engine": "🚒", - "police_car": "🚓", - "oncoming_police_car": "🚔", - "taxi": "🚕", - "oncoming_taxi": "🚖", - "automobile": "🚗", - "oncoming_automobile": "🚘", - "sport_utility_vehicle": "🚙", - "delivery_truck": "🚚", - "articulated_lorry": "🚛", - "tractor": "🚜", - "racing_car": "🏎", - "motorcycle": "🏍", - "motor_scooter": "🛵", - "⊛_manual_wheelchair": "🦽", - "⊛_motorized_wheelchair": "🦼", - "⊛_auto_rickshaw": "🛺", - "bicycle": "🚲", - "kick_scooter": "🛴", - "skateboard": "🛹", - "bus_stop": "🚏", - "motorway": "🛣", - "railway_track": "🛤", - "oil_drum": "🛢", - "fuel_pump": "⛽", - "police_car_light": "🚨", - "horizontal_traffic_light": "🚥", - "vertical_traffic_light": "🚦", - "stop_sign": "🛑", - "construction": "🚧", - "anchor": "⚓", - "sailboat": "⛵", - "canoe": "🛶", - "speedboat": "🚤", - "passenger_ship": "🛳", - "ferry": "⛴", - "motor_boat": "🛥", - "ship": "🚢", - "airplane": "✈", - "small_airplane": "🛩", - "airplane_departure": "🛫", - "airplane_arrival": "🛬", - "⊛_parachute": "🪂", - "seat": "💺", - "helicopter": "🚁", - "suspension_railway": "🚟", - "mountain_cableway": "🚠", - "aerial_tramway": "🚡", - "satellite": "🛰", - "rocket": "🚀", - "flying_saucer": "🛸", - "bellhop_bell": "🛎", - "luggage": "🧳", - "hourglass_done": "⌛", - "hourglass_not_done": "⏳", - "watch": "⌚", - "alarm_clock": "⏰", - "stopwatch": "⏱", - "timer_clock": "⏲", - "mantelpiece_clock": "🕰", - "twelve_o’clock": "🕛", - "twelve-thirty": "🕧", - "one_o’clock": "🕐", - "one-thirty": "🕜", - "two_o’clock": "🕑", - "two-thirty": "🕝", - "three_o’clock": "🕒", - "three-thirty": "🕞", - "four_o’clock": "🕓", - "four-thirty": "🕟", - "five_o’clock": "🕔", - "five-thirty": "🕠", - "six_o’clock": "🕕", - "six-thirty": "🕡", - "seven_o’clock": "🕖", - "seven-thirty": "🕢", - "eight_o’clock": "🕗", - "eight-thirty": "🕣", - "nine_o’clock": "🕘", - "nine-thirty": "🕤", - "ten_o’clock": "🕙", - "ten-thirty": "🕥", - "eleven_o’clock": "🕚", - "eleven-thirty": "🕦", - "new_moon": "🌑", - "waxing_crescent_moon": "🌒", - "first_quarter_moon": "🌓", - "waxing_gibbous_moon": "🌔", - "full_moon": "🌕", - "waning_gibbous_moon": "🌖", - "last_quarter_moon": "🌗", - "waning_crescent_moon": "🌘", - "crescent_moon": "🌙", - "new_moon_face": "🌚", - "first_quarter_moon_face": "🌛", - "last_quarter_moon_face": "🌜", - "thermometer": "🌡", - "sun": "☀", - "full_moon_face": "🌝", - "sun_with_face": "🌞", - "⊛_ringed_planet": "🪐", - "star": "⭐", - "glowing_star": "🌟", - "shooting_star": "🌠", - "milky_way": "🌌", - "cloud": "☁", - "sun_behind_cloud": "⛅", - "cloud_with_lightning_and_rain": "⛈", - "sun_behind_small_cloud": "🌤", - "sun_behind_large_cloud": "🌥", - "sun_behind_rain_cloud": "🌦", - "cloud_with_rain": "🌧", - "cloud_with_snow": "🌨", - "cloud_with_lightning": "🌩", - "tornado": "🌪", - "fog": "🌫", - "wind_face": "🌬", - "cyclone": "🌀", - "rainbow": "🌈", - "closed_umbrella": "🌂", - "umbrella": "☂", - "umbrella_with_rain_drops": "☔", - "umbrella_on_ground": "⛱", - "high_voltage": "⚡", - "snowflake": "❄", - "snowman": "☃", - "snowman_without_snow": "⛄", - "comet": "☄", - "fire": "🔥", - "droplet": "💧", - "water_wave": "🌊", - "jack-o-lantern": "🎃", - "Christmas_tree": "🎄", - "fireworks": "🎆", - "sparkler": "🎇", - "firecracker": "🧨", - "sparkles": "✨", - "balloon": "🎈", - "party_popper": "🎉", - "confetti_ball": "🎊", - "tanabata_tree": "🎋", - "pine_decoration": "🎍", - "Japanese_dolls": "🎎", - "carp_streamer": "🎏", - "wind_chime": "🎐", - "moon_viewing_ceremony": "🎑", - "red_envelope": "🧧", - "ribbon": "🎀", - "wrapped_gift": "🎁", - "reminder_ribbon": "🎗", - "admission_tickets": "🎟", - "ticket": "🎫", - "military_medal": "🎖", - "trophy": "🏆", - "sports_medal": "🏅", - "1st_place_medal": "🥇", - "2nd_place_medal": "🥈", - "3rd_place_medal": "🥉", - "soccer_ball": "⚽", - "baseball": "⚾", - "softball": "🥎", - "basketball": "🏀", - "volleyball": "🏐", - "american_football": "🏈", - "rugby_football": "🏉", - "tennis": "🎾", - "flying_disc": "🥏", - "bowling": "🎳", - "cricket_game": "🏏", - "field_hockey": "🏑", - "ice_hockey": "🏒", - "lacrosse": "🥍", - "ping_pong": "🏓", - "badminton": "🏸", - "boxing_glove": "🥊", - "martial_arts_uniform": "🥋", - "goal_net": "🥅", - "flag_in_hole": "⛳", - "ice_skate": "⛸", - "fishing_pole": "🎣", - "⊛_diving_mask": "🤿", - "running_shirt": "🎽", - "skis": "🎿", - "sled": "🛷", - "curling_stone": "🥌", - "direct_hit": "🎯", - "⊛_yo-yo": "🪀", - "⊛_kite": "🪁", - "pool_8_ball": "🎱", - "crystal_ball": "🔮", - "nazar_amulet": "🧿", - "video_game": "🎮", - "joystick": "🕹", - "slot_machine": "🎰", - "game_die": "🎲", - "puzzle_piece": "🧩", - "teddy_bear": "🧸", - "spade_suit": "♠", - "heart_suit": "♥", - "diamond_suit": "♦", - "club_suit": "♣", - "chess_pawn": "♟", - "joker": "🃏", - "mahjong_red_dragon": "🀄", - "flower_playing_cards": "🎴", - "performing_arts": "🎭", - "framed_picture": "🖼", - "artist_palette": "🎨", - "thread": "🧵", - "yarn": "🧶", - "glasses": "👓", - "sunglasses": "🕶", - "goggles": "🥽", - "lab_coat": "🥼", - "⊛_safety_vest": "🦺", - "necktie": "👔", - "t-shirt": "👕", - "jeans": "👖", - "scarf": "🧣", - "gloves": "🧤", - "coat": "🧥", - "socks": "🧦", - "dress": "👗", - "kimono": "👘", - "⊛_sari": "🥻", - "⊛_one-piece_swimsuit": "🩱", - "⊛_briefs": "🩲", - "⊛_shorts": "🩳", - "bikini": "👙", - "woman’s_clothes": "👚", - "purse": "👛", - "handbag": "👜", - "clutch_bag": "👝", - "shopping_bags": "🛍", - "backpack": "🎒", - "man’s_shoe": "👞", - "running_shoe": "👟", - "hiking_boot": "🥾", - "flat_shoe": "🥿", - "high-heeled_shoe": "👠", - "woman’s_sandal": "👡", - "⊛_ballet_shoes": "🩰", - "woman’s_boot": "👢", - "crown": "👑", - "woman’s_hat": "👒", - "top_hat": "🎩", - "graduation_cap": "🎓", - "billed_cap": "🧢", - "rescue_worker’s_helmet": "⛑", - "prayer_beads": "📿", - "lipstick": "💄", - "ring": "💍", - "gem_stone": "💎", - "muted_speaker": "🔇", - "speaker_low_volume": "🔈", - "speaker_medium_volume": "🔉", - "speaker_high_volume": "🔊", - "loudspeaker": "📢", - "megaphone": "📣", - "postal_horn": "📯", - "bell": "🔔", - "bell_with_slash": "🔕", - "musical_score": "🎼", - "musical_note": "🎵", - "musical_notes": "🎶", - "studio_microphone": "🎙", - "level_slider": "🎚", - "control_knobs": "🎛", - "microphone": "🎤", - "headphone": "🎧", - "radio": "📻", - "saxophone": "🎷", - "guitar": "🎸", - "musical_keyboard": "🎹", - "trumpet": "🎺", - "violin": "🎻", - "⊛_banjo": "🪕", - "drum": "🥁", - "mobile_phone": "📱", - "mobile_phone_with_arrow": "📲", - "telephone": "☎", - "telephone_receiver": "📞", - "pager": "📟", - "fax_machine": "📠", - "battery": "🔋", - "electric_plug": "🔌", - "laptop_computer": "💻", - "desktop_computer": "🖥", - "printer": "🖨", - "keyboard": "⌨", - "computer_mouse": "🖱", - "trackball": "🖲", - "computer_disk": "💽", - "floppy_disk": "💾", - "optical_disk": "💿", - "dvd": "📀", - "abacus": "🧮", - "movie_camera": "🎥", - "film_frames": "🎞", - "film_projector": "📽", - "clapper_board": "🎬", - "television": "📺", - "camera": "📷", - "camera_with_flash": "📸", - "video_camera": "📹", - "videocassette": "📼", - "magnifying_glass_tilted_left": "🔍", - "magnifying_glass_tilted_right": "🔎", - "candle": "🕯", - "light_bulb": "💡", - "flashlight": "🔦", - "red_paper_lantern": "🏮", - "⊛_diya_lamp": "🪔", - "notebook_with_decorative_cover": "📔", - "closed_book": "📕", - "open_book": "📖", - "green_book": "📗", - "blue_book": "📘", - "orange_book": "📙", - "books": "📚", - "notebook": "📓", - "ledger": "📒", - "page_with_curl": "📃", - "scroll": "📜", - "page_facing_up": "📄", - "newspaper": "📰", - "rolled-up_newspaper": "🗞", - "bookmark_tabs": "📑", - "bookmark": "🔖", - "label": "🏷", - "money_bag": "💰", - "yen_banknote": "💴", - "dollar_banknote": "💵", - "euro_banknote": "💶", - "pound_banknote": "💷", - "money_with_wings": "💸", - "credit_card": "💳", - "receipt": "🧾", - "chart_increasing_with_yen": "💹", - "currency_exchange": "💱", - "heavy_dollar_sign": "💲", - "envelope": "✉", - "e-mail": "📧", - "incoming_envelope": "📨", - "envelope_with_arrow": "📩", - "outbox_tray": "📤", - "inbox_tray": "📥", - "package": "📦", - "closed_mailbox_with_raised_flag": "📫", - "closed_mailbox_with_lowered_flag": "📪", - "open_mailbox_with_raised_flag": "📬", - "open_mailbox_with_lowered_flag": "📭", - "postbox": "📮", - "ballot_box_with_ballot": "🗳", - "pencil": "✏", - "black_nib": "✒", - "fountain_pen": "🖋", - "pen": "🖊", - "paintbrush": "🖌", - "crayon": "🖍", - "memo": "📝", - "briefcase": "💼", - "file_folder": "📁", - "open_file_folder": "📂", - "card_index_dividers": "🗂", - "calendar": "📅", - "tear-off_calendar": "📆", - "spiral_notepad": "🗒", - "spiral_calendar": "🗓", - "card_index": "📇", - "chart_increasing": "📈", - "chart_decreasing": "📉", - "bar_chart": "📊", - "clipboard": "📋", - "pushpin": "📌", - "round_pushpin": "📍", - "paperclip": "📎", - "linked_paperclips": "🖇", - "straight_ruler": "📏", - "triangular_ruler": "📐", - "scissors": "✂", - "card_file_box": "🗃", - "file_cabinet": "🗄", - "wastebasket": "🗑", - "locked": "🔒", - "unlocked": "🔓", - "locked_with_pen": "🔏", - "locked_with_key": "🔐", - "key": "🔑", - "old_key": "🗝", - "hammer": "🔨", - "⊛_axe": "🪓", - "pick": "⛏", - "hammer_and_pick": "⚒", - "hammer_and_wrench": "🛠", - "dagger": "🗡", - "crossed_swords": "⚔", - "pistol": "🔫", - "bow_and_arrow": "🏹", - "shield": "🛡", - "wrench": "🔧", - "nut_and_bolt": "🔩", - "gear": "⚙", - "clamp": "🗜", - "balance_scale": "⚖", - "⊛_probing_cane": "🦯", - "link": "🔗", - "chains": "⛓", - "toolbox": "🧰", - "magnet": "🧲", - "alembic": "⚗", - "test_tube": "🧪", - "petri_dish": "🧫", - "dna": "🧬", - "microscope": "🔬", - "telescope": "🔭", - "satellite_antenna": "📡", - "syringe": "💉", - "⊛_drop_of_blood": "🩸", - "pill": "💊", - "⊛_adhesive_bandage": "🩹", - "⊛_stethoscope": "🩺", - "door": "🚪", - "bed": "🛏", - "couch_and_lamp": "🛋", - "⊛_chair": "🪑", - "toilet": "🚽", - "shower": "🚿", - "bathtub": "🛁", - "⊛_razor": "🪒", - "lotion_bottle": "🧴", - "safety_pin": "🧷", - "broom": "🧹", - "basket": "🧺", - "roll_of_paper": "🧻", - "soap": "🧼", - "sponge": "🧽", - "fire_extinguisher": "🧯", - "shopping_cart": "🛒", - "cigarette": "🚬", - "coffin": "⚰", - "funeral_urn": "⚱", - "moai": "🗿", - "ATM_sign": "🏧", - "litter_in_bin_sign": "🚮", - "potable_water": "🚰", - "wheelchair_symbol": "♿", - "men’s_room": "🚹", - "women’s_room": "🚺", - "restroom": "🚻", - "baby_symbol": "🚼", - "water_closet": "🚾", - "passport_control": "🛂", - "customs": "🛃", - "baggage_claim": "🛄", - "left_luggage": "🛅", - "warning": "⚠", - "children_crossing": "🚸", - "no_entry": "⛔", - "prohibited": "🚫", - "no_bicycles": "🚳", - "no_smoking": "🚭", - "no_littering": "🚯", - "non-potable_water": "🚱", - "no_pedestrians": "🚷", - "no_mobile_phones": "📵", - "no_one_under_eighteen": "🔞", - "radioactive": "☢", - "biohazard": "☣", - "up_arrow": "⬆", - "up-right_arrow": "↗", - "right_arrow": "➡", - "down-right_arrow": "↘", - "down_arrow": "⬇", - "down-left_arrow": "↙", - "left_arrow": "⬅", - "up-left_arrow": "↖", - "up-down_arrow": "↕", - "left-right_arrow": "↔", - "right_arrow_curving_left": "↩", - "left_arrow_curving_right": "↪", - "right_arrow_curving_up": "⤴", - "right_arrow_curving_down": "⤵", - "clockwise_vertical_arrows": "🔃", - "counterclockwise_arrows_button": "🔄", - "BACK_arrow": "🔙", - "END_arrow": "🔚", - "ON!_arrow": "🔛", - "SOON_arrow": "🔜", - "TOP_arrow": "🔝", - "place_of_worship": "🛐", - "atom_symbol": "⚛", - "om": "🕉", - "star_of_David": "✡", - "wheel_of_dharma": "☸", - "yin_yang": "☯", - "latin_cross": "✝", - "orthodox_cross": "☦", - "star_and_crescent": "☪", - "peace_symbol": "☮", - "menorah": "🕎", - "dotted_six-pointed_star": "🔯", - "Aries": "♈", - "Taurus": "♉", - "Gemini": "♊", - "Cancer": "♋", - "Leo": "♌", - "Virgo": "♍", - "Libra": "♎", - "Scorpio": "♏", - "Sagittarius": "♐", - "Capricorn": "♑", - "Aquarius": "♒", - "Pisces": "♓", - "Ophiuchus": "⛎", - "shuffle_tracks_button": "🔀", - "repeat_button": "🔁", - "repeat_single_button": "🔂", - "play_button": "▶", - "fast-forward_button": "⏩", - "next_track_button": "⏭", - "play_or_pause_button": "⏯", - "reverse_button": "◀", - "fast_reverse_button": "⏪", - "last_track_button": "⏮", - "upwards_button": "🔼", - "fast_up_button": "⏫", - "downwards_button": "🔽", - "fast_down_button": "⏬", - "pause_button": "⏸", - "stop_button": "⏹", - "record_button": "⏺", - "eject_button": "⏏", - "cinema": "🎦", - "dim_button": "🔅", - "bright_button": "🔆", - "antenna_bars": "📶", - "vibration_mode": "📳", - "mobile_phone_off": "📴", - "female_sign": "♀", - "male_sign": "♂", - "medical_symbol": "⚕", - "infinity": "♾", - "recycling_symbol": "♻", - "fleur-de-lis": "⚜", - "trident_emblem": "🔱", - "name_badge": "📛", - "Japanese_symbol_for_beginner": "🔰", - "hollow_red_circle": "⭕", - "check_mark_button": "✅", - "check_box_with_check": "☑", - "check_mark": "✔", - "multiplication_sign": "✖", - "cross_mark": "❌", - "cross_mark_button": "❎", - "plus_sign": "➕", - "minus_sign": "➖", - "division_sign": "➗", - "curly_loop": "➰", - "double_curly_loop": "➿", - "part_alternation_mark": "〽", - "eight-spoked_asterisk": "✳", - "eight-pointed_star": "✴", - "sparkle": "❇", - "double_exclamation_mark": "‼", - "exclamation_question_mark": "⁉", - "question_mark": "❓", - "white_question_mark": "❔", - "white_exclamation_mark": "❕", - "exclamation_mark": "❗", - "wavy_dash": "〰", - "copyright": "©", - "registered": "®", - "trade_mark": "™", - "keycap_#": "#️⃣", - "keycap_*": "*️⃣", - "keycap_0": "0️⃣", - "keycap_1": "1️⃣", - "keycap_2": "2️⃣", - "keycap_3": "3️⃣", - "keycap_4": "4️⃣", - "keycap_5": "5️⃣", - "keycap_6": "6️⃣", - "keycap_7": "7️⃣", - "keycap_8": "8️⃣", - "keycap_9": "9️⃣", - "keycap_10": "🔟", - "input_latin_uppercase": "🔠", - "input_latin_lowercase": "🔡", - "input_numbers": "🔢", - "input_symbols": "🔣", - "input_latin_letters": "🔤", - "A_button_(blood_type)": "🅰", - "AB_button_(blood_type)": "🆎", - "B_button_(blood_type)": "🅱", - "CL_button": "🆑", - "COOL_button": "🆒", - "FREE_button": "🆓", - "information": "ℹ", - "ID_button": "🆔", - "circled_M": "Ⓜ", - "NEW_button": "🆕", - "NG_button": "🆖", - "O_button_(blood_type)": "🅾", - "OK_button": "🆗", - "P_button": "🅿", - "SOS_button": "🆘", - "UP!_button": "🆙", - "VS_button": "🆚", - "Japanese_“here”_button": "🈁", - "Japanese_“service_charge”_button": "🈂", - "Japanese_“monthly_amount”_button": "🈷", - "Japanese_“not_free_of_charge”_button": "🈶", - "Japanese_“reserved”_button": "🈯", - "Japanese_“bargain”_button": "🉐", - "Japanese_“discount”_button": "🈹", - "Japanese_“free_of_charge”_button": "🈚", - "Japanese_“prohibited”_button": "🈲", - "Japanese_“acceptable”_button": "🉑", - "Japanese_“application”_button": "🈸", - "Japanese_“passing_grade”_button": "🈴", - "Japanese_“vacancy”_button": "🈳", - "Japanese_“congratulations”_button": "㊗", - "Japanese_“secret”_button": "㊙", - "Japanese_“open_for_business”_button": "🈺", - "Japanese_“no_vacancy”_button": "🈵", - "red_circle": "🔴", - "⊛_orange_circle": "🟠", - "⊛_yellow_circle": "🟡", - "⊛_green_circle": "🟢", - "blue_circle": "🔵", - "⊛_purple_circle": "🟣", - "⊛_brown_circle": "🟤", - "black_circle": "⚫", - "white_circle": "⚪", - "⊛_red_square": "🟥", - "⊛_orange_square": "🟧", - "⊛_yellow_square": "🟨", - "⊛_green_square": "🟩", - "⊛_blue_square": "🟦", - "⊛_purple_square": "🟪", - "⊛_brown_square": "🟫", - "black_large_square": "⬛", - "white_large_square": "⬜", - "black_medium_square": "◼", - "white_medium_square": "◻", - "black_medium-small_square": "◾", - "white_medium-small_square": "◽", - "black_small_square": "▪", - "white_small_square": "▫", - "large_orange_diamond": "🔶", - "large_blue_diamond": "🔷", - "small_orange_diamond": "🔸", - "small_blue_diamond": "🔹", - "red_triangle_pointed_up": "🔺", - "red_triangle_pointed_down": "🔻", - "diamond_with_a_dot": "💠", - "radio_button": "🔘", - "white_square_button": "🔳", - "black_square_button": "🔲", - "chequered_flag": "🏁", - "triangular_flag": "🚩", - "crossed_flags": "🎌", - "black_flag": "🏴", - "white_flag": "🏳", - "rainbow_flag": "🏳️‍🌈", - "pirate_flag": "🏴‍☠️", - "flag_Ascension_Island": "🇦🇨", - "flag_Andorra": "🇦🇩", - "flag_United_Arab_Emirates": "🇦🇪", - "flag_Afghanistan": "🇦🇫", - "flag_Antigua_&_Barbuda": "🇦🇬", - "flag_Anguilla": "🇦🇮", - "flag_Albania": "🇦🇱", - "flag_Armenia": "🇦🇲", - "flag_Angola": "🇦🇴", - "flag_Antarctica": "🇦🇶", - "flag_Argentina": "🇦🇷", - "flag_American_Samoa": "🇦🇸", - "flag_Austria": "🇦🇹", - "flag_Australia": "🇦🇺", - "flag_Aruba": "🇦🇼", - "flag_Åland_Islands": "🇦🇽", - "flag_Azerbaijan": "🇦🇿", - "flag_Bosnia_&_Herzegovina": "🇧🇦", - "flag_Barbados": "🇧🇧", - "flag_Bangladesh": "🇧🇩", - "flag_Belgium": "🇧🇪", - "flag_Burkina_Faso": "🇧🇫", - "flag_Bulgaria": "🇧🇬", - "flag_Bahrain": "🇧🇭", - "flag_Burundi": "🇧🇮", - "flag_Benin": "🇧🇯", - "flag_St._Barthélemy": "🇧🇱", - "flag_Bermuda": "🇧🇲", - "flag_Brunei": "🇧🇳", - "flag_Bolivia": "🇧🇴", - "flag_Caribbean_Netherlands": "🇧🇶", - "flag_Brazil": "🇧🇷", - "flag_Bahamas": "🇧🇸", - "flag_Bhutan": "🇧🇹", - "flag_Bouvet_Island": "🇧🇻", - "flag_Botswana": "🇧🇼", - "flag_Belarus": "🇧🇾", - "flag_Belize": "🇧🇿", - "flag_Canada": "🇨🇦", - "flag_Cocos_(Keeling)_Islands": "🇨🇨", - "flag_Congo_-_Kinshasa": "🇨🇩", - "flag_Central_African_Republic": "🇨🇫", - "flag_Congo_-_Brazzaville": "🇨🇬", - "flag_Switzerland": "🇨🇭", - "flag_Côte_d’Ivoire": "🇨🇮", - "flag_Cook_Islands": "🇨🇰", - "flag_Chile": "🇨🇱", - "flag_Cameroon": "🇨🇲", - "flag_China": "🇨🇳", - "flag_Colombia": "🇨🇴", - "flag_Clipperton_Island": "🇨🇵", - "flag_Costa_Rica": "🇨🇷", - "flag_Cuba": "🇨🇺", - "flag_Cape_Verde": "🇨🇻", - "flag_Curaçao": "🇨🇼", - "flag_Christmas_Island": "🇨🇽", - "flag_Cyprus": "🇨🇾", - "flag_Czechia": "🇨🇿", - "flag_Germany": "🇩🇪", - "flag_Diego_Garcia": "🇩🇬", - "flag_Djibouti": "🇩🇯", - "flag_Denmark": "🇩🇰", - "flag_Dominica": "🇩🇲", - "flag_Dominican_Republic": "🇩🇴", - "flag_Algeria": "🇩🇿", - "flag_Ceuta_&_Melilla": "🇪🇦", - "flag_Ecuador": "🇪🇨", - "flag_Estonia": "🇪🇪", - "flag_Egypt": "🇪🇬", - "flag_Western_Sahara": "🇪🇭", - "flag_Eritrea": "🇪🇷", - "flag_Spain": "🇪🇸", - "flag_Ethiopia": "🇪🇹", - "flag_European_Union": "🇪🇺", - "flag_Finland": "🇫🇮", - "flag_Fiji": "🇫🇯", - "flag_Falkland_Islands": "🇫🇰", - "flag_Micronesia": "🇫🇲", - "flag_Faroe_Islands": "🇫🇴", - "flag_France": "🇫🇷", - "flag_Gabon": "🇬🇦", - "flag_United_Kingdom": "🇬🇧", - "flag_Grenada": "🇬🇩", - "flag_Georgia": "🇬🇪", - "flag_French_Guiana": "🇬🇫", - "flag_Guernsey": "🇬🇬", - "flag_Ghana": "🇬🇭", - "flag_Gibraltar": "🇬🇮", - "flag_Greenland": "🇬🇱", - "flag_Gambia": "🇬🇲", - "flag_Guinea": "🇬🇳", - "flag_Guadeloupe": "🇬🇵", - "flag_Equatorial_Guinea": "🇬🇶", - "flag_Greece": "🇬🇷", - "flag_South_Georgia_&_South_Sandwich_Islands": "🇬🇸", - "flag_Guatemala": "🇬🇹", - "flag_Guam": "🇬🇺", - "flag_Guinea-Bissau": "🇬🇼", - "flag_Guyana": "🇬🇾", - "flag_Hong_Kong_SAR_China": "🇭🇰", - "flag_Heard_&_McDonald_Islands": "🇭🇲", - "flag_Honduras": "🇭🇳", - "flag_Croatia": "🇭🇷", - "flag_Haiti": "🇭🇹", - "flag_Hungary": "🇭🇺", - "flag_Canary_Islands": "🇮🇨", - "flag_Indonesia": "🇮🇩", - "flag_Ireland": "🇮🇪", - "flag_Israel": "🇮🇱", - "flag_Isle_of_Man": "🇮🇲", - "flag_India": "🇮🇳", - "flag_British_Indian_Ocean_Territory": "🇮🇴", - "flag_Iraq": "🇮🇶", - "flag_Iran": "🇮🇷", - "flag_Iceland": "🇮🇸", - "flag_Italy": "🇮🇹", - "flag_Jersey": "🇯🇪", - "flag_Jamaica": "🇯🇲", - "flag_Jordan": "🇯🇴", - "flag_Japan": "🇯🇵", - "flag_Kenya": "🇰🇪", - "flag_Kyrgyzstan": "🇰🇬", - "flag_Cambodia": "🇰🇭", - "flag_Kiribati": "🇰🇮", - "flag_Comoros": "🇰🇲", - "flag_St._Kitts_&_Nevis": "🇰🇳", - "flag_North_Korea": "🇰🇵", - "flag_South_Korea": "🇰🇷", - "flag_Kuwait": "🇰🇼", - "flag_Cayman_Islands": "🇰🇾", - "flag_Kazakhstan": "🇰🇿", - "flag_Laos": "🇱🇦", - "flag_Lebanon": "🇱🇧", - "flag_St._Lucia": "🇱🇨", - "flag_Liechtenstein": "🇱🇮", - "flag_Sri_Lanka": "🇱🇰", - "flag_Liberia": "🇱🇷", - "flag_Lesotho": "🇱🇸", - "flag_Lithuania": "🇱🇹", - "flag_Luxembourg": "🇱🇺", - "flag_Latvia": "🇱🇻", - "flag_Libya": "🇱🇾", - "flag_Morocco": "🇲🇦", - "flag_Monaco": "🇲🇨", - "flag_Moldova": "🇲🇩", - "flag_Montenegro": "🇲🇪", - "flag_St._Martin": "🇲🇫", - "flag_Madagascar": "🇲🇬", - "flag_Marshall_Islands": "🇲🇭", - "flag_North_Macedonia": "🇲🇰", - "flag_Mali": "🇲🇱", - "flag_Myanmar_(Burma)": "🇲🇲", - "flag_Mongolia": "🇲🇳", - "flag_Macao_SAR_China": "🇲🇴", - "flag_Northern_Mariana_Islands": "🇲🇵", - "flag_Martinique": "🇲🇶", - "flag_Mauritania": "🇲🇷", - "flag_Montserrat": "🇲🇸", - "flag_Malta": "🇲🇹", - "flag_Mauritius": "🇲🇺", - "flag_Maldives": "🇲🇻", - "flag_Malawi": "🇲🇼", - "flag_Mexico": "🇲🇽", - "flag_Malaysia": "🇲🇾", - "flag_Mozambique": "🇲🇿", - "flag_Namibia": "🇳🇦", - "flag_New_Caledonia": "🇳🇨", - "flag_Niger": "🇳🇪", - "flag_Norfolk_Island": "🇳🇫", - "flag_Nigeria": "🇳🇬", - "flag_Nicaragua": "🇳🇮", - "flag_Netherlands": "🇳🇱", - "flag_Norway": "🇳🇴", - "flag_Nepal": "🇳🇵", - "flag_Nauru": "🇳🇷", - "flag_Niue": "🇳🇺", - "flag_New_Zealand": "🇳🇿", - "flag_Oman": "🇴🇲", - "flag_Panama": "🇵🇦", - "flag_Peru": "🇵🇪", - "flag_French_Polynesia": "🇵🇫", - "flag_Papua_New_Guinea": "🇵🇬", - "flag_Philippines": "🇵🇭", - "flag_Pakistan": "🇵🇰", - "flag_Poland": "🇵🇱", - "flag_St._Pierre_&_Miquelon": "🇵🇲", - "flag_Pitcairn_Islands": "🇵🇳", - "flag_Puerto_Rico": "🇵🇷", - "flag_Palestinian_Territories": "🇵🇸", - "flag_Portugal": "🇵🇹", - "flag_Palau": "🇵🇼", - "flag_Paraguay": "🇵🇾", - "flag_Qatar": "🇶🇦", - "flag_Réunion": "🇷🇪", - "flag_Romania": "🇷🇴", - "flag_Serbia": "🇷🇸", - "flag_Russia": "🇷🇺", - "flag_Rwanda": "🇷🇼", - "flag_Saudi_Arabia": "🇸🇦", - "flag_Solomon_Islands": "🇸🇧", - "flag_Seychelles": "🇸🇨", - "flag_Sudan": "🇸🇩", - "flag_Sweden": "🇸🇪", - "flag_Singapore": "🇸🇬", - "flag_St._Helena": "🇸🇭", - "flag_Slovenia": "🇸🇮", - "flag_Svalbard_&_Jan_Mayen": "🇸🇯", - "flag_Slovakia": "🇸🇰", - "flag_Sierra_Leone": "🇸🇱", - "flag_San_Marino": "🇸🇲", - "flag_Senegal": "🇸🇳", - "flag_Somalia": "🇸🇴", - "flag_Suriname": "🇸🇷", - "flag_South_Sudan": "🇸🇸", - "flag_São_Tomé_&_Príncipe": "🇸🇹", - "flag_El_Salvador": "🇸🇻", - "flag_Sint_Maarten": "🇸🇽", - "flag_Syria": "🇸🇾", - "flag_Eswatini": "🇸🇿", - "flag_Tristan_da_Cunha": "🇹🇦", - "flag_Turks_&_Caicos_Islands": "🇹🇨", - "flag_Chad": "🇹🇩", - "flag_French_Southern_Territories": "🇹🇫", - "flag_Togo": "🇹🇬", - "flag_Thailand": "🇹🇭", - "flag_Tajikistan": "🇹🇯", - "flag_Tokelau": "🇹🇰", - "flag_Timor-Leste": "🇹🇱", - "flag_Turkmenistan": "🇹🇲", - "flag_Tunisia": "🇹🇳", - "flag_Tonga": "🇹🇴", - "flag_Turkey": "🇹🇷", - "flag_Trinidad_&_Tobago": "🇹🇹", - "flag_Tuvalu": "🇹🇻", - "flag_Taiwan": "🇹🇼", - "flag_Tanzania": "🇹🇿", - "flag_Ukraine": "🇺🇦", - "flag_Uganda": "🇺🇬", - "flag_U.S._Outlying_Islands": "🇺🇲", - "flag_United_Nations": "🇺🇳", - "flag_United_States": "🇺🇸", - "flag_Uruguay": "🇺🇾", - "flag_Uzbekistan": "🇺🇿", - "flag_Vatican_City": "🇻🇦", - "flag_St._Vincent_&_Grenadines": "🇻🇨", - "flag_Venezuela": "🇻🇪", - "flag_British_Virgin_Islands": "🇻🇬", - "flag_U.S._Virgin_Islands": "🇻🇮", - "flag_Vietnam": "🇻🇳", - "flag_Vanuatu": "🇻🇺", - "flag_Wallis_&_Futuna": "🇼🇫", - "flag_Samoa": "🇼🇸", - "flag_Kosovo": "🇽🇰", - "flag_Yemen": "🇾🇪", - "flag_Mayotte": "🇾🇹", - "flag_South_Africa": "🇿🇦", - "flag_Zambia": "🇿🇲", - "flag_Zimbabwe": "🇿🇼", - "flag_England": "🏴󠁧󠁢󠁥󠁮󠁧󠁿", - "flag_Scotland": "🏴󠁧󠁢󠁳󠁣󠁴󠁿", - "flag_Wales": "🏴󠁧󠁢󠁷󠁬󠁳󠁿" -} diff --git a/ui/src/utils.ts b/ui/src/utils.ts index 30080fb7..fb326deb 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -12,7 +12,7 @@ import * as markdown_it from 'markdown-it'; import * as markdownitEmoji from 'markdown-it-emoji/light'; import * as markdown_it_container from 'markdown-it-container'; import * as twemoji from 'twemoji'; -import { twemojis } from './twemojis'; +import * as emojiShortName from 'emoji-short-name'; export const repoUrl = 'https://github.com/dessalines/lemmy'; export const imageUploadUrl = 'https://postimages.org/'; @@ -50,7 +50,7 @@ export const md = new markdown_it({ } } }).use(markdownitEmoji, { - defs: twemojis + defs: objectFlip(emojiShortName) }); md.renderer.rules.emoji = function(token, idx) { @@ -197,6 +197,14 @@ export function getLanguage(): string { return (navigator.language || navigator.userLanguage); } +export function objectFlip(obj: any) { + const ret = {}; + Object.keys(obj).forEach((key) => { + ret[obj[key]] = key; + }); + return ret; +} + export function getMomentLanguage(): string { let lang = getLanguage(); if (lang.startsWith('zh')) { diff --git a/ui/yarn.lock b/ui/yarn.lock index caaa34cc..0fbe6b27 100644 --- a/ui/yarn.lock +++ b/ui/yarn.lock @@ -782,6 +782,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= +emoji-short-name@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/emoji-short-name/-/emoji-short-name-0.1.0.tgz#e2f0fd743e3e16384ae32f8a8b0ce6a47216e1d3" + integrity sha512-vpQaGMxBDC4VGHz52CjVKTJsGsgQ0YueEgQFyDkoanPIK3RgGMbHSjnek2viaCwgf8T6TKCR5v03O/SlfD7iFA== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"