fix(emoji): Replaced raw bytes with human-readable symbols.

This commit is contained in:
Spencer Brower
2026-07-17 14:52:55 -04:00
parent 085811b312
commit c7a5ae2360
2 changed files with 368 additions and 364 deletions
+1
View File
@@ -9,6 +9,7 @@
- [ ] Only publish referenced assets. - [ ] Only publish referenced assets.
- [ ] Split `load_page` into frontmatter-parse + body-process phases so draft pages can skip the markdown pipeline entirely - [ ] Split `load_page` into frontmatter-parse + body-process phases so draft pages can skip the markdown pipeline entirely
- [ ] mustache data keys for opengraph, etc. - [ ] mustache data keys for opengraph, etc.
- [ ] Author should be a struct adhering to https://schema.org/author
- [ ] Block attributes on code fences (`{ #ex-1 }`) — hello-world.md - [ ] Block attributes on code fences (`{ #ex-1 }`) — hello-world.md
- [ ] include-code shortcode (`{{< include-code ... >}}`) — i-ported-fd-to-odin - [ ] include-code shortcode (`{{< include-code ... >}}`) — i-ported-fd-to-odin
- [ ] follow symlinks in `scan_content`? - [ ] follow symlinks in `scan_content`?
+367 -364
View File
@@ -5,384 +5,382 @@ import "core:strings"
EMOJIS: map[string]string = { EMOJIS: map[string]string = {
// People // People
"smile" = "\xf0\x9f\x98\x84", "smile" = "😄",
"laughing" = "\xf0\x9f\x98\x86", "laughing" = "😆",
"blush" = "\xf0\x9f\x98\x8a", "blush" = "😊",
"smiley" = "\xf0\x9f\x98\x83", "smiley" = "😃",
"wink" = "\xf0\x9f\x98\x89", "wink" = "😉",
"joy" = "\xf0\x9f\xa4\xa3", "joy" = "😂",
"rofl" = "\xf0\x9f\xa4\xa3", "rofl" = "🤣",
"relaxed" = "\xe2\x98\xba\xef\xb8\x8f", "relaxed" = "☺️",
"thinking" = "\xf0\x9f\xa4\x94", "thinking" = "🤔",
"neutral_face" = "\xf0\x9f\x98\x90", "neutral_face" = "😐",
"expressionless" = "\xf0\x9f\x98\x91", "expressionless" = "😑",
"no_mouth" = "\xf0\x9f\x98\xb6", "no_mouth" = "😶",
"rolling_eyes" = "\xf0\x9f\x99\x84", "rolling_eyes" = "🙄",
"smirk" = "\xf0\x9f\x98\x8f", "smirk" = "😏",
"persevere" = "\xf0\x9f\x98\xa3", "persevere" = "😣",
"disappointed_relieved" = "\xf0\x9f\x98\xa5", "disappointed_relieved" = "😥",
"open_mouth" = "\xf0\x9f\x98\xae", "open_mouth" = "😮",
"zipper_mouth_face" = "\xf0\x9f\xa4\x90", "zipper_mouth_face" = "🤐",
"hushed" = "\xf0\x9f\x98\xaf", "hushed" = "😯",
"sleepy" = "\xf0\x9f\x98\xaa", "sleepy" = "😪",
"tired_face" = "\xf0\x9f\x98\xab", "tired_face" = "😫",
"sleeping" = "\xf0\x9f\x98\xb4", "sleeping" = "😴",
"relieved" = "\xf0\x9f\x98\x8c", "relieved" = "😌",
"stuck_out_tongue" = "\xf0\x9f\x98\x9b", "stuck_out_tongue" = "😛",
"stuck_out_tongue_winking_eye" = "\xf0\x9f\x98\x9c", "stuck_out_tongue_winking_eye" = "😜",
"stuck_out_tongue_closed_eyes" = "\xf0\x9f\x98\x9d", "stuck_out_tongue_closed_eyes" = "😝",
"drooling_face" = "\xf0\x9f\xa4\xa4", "drooling_face" = "🤤",
"unamused" = "\xf0\x9f\x98\x92", "unamused" = "😒",
"sweat" = "\xf0\x9f\x98\x85", "sweat" = "😅",
"pensive" = "\xf0\x9f\x98\x94", "pensive" = "😔",
"confused" = "\xf0\x9f\x98\x95", "confused" = "😕",
"upside_down_face" = "\xf0\x9f\x99\x83", "upside_down_face" = "🙃",
"money_mouth_face" = "\xf0\x9f\xa4\x91", "money_mouth_face" = "🤑",
"astonished" = "\xf0\x9f\x98\xb2", "astonished" = "😲",
"white_frowning_face" = "\xe2\x98\xb9\xef\xb8\x8f", "white_frowning_face" = "☹️",
"slightly_sad_face" = "\xe2\x98\xb9\xef\xb8\x8f", "slightly_sad_face" = "☹️",
"confounded" = "\xf0\x9f\x98\x96", "confounded" = "😖",
"disappointed" = "\xf0\x9f\x98\x9e", "disappointed" = "😞",
"worried" = "\xf0\x9f\x98\x9f", "worried" = "😟",
"triumph" = "\xf0\x9f\x98\xa4", "triumph" = "😤",
"cry" = "\xf0\x9f\x98\xa2", "cry" = "😢",
"sob" = "\xf0\x9f\x98\xad", "sob" = "😭",
"frowning" = "\xf0\x9f\x98\xa6", "frowning" = "😦",
"frowning_face" = "\xf0\x9f\x99\x81", "frowning_face" = "🙁",
"anguished" = "\xf0\x9f\x98\xa7", "anguished" = "😧",
"fearful" = "\xf0\x9f\x98\xa8", "fearful" = "😨",
"weary" = "\xf0\x9f\x98\xa9", "weary" = "😩",
"grimacing" = "\xf0\x9f\x98\xac", "grimacing" = "😬",
"cold_sweat" = "\xf0\x9f\x98\xb0", "cold_sweat" = "😰",
"scream" = "\xf0\x9f\x98\xb1", "scream" = "😱",
"flushed" = "\xf0\x9f\x98\xb3", "flushed" = "😳",
"dizzy_face" = "\xf0\x9f\x98\xb5", "dizzy_face" = "😵",
"rage" = "\xf0\x9f\x98\xa1", "rage" = "😡",
"angry" = "\xf0\x9f\x98\xa0", "angry" = "😠",
"innocent" = "\xf0\x9f\x98\x87", "innocent" = "😇",
"cowboy_hat_face" = "\xf0\x9f\xa4\xa0", "cowboy_hat_face" = "🤠",
"clown_face" = "\xf0\x9f\xa4\xa1", "clown_face" = "🤡",
"mask" = "\xf0\x9f\x98\xb7", "mask" = "😷",
"thermometer_face" = "\xf0\x9f\xa4\x92", "thermometer_face" = "🤒",
"head_bandage" = "\xf0\x9f\xa4\x95", "head_bandage" = "🤕",
"nauseated_face" = "\xf0\x9f\xa4\xa2", "nauseated_face" = "🤢",
"sneezing_face" = "\xf0\x9f\xa4\xa7", "sneezing_face" = "🤧",
"smiling_imp" = "\xf0\x9f\x98\x88", "smiling_imp" = "😈",
"imp" = "\xf0\x9f\x91\xbf", "imp" = "👿",
"shrug" = "\xc2\xaf\\_(\xe3\x83\x84)_/\xc2\xaf", "shrug" = "¯\\_(ツ)_/¯",
"facepalm" = "\xf0\x9f\xa4\xa6", "facepalm" = "🤦",
"facepunch" = "\xf0\x9f\x91\x8a", "facepunch" = "👊",
"wave" = "\xf0\x9f\x91\x8b", "wave" = "👋",
"ok_hand" = "\xf0\x9f\x91\x8c", "ok_hand" = "👌",
"thumbsup" = "\xf0\x9f\x91\x8d", "thumbsup" = "👍",
"thumbsdown" = "\xf0\x9f\x91\x8e", "thumbsdown" = "👎",
"clap" = "\xf0\x9f\x91\x8f", "clap" = "👏",
"pray" = "\xf0\x9f\x99\x8f", "pray" = "🙏",
"point_up" = "\xe2\x98\x9d\xef\xb8\x8f", "point_up" = "☝️",
"point_down" = "\xf0\x9f\x91\x87", "point_down" = "👇",
"point_left" = "\xf0\x9f\x91\x88", "point_left" = "👈",
"point_right" = "\xf0\x9f\x89\x89", "point_right" = "👉",
"v" = "\xe2\x9c\x8c\xef\xb8\x8f", "v" = "✌️",
"raised_hands" = "\xf0\x9f\x99\x8c", "raised_hands" = "🙌",
"muscle" = "\xf0\x9f\x92\xaa", "muscle" = "💪",
"fist" = "\xe2\x9c\x8a", "fist" = "✊",
"hand" = "\xe2\x9c\x8b", "hand" = "✋",
// Hearts & symbols // Hearts & symbols
"heart" = "\xe2\x9d\xa4\xef\xb8\x8f", "heart" = "❤️",
"orange_heart" = "\xf0\x9f\xa7\xa1", "orange_heart" = "🧡",
"yellow_heart" = "\xf0\x9f\x92\x9b", "yellow_heart" = "💛",
"green_heart" = "\xf0\x9f\x92\x9a", "green_heart" = "💚",
"blue_heart" = "\xf0\x9f\x92\x99", "blue_heart" = "💙",
"purple_heart" = "\xf0\x9f\x92\x9c", "purple_heart" = "💜",
"broken_heart" = "\xf0\x9f\x92\x94", "broken_heart" = "💔",
"sparkling_heart" = "\xf0\x9f\x92\x96", "sparkling_heart" = "💖",
"100" = "\xf0\x9f\x92\xaf", "100" = "💯",
"anger" = "\xf0\x9f\x92\xa2", "anger" = "💢",
"checkered_flag" = "\xf0\x9f\x8f\x81", "checkered_flag" = "🏁",
"crossed_flags" = "\xf0\x9f\x9a\xa9", "crossed_flags" = "🚩",
"rocket" = "\xf0\x9f\x9a\x80", "rocket" = "🚀",
"star" = "\xe2\xad\x90", "star" = "⭐",
"star2" = "\xf0\x9f\x8c\x9f", "star2" = "🌟",
"sparkles" = "\xe2\x9c\xa8", "sparkles" = "✨",
"boom" = "\xf0\x9f\x92\xa5", "boom" = "💥",
"exclamation" = "\xe2\x9d\x97", "exclamation" = "❗",
"question" = "\xe2\x9d\x93", "question" = "❓",
"grey_exclamation" = "\xe2\x9d\x95", "grey_exclamation" = "❕",
"grey_question" = "\xe2\x9d\x94", "grey_question" = "❔",
"zzz" = "\xf0\x9f\x92\xa4", "zzz" = "💤",
"warning" = "\xe2\x9a\xa0\xef\xb8\x8f", "warning" = "⚠️",
"no_entry_sign" = "\xf0\x9f\x9a\xab", "no_entry_sign" = "🚫",
"no_entry" = "\xe2\x9b\x94", "no_entry" = "⛔",
"white_check_mark" = "\xe2\x9c\x85", "white_check_mark" = "✅",
"negative_squared_cross_mark" = "\xe2\x9d\x8e", "negative_squared_cross_mark" = "",
"x" = "\xe2\x9d\x8c", "x" = "❌",
"o" = "\xe2\xad\x95", "o" = "⭕",
"heavy_plus_sign" = "\xe2\x9e\x95", "heavy_plus_sign" = "",
"heavy_minus_sign" = "\xe2\x9e\x96", "heavy_minus_sign" = "",
"heavy_division_sign" = "\xe2\x9e\x97", "heavy_division_sign" = "➗",
"copyright" = "\xc2\xa9\xef\xb8\x8f", "copyright" = "©️",
"registered" = "\xc2\xae\xef\xb8\x8f", "registered" = "®️",
"tm" = "\xe2\x84\xa2\xef\xb8\x8f", "tm" = "™️",
// Nature & weather // Nature & weather
"fire" = "\xf0\x9f\x94\xa5", "fire" = "🔥",
"zap" = "\xe2\x9a\xa1", "zap" = "⚡",
"sunny" = "\xe2\x98\x80\xef\xb8\x8f", "sunny" = "☀️",
"cloud" = "\xe2\x98\x81\xef\xb8\x8f", "cloud" = "☁️",
"rainbow" = "\xf0\x9f\x8c\x88", "rainbow" = "🌈",
"snowflake" = "\xe2\x9d\x84\xef\xb8\x8f", "snowflake" = "❄️",
"dash" = "\xf0\x9f\x92\xa8", "dash" = "💨",
"tornado" = "\xf0\x9f\x8c\xaa\xef\xb8\x8f", "tornado" = "🌪️",
"deciduous_tree" = "\xf0\x9f\x8c\xb3", "deciduous_tree" = "🌳",
"evergreen_tree" = "\xf0\x9f\x8c\xb2", "evergreen_tree" = "🌲",
"palm_tree" = "\xf0\x9f\x8c\xb4", "palm_tree" = "🌴",
"cactus" = "\xf0\x9f\x8c\xb5", "cactus" = "🌵",
"tulip" = "\xf0\x9f\x8c\xb7", "tulip" = "🌷",
"rose" = "\xf0\x9f\x8c\xb9", "rose" = "🌹",
"sunflower" = "\xf0\x9f\x8c\xbb", "sunflower" = "🌻",
"hibiscus" = "\xf0\x9f\x8c\xba", "hibiscus" = "🌺",
"earth_africa" = "\xf0\x9f\x8c\x8d", "earth_africa" = "🌍",
"earth_americas" = "\xf0\x9f\x8c\x8e", "earth_americas" = "🌎",
"earth_asia" = "\xf0\x9f\x8c\x8f", "earth_asia" = "🌏",
"new_moon" = "\xf0\x9f\x8c\x9a", "new_moon" = "🌑",
"full_moon" = "\xf0\x9f\x8c\x95", "full_moon" = "🌕",
// Food & drink // Food & drink
"coffee" = "\xe2\x98\x95", "coffee" = "☕",
"tea" = "\xf0\x9f\x8d\xb5", "tea" = "🍵",
"beer" = "\xf0\x9f\x8d\xba", "beer" = "🍺",
"beers" = "\xf0\x9f\x8d\xbb", "beers" = "🍻",
"wine_glass" = "\xf0\x9f\x8d\xb7", "wine_glass" = "🍷",
"tropical_drink" = "\xf0\x9f\x8d\xb9", "tropical_drink" = "🍹",
"apple" = "\xf0\x9f\x8d\x8e", "apple" = "🍎",
"green_apple" = "\xf0\x9f\x8d\x8f", "green_apple" = "🍏",
"orange" = "\xf0\x9f\x8d\x8a", "orange" = "🍊",
"lemon" = "\xf0\x9f\x8d\x8b", "lemon" = "🍋",
"banana" = "\xf0\x9f\x8d\x8c", "banana" = "🍌",
"watermelon" = "\xf0\x9f\x8d\x89", "watermelon" = "🍉",
"grapes" = "\xf0\x9f\x8d\x87", "grapes" = "🍇",
"strawberry" = "\xf0\x9f\x8d\x93", "strawberry" = "🍓",
"melon" = "\xf0\x9f\x8d\x88", "melon" = "🍈",
"cherries" = "\xf0\x9f\x8d\x92", "cherries" = "🍒",
"peach" = "\xf0\x9f\x8d\x91", "peach" = "🍑",
"pineapple" = "\xf0\x9f\x8d\x8d", "pineapple" = "🍍",
"pizza" = "\xf0\x9f\x8d\x95", "pizza" = "🍕",
"hamburger" = "\xf0\x9f\x8d\x94", "hamburger" = "🍔",
"hotdog" = "\xf0\x9f\x8c\xad", "hotdog" = "🌭",
"taco" = "\xf0\x9f\x8c\xae", "taco" = "🌮",
"burrito" = "\xf0\x9f\x8c\xaf", "burrito" = "🌯",
"cake" = "\xf0\x9f\x8d\xb0", "cake" = "🍰",
"cookie" = "\xf0\x9f\x8d\xaa", "cookie" = "🍪",
"chocolate_bar" = "\xf0\x9f\x8d\xab", "chocolate_bar" = "🍫",
"candy" = "\xf0\x9f\x8d\xac", "candy" = "🍬",
"popcorn" = "\xf0\x9f\x8d\xbf", "popcorn" = "🍿",
// Animals // Animals
"dog" = "\xf0\x9f\x90\xb6", "dog" = "🐶",
"cat" = "\xf0\x9f\x90\xb1", "cat" = "🐱",
"mouse" = "\xf0\x9f\x90\xad", "mouse" = "🐭",
"hamster" = "\xf0\x9f\x90\xb9", "hamster" = "🐹",
"rabbit" = "\xf0\x9f\x90\xb0", "rabbit" = "🐰",
"bear" = "\xf0\x9f\x90\xbb", "bear" = "🐻",
"panda_face" = "\xf0\x9f\x90\xbc", "panda_face" = "🐼",
"koala" = "\xf0\x9f\x90\xa8", "koala" = "🐨",
"tiger" = "\xf0\x9f\x90\xaf", "tiger" = "🐯",
"lion_face" = "\xf0\x9f\xa6\x81", "lion_face" = "🦁",
"cow" = "\xf0\x9f\x90\xae", "cow" = "🐮",
"pig" = "\xf0\x9f\x90\xb7", "pig" = "🐷",
"frog" = "\xf0\x9f\x90\xb8", "frog" = "🐸",
"monkey_face" = "\xf0\x9f\x90\xb5", "monkey_face" = "🐵",
"see_no_evil" = "\xf0\x9f\x99\x88", "see_no_evil" = "🙈",
"hear_no_evil" = "\xf0\x9f\x99\x89", "hear_no_evil" = "🙉",
"speak_no_evil" = "\xf0\x9f\x99\x8a", "speak_no_evil" = "🙊",
"owl" = "\xf0\x9f\xa6\x89", "owl" = "🦉",
"bat" = "\xf0\x9f\xa6\x87", "bat" = "🦇",
"wolf" = "\xf0\x9f\x90\xba", "wolf" = "🐺",
"boar" = "\xf0\x9f\x90\x97", "boar" = "🐗",
"horse" = "\xf0\x9f\x90\x8e", "horse" = "🐴",
"unicorn" = "\xf0\x9f\xa6\x84", "unicorn" = "🦄",
"honeybee" = "\xf0\x9f\x90\x9d", "honeybee" = "🐝",
"bug" = "\xf0\x9f\x90\x9b", "bug" = "🐛",
"snail" = "\xf0\x9f\x90\x8c", "snail" = "🐌",
"beetle" = "\xf0\x9f\x90\x9e", "beetle" = "🐞",
"ant" = "\xf0\x9f\x90\x9c", "ant" = "🐜",
"spider" = "\xf0\x9f\x95\xb7", "spider" = "🕷",
"scorpion" = "\xf0\x9f\xa6\x82", "scorpion" = "🦂",
"turtle" = "\xf0\x9f\x90\xa2", "turtle" = "🐢",
"snake" = "\xf0\x9f\x90\x8d", "snake" = "🐍",
"octopus" = "\xf0\x9f\x90\x99", "octopus" = "🐙",
"shell" = "\xf0\x9f\x90\x9a", "shell" = "🐚",
"whale" = "\xf0\x9f\x90\xb3", "whale" = "🐳",
"dolphin" = "\xf0\x9f\x90\xac", "dolphin" = "🐬",
"fish" = "\xf0\x9f\x90\x9f", "fish" = "🐟",
"tropical_fish" = "\xf0\x9f\x90\xa0", "tropical_fish" = "🐠",
"blowfish" = "\xf0\x9f\x90\xa1", "blowfish" = "🐡",
"penguin" = "\xf0\x9f\x90\xa7", "penguin" = "🐧",
"chicken" = "\xf0\x9f\x90\x94", "chicken" = "🐔",
"bird" = "\xf0\x9f\x90\xa6", "bird" = "🐦",
"eagle" = "\xf0\x9f\xa6\x85", "eagle" = "🦅",
// Objects // Objects
"computer" = "\xf0\x9f\x92\xbb", "computer" = "💻",
"iphone" = "\xf0\x9f\x93\xb1", "iphone" = "📱",
"keyboard" = "\xe2\x8c\xa8\xef\xb8\x8f", "keyboard" = "⌨️",
"desktop_computer" = "\xf0\x9f\x96\xa5", "desktop_computer" = "🖥",
"printer" = "\xf0\x9f\x96\xa8", "printer" = "🖨",
"mouse_three_button" = "\xf0\x9f\x96\xb1", "mouse_three_button" = "🖱",
"joystick" = "\xf0\x9f\x95\xb9", "joystick" = "🕹",
"stash" = "\xf0\x9f\x92\xbe", "stash" = "💾",
"floppy_disk" = "\xf0\x9f\x92\xbe", "floppy_disk" = "💾",
"cd" = "\xf0\x9f\x92\xbf", "cd" = "💿",
"dvd" = "\xf0\x9f\x93\x80", "dvd" = "📀",
"vhs" = "\xf0\x9f\x93\xbc", "vhs" = "📼",
"camera" = "\xf0\x9f\x93\xb7", "camera" = "📷",
"video_camera" = "\xf0\x9f\x93\xb9", "video_camera" = "📹",
"tv" = "\xf0\x9f\x93\xba", "tv" = "📺",
"radio" = "\xf0\x9f\x93\xbb", "radio" = "📻",
"pager" = "\xf0\x9f\x93\x9f", "pager" = "📟",
"telephone" = "\xe2\x98\x8e\xef\xb8\x8f", "telephone" = "☎️",
"fax" = "\xf0\x9f\x93\xa0", "fax" = "📠",
"bulb" = "\xf0\x9f\x92\xa1", "bulb" = "💡",
"candle" = "\xf0\x9f\x95\xaf", "candle" = "🕯",
"bathtub" = "\xf0\x9f\x9b\x81", "bathtub" = "🛁",
"shower" = "\xf0\x9f\x9a\xbf", "shower" = "🚿",
"toilet" = "\xf0\x9f\x9a\xbd", "toilet" = "🚽",
"wrench" = "\xf0\x9f\x94\xa7", "wrench" = "🔧",
"hammer" = "\xf0\x9f\x94\xa8", "hammer" = "🔨",
"nut_and_bolt" = "\xf0\x9f\x94\xa9", "nut_and_bolt" = "🔩",
"gear" = "\xe2\x9a\x99\xef\xb8\x8f", "gear" = "⚙️",
"link" = "\xf0\x9f\x94\x97", "link" = "🔗",
"lock" = "\xf0\x9f\x94\x92", "lock" = "🔒",
"unlock" = "\xf0\x9f\x94\x93", "unlock" = "🔓",
"key" = "\xf0\x9f\x94\x91", "key" = "🔑",
"bell" = "\xf0\x9f\x94\x94", "bell" = "🔔",
"bookmark" = "\xf0\x9f\x94\x96", "bookmark" = "🔖",
"pushpin" = "\xf0\x9f\x93\x8c", "pushpin" = "📌",
"paperclip" = "\xf0\x9f\x93\x8e", "paperclip" = "📎",
"memo" = "\xf0\x9f\x93\x9d", "memo" = "📝",
"pencil2" = "\xe2\x9c\x8f\xef\xb8\x8f", "pencil2" = "✏️",
"black_nib" = "\xe2\x9c\x92\xef\xb8\x8f", "black_nib" = "✒️",
"pen" = "\xf0\x9f\x96\x8a", "pen" = "🖊",
"paintbrush" = "\xf0\x9f\x96\x8c", "paintbrush" = "🖌",
"crayon" = "\xf0\x9f\x96\x8d", "crayon" = "🖍",
"book" = "\xf0\x9f\x93\x97", "book" = "📖",
"books" = "\xf0\x9f\x93\x9a", "books" = "📚",
"ledger" = "\xf0\x9f\x93\x92", "ledger" = "📒",
"notebook" = "\xf0\x9f\x93\x93", "notebook" = "📓",
"scroll" = "\xf0\x9f\x93\x9c", "scroll" = "📜",
"page_with_curl" = "\xf0\x9f\x93\x84", "page_with_curl" = "📄",
"newspaper" = "\xf0\x9f\x93\xb0", "newspaper" = "📰",
"chart_with_upwards_trend" = "\xf0\x9f\x93\x88", "chart_with_upwards_trend" = "📈",
"chart_with_downwards_trend" = "\xf0\x9f\x93\x89", "chart_with_downwards_trend" = "📉",
"bar_chart" = "\xf0\x9f\x93\x8a", "bar_chart" = "📊",
"calendar" = "\xf0\x9f\x93\x85", "calendar" = "📅",
"date" = "\xf0\x9f\x93\x85", "date" = "📅",
"hourglass" = "\xe2\x8f\xb3", "hourglass" = "⌛",
"hourglass_flowing_sand" = "\xe2\x8f\xb3", "hourglass_flowing_sand" = "",
"clock" = "\xf0\x9f\x95\x90", "clock" = "🕐",
"alarm_clock" = "\xe2\x8f\xb0", "alarm_clock" = "⏰",
"stopwatch" = "\xe2\x8f\xb1", "stopwatch" = "⏱",
"watch" = "\xe2\x8c\x9a", "watch" = "⌚",
"moneybag" = "\xf0\x9f\x92\xb0", "moneybag" = "💰",
"yen" = "\xf0\x9f\x92\xb4", "yen" = "💴",
"dollar" = "\xf0\x9f\x92\xb5", "dollar" = "💵",
"euro" = "\xf0\x9f\x92\xb6", "euro" = "💶",
"pound" = "\xf0\x9f\x92\xb7", "pound" = "💷",
"money_with_wings" = "\xf0\x9f\x92\xb8", "money_with_wings" = "💸",
"credit_card" = "\xf0\x9f\x92\xb3", "credit_card" = "💳",
"gem" = "\xf0\x9f\x92\x8e", "gem" = "💎",
"bomb" = "\xf0\x9f\x92\xa3", "bomb" = "💣",
"gift" = "\xf0\x9f\x8e\x81", "gift" = "🎁",
"balloon" = "\xf0\x9f\x8e\x88", "balloon" = "🎈",
"tada" = "\xf0\x9f\x8e\x89", "tada" = "🎉",
"confetti_ball" = "\xf0\x9f\x8e\x8a", "confetti_ball" = "🎊",
"package" = "\xf0\x9f\x93\xa6", "package" = "📦",
"mailbox" = "\xf0\x9f\x93\xab", "mailbox" = "📫",
"inbox_tray" = "\xf0\x9f\x93\xa5", "inbox_tray" = "📥",
"outbox_tray" = "\xf0\x9f\x93\xa4", "outbox_tray" = "📤",
"email" = "\xe2\x9c\x89\xef\xb8\x8f", "email" = "✉️",
"envelope" = "\xe2\x9c\x89\xef\xb8\x8f", "envelope" = "✉️",
"incoming_envelope" = "\xf0\x9f\x93\xa8", "incoming_envelope" = "📨",
// Activities // Activities
"soccer" = "\xe2\x9a\xbd", "soccer" = "⚽",
"basketball" = "\xf0\x9f\x8f\x80", "basketball" = "🏀",
"football" = "\xf0\x9f\x8f\x88", "football" = "🏈",
"baseball" = "\xe2\x9a\xbe", "baseball" = "⚾",
"tennis" = "\xf0\x9f\x8e\xbe", "tennis" = "🎾",
"8ball" = "\xf0\x9f\x8e\xb1", "8ball" = "🎱",
"bowling" = "\xf0\x9f\x8e\xb3", "bowling" = "🎳",
"video_game" = "\xf0\x9f\x8e\xae", "video_game" = "🎮",
"dart" = "\xf0\x9f\x8e\xaf", "dart" = "🎯",
"game_die" = "\xf0\x9f\x8e\xb2", "game_die" = "🎲",
"slot_machine" = "\xf0\x9f\x8e\xb0", "slot_machine" = "🎰",
"cards" = "\xf0\x9f\x83\x8f", "cards" = "🃏",
"black_joker" = "\xf0\x9f\x83\x9f", "black_joker" = "🃟",
"mahjong" = "\xf0\x9f\x80\x84", "mahjong" = "🀄",
"musical_note" = "\xf0\x9f\x8e\xb5", "musical_note" = "🎵",
"notes" = "\xf0\x9f\x8e\xb6", "notes" = "🎶",
"saxophone" = "\xf0\x9f\x8e\xb7", "saxophone" = "🎷",
"guitar" = "\xf0\x9f\x8e\xb8", "guitar" = "🎸",
"musical_keyboard" = "\xf0\x9f\x8e\xb9", "musical_keyboard" = "🎹",
"trumpet" = "\xf0\x9f\x8e\xba", "trumpet" = "🎺",
"violin" = "\xf0\x9f\x8e\xbb", "violin" = "🎻",
"drum" = "\xf0\x9f\xa5\x81", "drum" = "🥁",
"headphones" = "\xf0\x9f\x8e\xa7", "headphones" = "🎧",
"microphone" = "\xf0\x9f\x8e\xa4", "microphone" = "🎤",
"level_slider" = "\xf0\x9f\x8e\x9a", "level_slider" = "🎚",
"control_knobs" = "\xf0\x9f\x8e\x9b", "control_knobs" = "🎛",
"ticket" = "\xf0\x9f\x8e\xab", "ticket" = "🎫",
"art" = "\xf0\x9f\x8e\xa8", "art" = "🎨",
"circus_tent" = "\xf0\x9f\x8e\xaa", "circus_tent" = "🎪",
"theater_masks" = "\xf0\x9f\x8e\xad", "theater_masks" = "🎭",
"clapper" = "\xf0\x9f\x8e\xac", "clapper" = "🎬",
// Travel // Travel
"car" = "\xf0\x9f\x9a\x97", "car" = "🚗",
"taxi" = "\xf0\x9f\x9a\x95", "taxi" = "🚕",
"bus" = "\xf0\x9f\x9a\x8d", "bus" = "🚍",
"train" = "\xf0\x9f\x9a\x86", "train" = "🚆",
"metro" = "\xf0\x9f\x9a\x87", "metro" = "🚇",
"light_rail" = "\xf0\x9f\x9a\x88", "light_rail" = "🚈",
"tram" = "\xf0\x9f\x9a\x8a", "tram" = "🚊",
"bike" = "\xf0\x9f\x9a\xb2", "bike" = "🚲",
"motorcycle" = "\xf0\x9f\x8f\x8d", "motorcycle" = "🏍",
"airplane" = "\xe2\x9c\x88\xef\xb8\x8f", "airplane" = "✈️",
"helicopter" = "\xf0\x9f\x9a\x81", "helicopter" = "🚁",
"boat" = "\xe2\x9b\xb5", "boat" = "⛵",
"sailboat" = "\xe2\x9b\xb5", "sailboat" = "⛵",
"ship" = "\xf0\x9f\x9a\xa2", "ship" = "🚢",
"fuelpump" = "\xe2\x9b\xbd", "fuelpump" = "⛽",
"construction" = "\xf0\x9f\x9a\xa7", "construction" = "🚧",
"house" = "\xf0\x9f\x8f\xa0", "house" = "🏠",
"house_with_garden" = "\xf0\x9f\x8f\xa1", "house_with_garden" = "🏡",
"office" = "\xf0\x9f\x8f\xa2", "office" = "🏢",
"post_office" = "\xf0\x9f\x8f\xa3", "post_office" = "🏣",
"hospital" = "\xf0\x9f\x8f\xa5", "hospital" = "🏥",
"bank" = "\xf0\x9f\x8f\xa6", "bank" = "🏦",
"hotel" = "\xf0\x9f\x8f\xa8", "hotel" = "🏨",
"school" = "\xf0\x9f\x8f\xab", "school" = "🏫",
"department_store" = "\xf0\x9f\x8f\xac", "department_store" = "🏬",
"church" = "\xe2\x9b\xaa", "church" = "⛪",
"castle" = "\xf0\x9f\x8f\xb0", "castle" = "🏰",
"factory" = "\xf0\x9f\x8f\xad", "factory" = "🏭",
"tokyo_tower" = "\xf0\x9f\x97\xbc", "tokyo_tower" = "🗼",
"statue_of_liberty" = "\xf0\x9f\x97\xbd", "statue_of_liberty" = "🗽",
"fountain" = "\xe2\x9b\xb2", "fountain" = "⛲",
"tent" = "\xe2\x9b\xba", "tent" = "⛺",
"mountain" = "\xf0\x9f\x8f\x94", "mountain" = "⛰️",
"snow_capped_mountain" = "\xf0\x9f\x8f\x94", "snow_capped_mountain" = "🏔",
"beach" = "\xf0\x9f\x8f\x96", "beach" = "🏖",
"camping" = "\xf0\x9f\x8f\x95", "camping" = "🏕",
"world_map" = "\xf0\x9f\x97\xba", "world_map" = "🗺",
"japan" = "\xf0\x9f\x97\xbe", "japan" = "🗾",
}; }
expand_emoji :: proc(text: string) -> string { expand_emoji :: proc(text: string) -> string {
if len(EMOJIS) == 0 { assert(len(EMOJIS) > 0)
return text
}
sb := strings.builder_make() sb := strings.builder_make()
defer strings.builder_destroy(&sb) defer strings.builder_destroy(&sb)
@@ -403,11 +401,15 @@ expand_emoji :: proc(text: string) -> string {
break break
} }
shortcode := remaining[colon + 1 : colon + 1 + end] shortcode := remaining[colon + 1:colon + 1 + end]
valid := true valid := true
for c in shortcode { for c in shortcode {
if !(c >= 'a' && c <= 'z') && !(c >= '0' && c <= '9') && c != '_' && c != '+' && c != '-' { if !(c >= 'a' && c <= 'z') &&
!(c >= '0' && c <= '9') &&
c != '_' &&
c != '+' &&
c != '-' {
valid = false valid = false
break break
} }
@@ -432,3 +434,4 @@ expand_emoji :: proc(text: string) -> string {
return strings.to_string(sb) return strings.to_string(sb)
} }