mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-22 07:30:19 +00:00
Meta: Generate emoji.txt at build time from Unicode's emoji-test.txt
Instead of manually updating emoji.txt whenever new emoji are added, we use Unicode's emoji-test.txt to generate emoji.txt on each build, including only the emojis that Serenity supports at that time. By using emoji-test.txt, we can also include all forms of each emoji (fully-qualified, minimally-qualified, and unqualified) which can be helpful when double-checking how certain forms are handled.
This commit is contained in:
parent
8f4317e207
commit
221d9089e9
Notes:
sideshowbarker
2024-07-17 08:55:54 +09:00
Author: https://github.com/squeek502 Commit: https://github.com/SerenityOS/serenity/commit/221d9089e9 Pull-request: https://github.com/SerenityOS/serenity/pull/14934
5 changed files with 86 additions and 509 deletions
1
Base/.gitignore
vendored
1
Base/.gitignore
vendored
|
@ -1 +1,2 @@
|
|||
!*
|
||||
home/anon/Documents/emoji.txt
|
||||
|
|
|
@ -1,509 +0,0 @@
|
|||
Faces & Misc Emoji
|
||||
------------------
|
||||
|
||||
☀️ - U+2600 U+FE0F SUN
|
||||
☁️ - U+2601 U+FE0F CLOUD
|
||||
☹️ - U+2639 U+FE0F FROWNING FACE
|
||||
☺️ - U+263A U+FE0F SMILING FACE
|
||||
✌️ - U+270C U+FE0F VICTORY HAND
|
||||
✍️ - U+270D U+FE0F WRITING HAND
|
||||
🅰️ - U+1F170 A BUTTON (BLOOD TYPE)
|
||||
🅱️ - U+1F171 B BUTTON (BLOOD TYPE)
|
||||
🅾️ - U+1F17E O BUTTON (BLOOD TYPE)
|
||||
🅿️ - U+1F17F P BUTTON
|
||||
🆎 - U+1F18E AB BUTTON (BLOOD TYPE)
|
||||
🆑 - U+1F191 CL BUTTON
|
||||
🆔 - U+1F194 ID BUTTON
|
||||
🆖 - U+1F196 NG BUTTON
|
||||
🆗 - U+1F197 OK BUTTON
|
||||
🆘 - U+1F198 SOS BUTTON
|
||||
🆙 - U+1F199 UP! BUTTON
|
||||
🆚 - U+1F19A VS BUTTON
|
||||
🈁 - U+1F201 JAPANESE “HERE” BUTTON
|
||||
🈂️ - U+1F202 JAPANESE “SERVICE CHARGE” BUTTON
|
||||
🈳 - U+1F233 JAPANESE “VACANCY” BUTTON
|
||||
🈴 - U+1F234 JAPANESE “PASSING GRADE” BUTTON
|
||||
🈶 - U+1F236 JAPANESE “NOT FREE OF CHARGE” BUTTON
|
||||
🈷️ - U+1F237 JAPANESE “MONTHLY AMOUNT” BUTTON
|
||||
🈸 - U+1F238 JAPANESE “APPLICATION” BUTTON
|
||||
🉑 - U+1F251 JAPANESE “ACCEPTABLE” BUTTON
|
||||
🌈 - U+1F308 RAINBOW
|
||||
🌋 - U+1F30B VOLCANO
|
||||
🌍 - U+1F30D GLOBE SHOWING EUROPE-AFRICA
|
||||
🌎 - U+1F30E GLOBE SHOWING AMERICAS
|
||||
🌏 - U+1F30F GLOBE SHOWING ASIA-AUSTRALIA
|
||||
🌑 - U+1F311 NEW MOON
|
||||
🌒 - U+1F312 WAXING CRESCENT MOON
|
||||
🌓 - U+1F313 FIRST QUARTER MOON
|
||||
🌔 - U+1F314 WAXING GIBBOUS MOON
|
||||
🌕 - U+1F315 FULL MOON
|
||||
🌖 - U+1F316 WANING GIBBOUS MOON
|
||||
🌗 - U+1F317 LAST QUARTER MOON
|
||||
🌘 - U+1F318 WANING CRESCENT MOON
|
||||
🌙 - U+1F319 CRESCENT MOON
|
||||
🌚 - U+1F31A NEW MOON FACE
|
||||
🌛 - U+1F31B FIRST QUARTER MOON FACE
|
||||
🌜 - U+1F31C LAST QUARTER MOON FACE
|
||||
🌝 - U+1F31D FULL MOON FACE
|
||||
🌤️ - U+1F324 U+FE0F SUN BEHIND SMALL CLOUD
|
||||
🌥️ - U+1F325 U+FE0F SUN BEHIND LARGE CLOUD
|
||||
🌦️ - U+1F326 U+FE0F SUN BEHIND RAIN CLOUD
|
||||
🌧️ - U+1F327 U+FE0F CLOUD WITH RAIN
|
||||
🌨️ - U+1F328 U+FE0F CLOUD WITH SNOW
|
||||
🌩️ - U+1F329 U+FE0F CLOUD WITH LIGHTNING
|
||||
🌭 - U+1F32D HOT DOG
|
||||
🌮 - U+1F32E TACO
|
||||
🌯 - U+1F32F BURRITO
|
||||
🌱 - U+1F331 SEEDLING
|
||||
🌲 - U+1F332 EVERGREEN TREE
|
||||
🌴 - U+1F334 PALM TREE
|
||||
🌵 - U+1F335 CACTUS
|
||||
🌻 - U+1F33B SUNFLOWER
|
||||
🍄 - U+1F344 MUSHROOM
|
||||
🍅 - U+1F345 TOMATO
|
||||
🍆 - U+1F346 EGGPLANT
|
||||
🍇 - U+1F347 GRAPES
|
||||
🍈 - U+1F348 MELON
|
||||
🍉 - U+1F349 WATERMELON
|
||||
🍊 - U+1F34A TANGERINE
|
||||
🍋 - U+1F34B LEMON
|
||||
🍌 - U+1F34C BANANA
|
||||
🍍 - U+1F34D PINEAPPLE
|
||||
🍎 - U+1F34E RED APPLE
|
||||
🍏 - U+1F34E GREEN APPLE
|
||||
🍐 - U+1F350 PEAR
|
||||
🍑 - U+1F351 PEACH
|
||||
🍒 - U+1F352 CHERRIES
|
||||
🍓 - U+1F353 STRAWBERRY
|
||||
🍔 - U+1F354 HAMBURGER
|
||||
🍕 - U+1F355 SLICE OF PIZZA
|
||||
🍟 - U+1F35F FRENCH FRIES
|
||||
🍩 - U+1F369 DOUGHNUT
|
||||
🍪 - U+1F36A COOKIE
|
||||
🍳 - U+1F373 COOKING
|
||||
🍷 - U+1F377 WINE GLASS
|
||||
🍹 - U+1F379 TROPICAL DRINK
|
||||
🎄 - U+1F384 CHRISTMAS TREE
|
||||
🎉 - U+1F389 PARTY POPPER
|
||||
🎨 - U+1F3A8 ARTIST PALETTE
|
||||
🎹 - U+1F3B9 MUSICAL KEYBOARD
|
||||
🏔️ - U+1F3D4 SNOW-CAPPED MOUNTAIN
|
||||
🏜️ - U+1F3DC DESERT
|
||||
🏝️ - U+1F3DD DESERT ISLAND
|
||||
🐌 - U+1F40C SNAIL
|
||||
🐙 - U+1F419 OCTOPUS
|
||||
🐞 - U+1F41E LADY BEETLE
|
||||
👀 - U+1F440 EYES
|
||||
👆 - U+1F446 BACKHAND INDEX POINTING UP
|
||||
👇 - U+1F447 BACKHAND INDEX POINTING DOWN
|
||||
👈 - U+1F448 BACKHAND INDEX POINTING LEFT
|
||||
👉 - U+1F449 BACKHAND INDEX POINTING RIGHT
|
||||
👋 - U+1F44B WAVING HAND
|
||||
👌 - U+1F44C OK HAND
|
||||
👍 - U+1F44D THUMBS UP SIGN
|
||||
👎 - U+1F44E THUMBS DOWN SIGN
|
||||
👏 - U+1F44F CLAPPING HANDS
|
||||
👑 - U+1F451 CROWN
|
||||
👽 - U+1F47D ALIEN
|
||||
💀 - U+1F480 SKULL
|
||||
💌 - U+1F48C LOVE LETTER
|
||||
💖 - U+1F496 SPARKLING HEART
|
||||
💡 - U+1F4A1 ELECTRIC LIGHT BULB
|
||||
💣 - U+1F4A3 BOMB
|
||||
💦 - U+1F4A6 SWEAT DROPLETS
|
||||
💯 - U+1F4AF HUNDRED POINTS
|
||||
💾 - U+1F4BE FLOPPY DISK
|
||||
📈 - U+1F4C8 CHART INCREASING
|
||||
📉 - U+1F4C9 CHART DECREASING
|
||||
📊 - U+1F4CA BAR CHART
|
||||
📌 - U+1F4CC PUSHPIN
|
||||
📍 - U+1F4CD ROUND PUSHPIN
|
||||
📵 - U+1F4F5 NO MOBILE PHONES
|
||||
📷 - U+1F4F7 CAMERA
|
||||
📸 - U+1F4F8 CAMERA WITH FLASH
|
||||
📺 - U+1F4FA TELEVISION
|
||||
📻 - U+1F4FB RADIO
|
||||
🔥 - U+1F525 FIRE
|
||||
🔴 - U+1F534 RED CIRCLE
|
||||
🔵 - U+1F535 BLUE CIRCLE
|
||||
🔶 - U+1F536 LARGE ORANGE DIAMOND
|
||||
🔷 - U+1F537 LARGE BLUE DIAMOND
|
||||
🔸 - U+1F538 SMALL ORANGE DIAMOND
|
||||
🔹 - U+1F539 SMALL BLUE DIAMOND
|
||||
🔺 - U+1F53A UP-POINTING RED TRIANGLE
|
||||
🔻 - U+1F53B DOWN-POINTING RED TRIANGLE
|
||||
🕊 - U+1F54A DOVE
|
||||
🕐 - U+1F550 ONE O’CLOCK
|
||||
🕑 - U+1F551 TWO O’CLOCK
|
||||
🕒 - U+1F552 THREE O’CLOCK
|
||||
🕓 - U+1F553 FOUR O’CLOCK
|
||||
🕔 - U+1F554 FIVE O’CLOCK
|
||||
🕕 - U+1F555 SIX O’CLOCK
|
||||
🕖 - U+1F556 SEVEN O’CLOCK
|
||||
🕗 - U+1F557 EIGHT O’CLOCK
|
||||
🕘 - U+1F558 NINE O’CLOCK
|
||||
🕙 - U+1F559 TEN O’CLOCK
|
||||
🕚 - U+1F55A ELEVEN O’CLOCK
|
||||
🕛 - U+1F55B TWELVE O’CLOCK
|
||||
🕜 - U+1F55C ONE-THIRTY
|
||||
🕝 - U+1F55D TWO-THIRTY
|
||||
🕞 - U+1F55E THREE-THIRTY
|
||||
🕟 - U+1F55F FOUR-THIRTY
|
||||
🕠 - U+1F560 FIVE-THIRTY
|
||||
🕡 - U+1F561 SIX-THIRTY
|
||||
🕢 - U+1F562 SEVEN-THIRTY
|
||||
🕣 - U+1F563 EIGHT-THIRTY
|
||||
🕤 - U+1F564 NINE-THIRTY
|
||||
🕥 - U+1F565 TEN-THIRTY
|
||||
🕦 - U+1F566 ELEVEN-THIRTY
|
||||
🕧 - U+1F567 TWELVE-THIRTY
|
||||
🕯 - U+1F56F CANDLE
|
||||
🕳️ - U+1F573 HOLE
|
||||
🕶️ - U+1F576 SUNGLASSES
|
||||
🖊 - U+1F58A PEN
|
||||
🖋 - U+1F58B FOUNTAIN PEN
|
||||
🖌 - U+1F58C PAINTBRUSH
|
||||
🖍 - U+1F58D CRAYON
|
||||
🖐️ - U+1F590 HAND WITH FINGERS SPLAYED
|
||||
🗝 - U+1F5DD OLD KEY
|
||||
🗞 - U+1F5DE ROLLED-UP NEWSPAPER
|
||||
🗡 - U+1F5E1 DAGGER
|
||||
🗽 - U+1F5FD STATUE OF LIBERTY
|
||||
😀 - U+1F600 GRINNING FACE
|
||||
😁 - U+1F601 GRINNING FACE WITH SMILING EYES
|
||||
😂 - U+1F602 FACE WITH TEARS OF JOY
|
||||
😃 - U+1F603 SMILING FACE WITH OPEN MOUTH
|
||||
😄 - U+1F604 SMILING FACE WITH OPEN MOUTH AND SMILING EYES
|
||||
😆 - U+1F606 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
|
||||
😈 - U+1F608 SMILING FACE WITH HORNS
|
||||
😊 - U+1F60A SMILING FACE WITH SMILING EYES
|
||||
😎 - U+1F60E SMILING FACE WITH SUNGLASSES
|
||||
😬 - U+1F62C GRIMACING FACE
|
||||
😮💨 - U+1F62E U+200D U+1F4A8 FACE EXHALING
|
||||
😵💫 - U+1F635 U+200D U+1F4AB FACE WITH SPIRAL EYES
|
||||
😶 - U+1F636 FACE WITHOUT MOUTH
|
||||
😶🌫️ - U+1F636 U+200D U+1F32B U+FE0F FACE IN CLOUDS
|
||||
😸 - U+1F638 GRINNING CAT WITH SMILING EYES
|
||||
😺 - U+1F63A SMILING CAT FACE
|
||||
😼 - U+1F63C CAT FACE WITH WRY SMILE
|
||||
😽 - U+1F63D KISSING CAT FACE WITH CLOSED EYES
|
||||
😾 - U+1F63E POUTING CAT FACE
|
||||
😿 - U+1F63F CRYING CAT FACE
|
||||
😹 - U+1F639 CAT FACE WITH TEARS OF JOY
|
||||
🙀 - U+1F640 WEARY CAT FACE
|
||||
🙂 - U+1F642 SLIGHTLY SMILING FACE
|
||||
🙃 - U+1F643 UPSIDE-DOWN FACE
|
||||
🚀 - U+1F680 ROCKET
|
||||
🚥 - U+1F6A5 HORIZONTAL TRAFFIC LIGHT
|
||||
🚦 - U+1F6A6 VERTICAL TRAFFIC LIGHT
|
||||
🛖 - U+1F6D6 HUT
|
||||
🛠️ - U+1F6E0 HAMMER AND WRENCH
|
||||
🛡 - U+1F6E1 SHIELD
|
||||
🟠 - U+1F7E0 ORANGE CIRLE
|
||||
🟡 - U+1F7E1 YELLOW CIRLE
|
||||
🟢 - U+1F7E2 GREEN CIRLE
|
||||
🟣 - U+1F7E3 PURPLE CIRLE
|
||||
🟤 - U+1F7E4 BROWN CIRLE
|
||||
🟥 - U+1F7E5 RED SQUARE
|
||||
🟦 - U+1F7E6 BLUE SQUARE
|
||||
🟧 - U+1F7E7 ORANGE SQUARE
|
||||
🟨 - U+1F7E8 YELLOW SQUARE
|
||||
🟩 - U+1F7E9 GREEN SQUARE
|
||||
🟪 - U+1F7EA PURPLE SQUARE
|
||||
🟫 - U+1F7EB BROWN SQUARE
|
||||
🤍 - U+1F90D WHITE HEART
|
||||
🤎 - U+1F90E BROWN HEART
|
||||
🤏 - U+1F90F PINCHING HAND
|
||||
🤔 - U+1F914 THINKING FACE
|
||||
🤖 - U+1F916 ROBOT
|
||||
🤗 - U+1F917 SMILING FACE WITH OPEN HANDS
|
||||
🤙 - U+1F919 CALL ME HAND
|
||||
🤚 - U+1F91A RAISED BACK OF HAND
|
||||
🤝 - U+1F91D HANDSHAKE
|
||||
🤡 - U+1F921 CLOWN FACE
|
||||
🤣 - U+1F923 ROLLING ON THE FLOOR LAUGHING
|
||||
🤤 - U+1F924 DROOLING FACE
|
||||
🤦 - U+1F926 FACE PALM
|
||||
🤧 - U+1F927 SNEEZING FACE
|
||||
🤪 - U+1F92A ZANY FACE
|
||||
🤫 - U+1F92B SHUSHING FACE
|
||||
🤭 - U+1F92D FACE WITH HAND OVER MOUTH
|
||||
🥇 - U+1F947 FIRST PLACE MEDAL
|
||||
🥈 - U+1F948 SECOND PLACE MEDAL
|
||||
🥑 - U+1F951 AVOCADO
|
||||
🥓 - U+1F953 BACON
|
||||
🥕 - U+1F955 CARROT
|
||||
🥛 - U+1F95B GLASS OF MILK
|
||||
🥝 - U+1F95D KIWIFRUIT
|
||||
🥦 - U+1F966 BROCCOLI
|
||||
🥱 - U+1F971 YAWNING FACE
|
||||
🥲 - U+1F972 SMILING FACE WITH TEAR
|
||||
🥳 - U+1F973 PARTYING FACE
|
||||
🥴 - U+1F974 WOOZY FACE
|
||||
🥸 - U+1F978 DISGUISED FACE
|
||||
🥹 - U+1F979 FACE HOLDING BACK TEARS
|
||||
🥺 - U+1F97A PLEADING FACE
|
||||
🦁 - U+1F981 LION FACE
|
||||
🦄 - U+1F984 UNICORN FACE
|
||||
🧋 - U+1F9CB BUBBLE TEA
|
||||
🧐 - U+1F9D0 FACE WITH MONOCLE
|
||||
🪤 - U+1FAA4 MOUSE TRAP
|
||||
🫠 - U+1FAE0 MELTING FACE
|
||||
🫡 - U+1FAE1 SALUTING FACE
|
||||
🫢 - U+1FAE2 FACE WITH OPEN EYES AND HAND OVER MOUTH
|
||||
🫣 - U+1FAE3 FACE WITH PEEKING EYE
|
||||
🫤 - U+1FAE4 FACE WITH DIAGONAL MOUTH
|
||||
🫥 - U+1FAE5 DOTTED LINE FACE
|
||||
🫧 - U+1FAE7 BUBBLES
|
||||
🧱 - U+1F9F1 BRICK
|
||||
🧲 - U+1F9F2 MAGNET
|
||||
🩱 - U+1FA71 ONE-PIECE SWIMSUIT
|
||||
🩲 - U+1FA72 BRIEFS
|
||||
🩳 - U+1FA73 SHORTS
|
||||
🩸 - U+1FA78 DROP OF BLOOD
|
||||
🩹 - U+1FA79 ADHESIVE BANDAGE
|
||||
🪀 - U+1FA80 YO-YO
|
||||
🪑 - U+1FA91 CHAIR
|
||||
🪜 - U+1FA9C LADDER
|
||||
🪢 - U+1FAA2 KNOT
|
||||
🪵 - U+1FAB5 WOOD
|
||||
🫑 - U+1FAD1 BELL PEPPER
|
||||
🫒 - U+1FAD2 OLIVE
|
||||
🫱 - U+1FAF1 RIGHTWARDS HAND
|
||||
🫲 - U+1FAF2 LEFTWARDS HAND
|
||||
🫳 - U+1FAF3 PALM DOWN HAND
|
||||
🫴 - U+1FAF4 PALM UP HAND
|
||||
🫶 - U+1FAF6 HEART HANDS
|
||||
• - U+2022 BULLET
|
||||
☕ - U+2615 HOT BEVERAGE
|
||||
♋ - U+264B CANCER
|
||||
⚓ - U+2693 ANCHOR
|
||||
⚠ - U+26A0 WARNING SIGN
|
||||
⚡ - U+26A1 HIGH VOLTAGE SIGN
|
||||
⛓️ - U+26D3 CHAINS
|
||||
⛔ - U+26D4 NO ENTRY
|
||||
⛰️ - U+26F0 MOUNTAIN
|
||||
⛱️ - U+26F1 UMBRELLA ON GROUND
|
||||
⛽ - U+26FD FUEL PUMP
|
||||
✋ - U+270B RAISED HAND
|
||||
✨ - U+2728 SPARKLES
|
||||
❤ - U+2764 RED HEART
|
||||
⬆ - U+2B06 UPWARDS BLACK ARROW
|
||||
⬇ - U+2B07 DOWNWARDS BLACK ARROW
|
||||
⭐ - U+2B50 STAR
|
||||
|
||||
ZWJ Sequence Emoji (limited cross-platform support)
|
||||
---------
|
||||
|
||||
🐱🐶 - U+1F431 U+200D U+1F436 CATDOG FACE
|
||||
|
||||
Yak Emoji (limited cross-platform support)
|
||||
---------
|
||||
|
||||
- U+10CD00 HAIRYAK
|
||||
- U+10CD01 IMMINENTYAKSHAVE
|
||||
- U+10CD02 SHAVEDYAK
|
||||
- U+10CD03 YAKPLUS
|
||||
- U+10CD04 YAKPING
|
||||
- U+10CD05 YAKMINUS
|
||||
- U+10CD06 YAKTANGLE
|
||||
- U+10CD07 YAKBAIT
|
||||
- U+10CD08 REYAKTED
|
||||
- U+10CD09 SLEEPYAK
|
||||
- U+10CD0A YAKBRAIN
|
||||
- U+10CD0B GOLDYAK
|
||||
- U+10CD0C YAKKING
|
||||
- U+10CD0D YAKMAIL
|
||||
- U+10CD0E YAKMAGNET
|
||||
- U+10CD0F YAKFIRE
|
||||
- U+10CD10 YAKSPLODE
|
||||
- U+10CD11 YAKSHED
|
||||
- U+10CD12 YAKFUSED
|
||||
- U+10CD13 8BITYAK
|
||||
- U+10CD14 SKELEYAK
|
||||
- U+10CD15 NEOYAK
|
||||
- U+10CD16 YAKEA
|
||||
- U+10CD17 YAKID2
|
||||
- U+10CD18 YAKSLICE
|
||||
- U+10CD19 YAKSTICKER
|
||||
- U+10CD1A YAKKIE
|
||||
- U+10CD1B ANGELYAK
|
||||
- U+10CD1C YAK
|
||||
- U+10CD1D YAKGONE
|
||||
- U+10CD1E YAKMEASURE
|
||||
- U+10CD1F YAKCOWBOY
|
||||
- U+10CD20 YAKSPEED
|
||||
- U+10CD21 YAKMANDO
|
||||
- U+10CD22 NINJYAK
|
||||
- U+10CD23 YOWL
|
||||
- U+10CD60 PARTYAK
|
||||
- U+10CD61 YAKKISS
|
||||
- U+10CD62 THOUSANDYAKSTARE
|
||||
- U+10CD63 YAKBLUSH
|
||||
- U+10CD64 YAKSHRUG
|
||||
- U+10CD65 YAKTHONK
|
||||
- U+10CD66 YAKSAD
|
||||
- U+10CD67 BABYAK
|
||||
- U+10CD68 YAKKETYSAX
|
||||
- U+10CD69 YAKBANE
|
||||
- U+10CD90 YAKSTACK
|
||||
- U+10CD91 YAKCHAIN
|
||||
- U+10CD92 YAKRING
|
||||
- U+10CD93 YAKOVERFLOW
|
||||
- U+10CDB0 XMASYAK
|
||||
- U+10CDB1 YAKTOBERFEST
|
||||
- U+10CDD0 YAKSTEPS
|
||||
- U+10CDE0 YAKRAGE-FRAME-1
|
||||
- U+10CDE1 YAKRAGE-FRAME-2
|
||||
- U+10CDE2 YAKRAGE-FRAME-3
|
||||
- U+10CDE3 YAKRAGE-FRAME-4
|
||||
- U+10CDE4 YAKRAGE-FRAME-5
|
||||
- U+10CDE5 YAKRAGE-FRAME-6
|
||||
|
||||
ZWJ Sequence Flags
|
||||
------------------
|
||||
|
||||
🏳️🐞 - U+1F3F3 U+FE0F U+200D U+1F41E SerenityOS flag (limited cross-platform support)
|
||||
🏳️🌈 - U+1F3F3 U+FE0F U+200D U+1F308 Rainbow flag
|
||||
🏳️⚧️ - U+1F3F3 U+FE0F U+200D U+26A7 U+FE0F Transgender flag
|
||||
🏴☠️ - U+1F3F4 U+200D U+2620 U+FE0F Pirate flag
|
||||
🏳️ - U+1F3F3 U+FE0F U+200D U+F8FF Klingon flag (limited cross-platform support)
|
||||
🏳️🖖 - U+1F3F3 U+FE0F U+200D U+1F596 Vulcan flag (limited cross-platform support)
|
||||
|
||||
Regional Indicator Symbol Flags
|
||||
-------------------------------
|
||||
|
||||
🇦🇪 - U+1F1E6 U+1F1EA AE United Arab Emirates
|
||||
🇦🇲 - U+1F1E6 U+1F1F2 AM Armenia
|
||||
🇦🇶 - U+1F1E6 U+1F1F6 AQ Antarctica
|
||||
🇦🇹 - U+1F1E6 U+1F1F9 AT Austria
|
||||
🇦🇽 - U+1F1E6 U+1F1FD AX Åland Islands
|
||||
🇧🇮 - U+1F1E7 U+1F1EE BI Burundi
|
||||
🇧🇻 - U+1F1E7 U+1F1FB BV Bouvet Island
|
||||
🇨🇬 - U+1F1E8 U+1F1EC CG Congo - Brazzaville
|
||||
🇨🇭 - U+1F1E8 U+1F1ED CH Switzerland
|
||||
🇨🇮 - U+1F1E8 U+1F1EE CI Côte d'Ivoire
|
||||
🇨🇵 - U+1F1E8 U+1F1F5 CP Clipperton Island
|
||||
🇨🇷 - U+1F1E8 U+1F1F7 CR Costa Rica
|
||||
🇨🇺 - U+1F1E8 U+1F1FA CU Cuba
|
||||
🇩🇪 - U+1F1E9 U+1F1EA DE Germany
|
||||
🇩🇯 - U+1F1E9 U+1F1EF DJ DJIBOUTI
|
||||
🇩🇰 - U+1F1E9 U+1F1F0 DK Denmark
|
||||
🇩🇴 - U+1F1E9 U+1F1F4 DO Dominican Republic
|
||||
🇪🇦 - U+1F1EA U+1F1E6 EA Ceuta & Melilla
|
||||
🇪🇭 - U+1F1EA U+1F1ED EH Western Sahara
|
||||
🇪🇺 - U+1F1EA U+1F1FA EU European Union
|
||||
🇫🇮 - U+1F1EB U+1F1EE FI Finland
|
||||
🇫🇴 - U+1F1EB U+1F1F4 FO Faroe Islands
|
||||
🇫🇷 - U+1F1EB U+1F1F7 FR France
|
||||
🇬🇧 - U+1F1EC U+1F1E7 GB United Kingdom
|
||||
🇬🇫 - U+1F1EC U+1F1EB GF French Guiana
|
||||
🇬🇬 - U+1F1EC U+1F1EC GG Guernsey
|
||||
🇬🇱 - U+1F1EC U+1F1F1 GL Greenland
|
||||
🇬🇷 - U+1F1EC U+1F1F7 GR Greece
|
||||
🇬🇹 - U+1F1EC U+1F1F9 GT Guatemala
|
||||
🇭🇺 - U+1F1ED U+1F1FA HU Hungary
|
||||
🇮🇩 - U+1F1EE_U+1F1E9 ID Indonesia
|
||||
🇮🇱 - U+1F1EE U+1F1F1 IL Israel
|
||||
🇮🇷 - U+1F1EE U+1F1F7 IR Iran
|
||||
🇮🇸 - U+1F1EE U+1F1F8 IS Iceland
|
||||
🇯🇴 - U+1F1EF U+1F1F4 JO Jordan
|
||||
🇰🇳 - U+1F1F0 U+1F1F3 KN St. Kitts & Nevis
|
||||
🇱🇦 - U+1F1F1 U+1F1E6 LA Laos
|
||||
🇱🇧 - U+1F1F1 U+1F1E7 LB Lebanon
|
||||
🇲🇫 - U+1F1F2_U+1F1EB MF St. Martin
|
||||
🇲🇰 - U+1F1F2 U+1F1F0 MK North Macedonia
|
||||
🇳🇫 - U+1F1F3 U+1F1EB NF Norfolk Island
|
||||
🇳🇱 - U+1F1F3 U+1F1F1 NL Netherlands
|
||||
🇳🇴 - U+1F1F3 U+1F1F4 NO Norway
|
||||
🇵🇦 - U+1F1F5 U+1F1E6 PA Panama
|
||||
🇵🇭 - U+1F1F5 U+1F1ED PH Philippines
|
||||
🇵🇱 - U+1F1F5 U+1F1F1 PL Poland
|
||||
🇵🇸 - U+1F1F5 U+1F1F8 PS Palestine
|
||||
🇵🇼 - U+1F1F5 U+1F1FC PW Palau
|
||||
🇷🇺 - U+1F1F7 U+1F1FA RU Russia
|
||||
🇸🇪 - U+1F1F8 U+1F1EA SE Sweden
|
||||
🇸🇯 - U+1F1F8 U+1F1EF SJ Svalbard & Jan Mayen
|
||||
🇸🇹 - U+1F1F8 U+1F1F9 ST São Tomé & Príncipe
|
||||
🇸🇾 - U+1F1F8 U+1F1FE SY Syria
|
||||
🇹🇷 - U+1F1F9 U+1F1F7 TR Turkey
|
||||
🇹🇼 - U+1F1F9 U+1F1FC TW Taiwan
|
||||
🇺🇦 - U+1F1FA U+1F1E6 UA Ukraine
|
||||
🇺🇲 - U+1F1FA_U+1F1F2 UM U.S. Outlying Islands
|
||||
🇺🇳 - U+1F1FA U+1F1F3 UN United Nations
|
||||
🇺🇸 - U+1F1FA U+1F1F8 US United States
|
||||
🇻🇳 - U+1F1FB U+1F1F3 VN Vietnam
|
||||
|
||||
Emoji Tag Sequence Flags (limited cross-platform support)
|
||||
------------------------
|
||||
|
||||
🏴 - U+1F3F4 U+E0063 U+E0061 U+E0071 U+E0063 U+E007F CA-QC Quebec
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0062 U+E0062 U+E007F DE-BB Brandenburg
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0062 U+E0065 U+E007F DE-BE Berlin
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0062 U+E0077 U+E007F DE-BW Baden-Württemberg
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0062 U+E0079 U+E007F DE-BY Bavaria
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0068 U+E0062 U+E007F DE-HB Bremen
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0068 U+E0065 U+E007F DE-HE Hesse
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0068 U+E0068 U+E007F DE-HH Hamburg
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E006D U+E0076 U+E007F DE-MV Mecklenburg-Vorpommern
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E006E U+E0069 U+E007F DE-NI Lower Saxony
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E006E U+E0077 U+E007F DE-NW North Rhine-Westphalia
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0072 U+E0070 U+E007F DE-RP Rhineland-Palatinate
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0073 U+E0068 U+E007F DE-SH Schleswig-Holstein
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0073 U+E006C U+E007F DE-SL Saarland
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0073 U+E006E U+E007F DE-SN Saxony
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0073 U+E0074 U+E007F DE-ST Saxony-Anhalt
|
||||
🏴 - U+1F3F4 U+E0064 U+E0065 U+E0074 U+E0068 U+E007F DE-TH Thuringia
|
||||
🏴 - U+1F3F4 U+E0065 U+E0073 U+E0063 U+E0074 U+E007F ES-CT Catalonia
|
||||
🏴 - U+1F3F4 U+E0065 U+E0073 U+E0070 U+E0076 U+E007F ES-PV Basque Country
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0033 U+E007F FI-03 South Ostrobothnia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0034 U+E007F FI-04 South Savonia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0035 U+E007F FI-05 Kainuu
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0036 U+E007F FI-06 Kanta-Häme (Tavastia Proper)
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0037 U+E007F FI-07 Central Ostrobothnia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0030 U+E0038 U+E007F FI-08 Central Finland
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0031 U+E0033 U+E007F FI-13 North Karelia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0031 U+E0035 U+E007F FI-15 Northern Savonia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0031 U+E0036 U+E007F FI-16 Päijänne Tavastia
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0031 U+E0037 U+E007F FI-17 Satakunta
|
||||
🏴 - U+1F3F4 U+E0066 U+E0069 U+E0031 U+E0038 U+E007F FI-18 Uusimaa
|
||||
🏴 - U+1F3F4 U+E0069 U+E0065 U+E006C U+E007F IE-L Leinster
|
||||
🏴 - U+1F3F4 U+E0069 U+E0065 U+E006D U+E007F IE-M Munster
|
||||
🏴 - U+1F3F4 U+E0069 U+E0065 U+E0075 U+E007F IE-U Ulster
|
||||
🏴 - U+1F3F4 U+E0073 U+E0065 U+E006D U+E007F SE-M Skåne
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E0062 U+E0063 U+E007F SK-BC Banská Bystrica
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E0062 U+E006C U+E007F SK-BL Bratislava
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E006B U+E0069 U+E007F SK-KI Košice
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E006E U+E0069 U+E007F SK-NI Nitra
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E0070 U+E0076 U+E007F SK-PV Prešov
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E0074 U+E0061 U+E007F SK-TA Trnava
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E0074 U+E0063 U+E007F SK-TC Trenčín
|
||||
🏴 - U+1F3F4 U+E0073 U+E006B U+E007A U+E0069 U+E007F SK-ZI Žilina
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0030 U+E0035 U+E007F UA-05 Vinnychchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0030 U+E0037 U+E007F UA-07 Volyn
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0030 U+E0039 U+E007F UA-09 Luhanshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0031 U+E0032 U+E007F UA-12 Dnipropetrovshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0031 U+E0034 U+E007F UA-14 Donechchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0031 U+E0038 U+E007F UA-18 Zhytomyrshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0032 U+E0031 U+E007F UA-21 Zakarpattia
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0032 U+E0033 U+E007F UA-23 Zaporizhzhya
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0032 U+E0036 U+E007F UA-26 Prykarpattia
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0033 U+E0030 U+E007F UA-30 Kiev
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0033 U+E0032 U+E007F UA-32 Kyivshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0033 U+E0035 U+E007F UA-35 Kirovohradschyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0034 U+E0030 U+E007F UA-40 Sevastopol
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0034 U+E0033 U+E007F UA-43 Crimea
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0034 U+E0036 U+E007F UA-46 Lvivshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0034 U+E0038 U+E007F UA-48 Mykolayivschyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0035 U+E0031 U+E007F UA-51 Odeshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0035 U+E0033 U+E007F UA-53 Poltavshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0035 U+E0036 U+E007F UA-56 Rivnenshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0035 U+E0039 U+E007F UA-59 Sumshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0036 U+E0031 U+E007F UA-61 Ternopilshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0036 U+E0033 U+E007F UA-63 Kharkivshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0036 U+E0035 U+E007F UA-65 Khersonshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0036 U+E0038 U+E007F UA-68 Khmelnychchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0037 U+E0031 U+E007F UA-71 Cherkashchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0037 U+E0034 U+E007F UA-74 Chernihivshchyna
|
||||
🏴 - U+1F3F4 U+E0075 U+E0061 U+E0037 U+E0037 U+E007F UA-77 Chernivtsi Oblast
|
||||
|
|
@ -206,6 +206,7 @@ option(BUILD_EVERYTHING "Build all optional components" ON)
|
|||
|
||||
include(utils)
|
||||
include(wasm_spec_tests)
|
||||
include(emoji_txt)
|
||||
|
||||
serenity_component(
|
||||
Tests
|
||||
|
|
23
Meta/CMake/emoji_txt.cmake
Normal file
23
Meta/CMake/emoji_txt.cmake
Normal file
|
@ -0,0 +1,23 @@
|
|||
option(ENABLE_EMOJI_TXT_GENERATION "Enable download of emoji-test.txt and generation of emoji.txt at build time" ON)
|
||||
|
||||
set(EMOJI_TEST_TXT_PATH ${CMAKE_BINARY_DIR}/emoji-test.txt)
|
||||
set(EMOJI_TEST_TXT_URL https://unicode.org/Public/emoji/14.0/emoji-test.txt)
|
||||
|
||||
if(ENABLE_EMOJI_TXT_GENERATION)
|
||||
if(NOT EXISTS ${EMOJI_TEST_TXT_PATH})
|
||||
file(DOWNLOAD ${EMOJI_TEST_TXT_URL} ${EMOJI_TEST_TXT_PATH})
|
||||
endif()
|
||||
set(EMOJI_RES_PATH "${SerenityOS_SOURCE_DIR}/Base/res/emoji")
|
||||
set(EMOJI_TXT_INSTALL_PATH "${SerenityOS_SOURCE_DIR}/Base/home/anon/Documents/emoji.txt")
|
||||
add_custom_command(
|
||||
OUTPUT ${EMOJI_TXT_INSTALL_PATH}
|
||||
COMMAND ${SerenityOS_SOURCE_DIR}/Meta/generate-emoji-txt.sh "${EMOJI_TEST_TXT_PATH}" "${EMOJI_RES_PATH}" "${EMOJI_TXT_INSTALL_PATH}"
|
||||
# This will make this command only run when the modified time of the directory changes,
|
||||
# which only happens if files within it are added or deleted, but not when a file is modified.
|
||||
# This is fine for this use-case, because the contents of a file changing should not affect
|
||||
# the generated emoji.txt file.
|
||||
MAIN_DEPENDENCY ${EMOJI_RES_PATH}
|
||||
USES_TERMINAL
|
||||
)
|
||||
add_custom_target(generate_emoji_txt ALL DEPENDS ${EMOJI_TXT_INSTALL_PATH})
|
||||
endif()
|
61
Meta/generate-emoji-txt.sh
Executable file
61
Meta/generate-emoji-txt.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -e
|
||||
|
||||
if [ $# -ne 3 ]; then
|
||||
echo "Usage: $0 <input emoji-test.txt file> <emoji image directory> <output path>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
INPUT_FILE="$1"
|
||||
EMOJI_DIR="$2"
|
||||
OUTPUT_PATH="$3"
|
||||
|
||||
# empty the generated file first
|
||||
:>| "$OUTPUT_PATH"
|
||||
|
||||
first_heading=true
|
||||
while IFS= read -r line
|
||||
do
|
||||
if [[ $line == \#\ subgroup:\ * || $line == \#\ group:\ * ]]; then
|
||||
if [ $first_heading = false ]; then
|
||||
echo "" >> "$OUTPUT_PATH"
|
||||
fi
|
||||
echo "$line" >> "$OUTPUT_PATH"
|
||||
first_heading=false
|
||||
elif [[ ${#line} -ne 0 && $line != \#* ]]; then
|
||||
codepoints_string=${line%%;*}
|
||||
IFS=" " read -r -a codepoints <<< "$codepoints_string"
|
||||
for i in "${!codepoints[@]}"; do
|
||||
# strip leading zeros
|
||||
codepoints[$i]="${codepoints[$i]#"${codepoints[$i]%%[!0]*}"}"
|
||||
# add U+ prefix
|
||||
codepoints[$i]="U+${codepoints[$i]}"
|
||||
done
|
||||
|
||||
# when doing a lookup we want to remove all U+FE0F (emoji presentation specifier) codepoints
|
||||
lookup_filename_parts=()
|
||||
for codepoint in "${codepoints[@]}"; do
|
||||
if [[ $codepoint != "U+FE0F" ]]; then
|
||||
lookup_filename_parts+=("$codepoint")
|
||||
fi
|
||||
done
|
||||
|
||||
IFS=_
|
||||
lookup_filename="${lookup_filename_parts[*]}.png"
|
||||
|
||||
if [ -f "$EMOJI_DIR/$lookup_filename" ]; then
|
||||
emoji_and_name=${line#*# }
|
||||
emoji=${emoji_and_name%% E*}
|
||||
name_with_version=${emoji_and_name#* }
|
||||
name=${name_with_version#* }
|
||||
qualification=${line#*; }
|
||||
qualification=${qualification%%#*}
|
||||
# remove trailing whitespace characters
|
||||
qualification="${qualification%"${qualification##*[![:space:]]}"}"
|
||||
|
||||
IFS=" "
|
||||
echo "$emoji - ${codepoints[*]} ${name^^} ($qualification)" >> "$OUTPUT_PATH"
|
||||
fi
|
||||
fi
|
||||
done < "$INPUT_FILE"
|
Loading…
Reference in a new issue