{"id":23178378,"url":"https://github.com/dailybothq/universal-emoji-parser","last_synced_at":"2026-05-03T22:01:36.289Z","repository":{"id":34578917,"uuid":"180468655","full_name":"DailybotHQ/universal-emoji-parser","owner":"DailybotHQ","description":"This tool allow parse unicode and emoji codes to html images using emojilib \u0026\u0026 Twemoji","archived":false,"fork":false,"pushed_at":"2026-05-03T21:12:18.000Z","size":2302,"stargazers_count":41,"open_issues_count":3,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-05-03T21:22:33.269Z","etag":null,"topics":["emoji","emoji-parser","github","parser","slack","transform","twitter","unicode"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/universal-emoji-parser","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DailybotHQ.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"docs/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2019-04-10T00:12:51.000Z","updated_at":"2026-05-03T20:15:36.000Z","dependencies_parsed_at":"2023-01-15T07:53:39.386Z","dependency_job_id":"4ff8be37-a594-4bca-b093-d8defdf4d7eb","html_url":"https://github.com/DailybotHQ/universal-emoji-parser","commit_stats":{"total_commits":126,"total_committers":4,"mean_commits":31.5,"dds":"0.16666666666666663","last_synced_commit":"9f018d477e070a175e6c2af4def94ddb10775b32"},"previous_names":["rockalabs/universal-emoji-parser"],"tags_count":239,"template":false,"template_full_name":null,"purl":"pkg:github/DailybotHQ/universal-emoji-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DailybotHQ%2Funiversal-emoji-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DailybotHQ%2Funiversal-emoji-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DailybotHQ%2Funiversal-emoji-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DailybotHQ%2Funiversal-emoji-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DailybotHQ","download_url":"https://codeload.github.com/DailybotHQ/universal-emoji-parser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DailybotHQ%2Funiversal-emoji-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32586187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["emoji","emoji-parser","github","parser","slack","transform","twitter","unicode"],"created_at":"2024-12-18T07:10:34.842Z","updated_at":"2026-05-03T22:01:36.283Z","avatar_url":"https://github.com/DailybotHQ.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Universal Emoji Parser\n\nThis tool parses emojis from **unicode** and **shortcodes** into HTML images using [emojilib](https://github.com/muan/emojilib) and [Twemoji](https://github.com/jdecked/twemoji-parser).\nThat keeps emoji rendering consistent across browsers and avoids compatibility issues.\n\nEmojis Support:\n\n- [Twitter](https://twitter.com/) emojis\n- [GitHub](https://github.com/) emojis\n- [Slack](https://slack.com/) emojis\n- [Discord](https://discord.com/) emojis\n- [Google Chat](https://chat.google.com/) emojis\n- [Microsoft Teams](https://www.microsoft.com/en-us/microsoft-teams/group-chat-software) emojis\n\n---\n\n[![Code Check \u0026\u0026 Release](https://github.com/DailyBotHQ/universal-emoji-parser/actions/workflows/release_and_publish.yml/badge.svg?branch=main)](https://github.com/DailyBotHQ/universal-emoji-parser/actions/workflows/release_and_publish.yml)\n[![GitHub license](https://img.shields.io/github/license/DailyBotHQ/universal-emoji-parser)](https://github.com/DailyBotHQ/universal-emoji-parser/blob/main/LICENSE)\n[![GitHub stars](https://img.shields.io/github/stars/DailyBotHQ/universal-emoji-parser)](https://github.com/DailyBotHQ/universal-emoji-parser)\n[![Total downloads](https://img.shields.io/npm/dt/universal-emoji-parser.svg)](https://www.npmjs.com/package/universal-emoji-parser)\n\n## Installation\n\n```javascript\nnpm install universal-emoji-parser --save\n\nor\n\nyarn add universal-emoji-parser\n```\n\n## Usage\n\n```javascript\n// ES6 import\n→ import uEmojiParser from 'universal-emoji-parser'\n\nor\n\n// CommonJS require\n→ const uEmojiParser = require('universal-emoji-parser')\n```\n\n### Using default options:\n\n```\n→ uEmojiParser.parse('😎')\n\u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse(':smiling_face_with_sunglasses:')\n\u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse('🚀')\n\u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse(':rocket:')\n\u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://twemoji.maxcdn.com/v/12.1.2/72x72/1f680.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse('Hello world! 😎 :smiling_face_with_sunglasses: 🚀 :rocket:')\nHello world! \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e\n```\n\n### Using method options:\n\n- DEFAULT EMOJI CDN =\u003e `https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/`\n\n| Option Name      | Type    | Default             | Description                                                                                                           |\n| :--------------- | :------ | :------------------ | :-------------------------------------------------------------------------------------------------------------------- |\n| emojiCDN         | string  | `DEFAULT EMOJI CDN` | Allow customize the emojis CDN. The `parseToHtml` option should be `true` to apply this option.                       |\n| parseToHtml      | boolean | `true`              | Parse emojis unicodes and shortcodes into html images.                                                                |\n| parseToUnicode   | boolean | `false`             | Parse emojis shortcodes into unicodes. The option **parseToHtml** should be `false` to apply.                         |\n| parseToShortcode | boolean | `false`             | Parse emojis unicodes into shortcodes. The options **parseToHtml** and **parseToUnicode** should be `false` to apply. |\n\nUsing different values for options:\n\n```\n→ uEmojiParser.parse('😎', {})\n\u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse(':smiling_face_with_sunglasses:', { parseToHtml: true })\n\u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse('Hello world! :smiling_face_with_sunglasses: :rocket:', { parseToHtml: false, parseToUnicode: true })\nHello world! 😎 🚀\n```\n\n```\n→ uEmojiParser.parse('Hello world! 😎 🚀', { parseToHtml: false, parseToShortcode: true })\nHello world! :smiling_face_with_sunglasses: :rocket:\n```\n\nUsing custom CDN\n\n```\n→ uEmojiParser.parse('Hello world! 😎 🚀', { emojiCDN: \"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/\" })\nHello world! \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse('Hello world! 😎 🚀', { parseToHtml: true, emojiCDN: https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/ })\nHello world! \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parse('Hello world! 😎 🚀', { parseToHtml: false, emojiCDN: \"https://custom.emoji.cdn/gh/jdecked/twemoji@latest/assets/svg/\" })\nHello world! 😎 🚀\n```\n\n### ℹ️ Optionally, direct methods can also be used to parse the content of the emojis through the different options:\n\n```\n→ uEmojiParser.parseToHtml('Hello world! 😎 :smiling_face_with_sunglasses: 🚀 :rocket:')\nHello world! \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"😎\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f60e.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e \u003cimg class=\"emoji\" alt=\"🚀\" src=\"https://cdn.jsdelivr.net/gh/jdecked/twemoji@latest/assets/svg/1f680.svg\"/\u003e\n```\n\n```\n→ uEmojiParser.parseToUnicode('Hello world! :smiling_face_with_sunglasses: :rocket:')\nHello world! 😎 🚀\n```\n\n```\n→ uEmojiParser.parseToShortcode('Hello world! 😎 🚀')\nHello world! :smiling_face_with_sunglasses: :rocket:\n```\n\n## Get emoji lib json data\n\nYou can get the entire emoji lib json data curated and processed to best match with shortcode keywords.\n\n```javascript\n// ES6 import\n→ import { emojiLibJsonData } from 'universal-emoji-parser'\n\nor\n\n// CommonJS require\nconst uEmojiParser = require('universal-emoji-parser')\nconst { emojiLibJsonData } = uEmojiParser\n```\n\n```\n\n→ Object.keys(emojiLibJsonData).length\n1898\n\n→ emojiLibJsonData[🤣]\n{\n  name: 'rolling on the floor laughing',\n  slug: 'rolling_on_the_floor_laughing',\n  group: 'Smileys \u0026 Emotion',\n  emoji_version: '3.0',\n  unicode_version: '3.0',\n  skin_tone_support: false,\n  char: '🤣',\n  keywords: [\n    'rolling_on_the_floor_laughing',\n    'rolling',\n    'floor',\n    'laughing',\n    'rofl'\n  ]\n}\n\n→ emojiLibJsonData[😎]\n{\n  name: 'smiling face with sunglasses',\n  slug: 'smiling_face_with_sunglasses',\n  group: 'Smileys \u0026 Emotion',\n  emoji_version: '1.0',\n  unicode_version: '1.0',\n  skin_tone_support: false,\n  char: '😎',\n  keywords: [\n    'smiling_face_with_sunglasses',\n    'cool',\n    'summer',\n    'beach',\n    'sunglass'\n  ]\n}\n```\n\n## CSS Styles\n\nTo properly scale emojis to fit within their containing elements, you can apply these global CSS styles:\n\n```\nimg.emoji {\n  height: 1em;\n  width: 1em;\n  margin: 0 0.05em 0 0.1em;\n  vertical-align: -0.1em;\n}\n```\n\n## :electric_plug: Powered by [DailyBot](https://www.dailybot.com?utm_source=dailybotopensource\u0026utm_medium=universal-emoji-parser)\n\nDailyBot is an [AI Assistant](https://www.dailybot.com/product/ai) powered by ChatGPT that takes chat and collaboration to the next level helping to automate: daily standups, team check-ins, surveys, kudos, virtual watercooler, 1:1 intros, motivation tracking, chatops and more. [Learn more](https://www.dailybot.com?utm_source=dailybotopensource\u0026utm_medium=universal-emoji-parser).\n\n## License\n\nUniversal Emoji Parser is [MIT licensed](./LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdailybothq%2Funiversal-emoji-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdailybothq%2Funiversal-emoji-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdailybothq%2Funiversal-emoji-parser/lists"}