diff --git a/.electron-vue/webpack.renderer.config.js b/.electron-vue/webpack.renderer.config.js
index c67c6496..13efc531 100644
--- a/.electron-vue/webpack.renderer.config.js
+++ b/.electron-vue/webpack.renderer.config.js
@@ -45,7 +45,7 @@ const rendererConfig = {
}
},
{
- test: /(katex|github\-markdown|highlight\.js\/styles\/default)\.css$/,
+ test: /(katex|github\-markdown|prism[\-a-z]*)\.css$/,
use: [
'to-string-loader',
'css-loader'
@@ -53,7 +53,7 @@ const rendererConfig = {
},
{
test: /\.css$/,
- exclude: /(katex|github\-markdown|highlight\.js\/styles\/default)\.css$/,
+ exclude: /(katex|github\-markdown|prism[\-a-z]*)\.css$/,
use: [
proMode ? MiniCssExtractPlugin.loader : 'style-loader',
{ loader: 'css-loader', options: { importLoader: 1 } },
diff --git a/.electron-vue/webpack.web.config.js b/.electron-vue/webpack.web.config.js
index 223769a7..261e9baf 100644
--- a/.electron-vue/webpack.web.config.js
+++ b/.electron-vue/webpack.web.config.js
@@ -34,7 +34,7 @@ const webConfig = {
}
},
{
- test: /(katex|github\-markdown|highlight\.js\/styles\/default)\.css$/,
+ test: /(katex|github\-markdown|prism[\-a-z]*)\.css$/,
use: [
'to-string-loader',
'css-loader'
@@ -42,7 +42,7 @@ const webConfig = {
},
{
test: /\.css$/,
- exclude: /(katex|github\-markdown|highlight\.js\/styles\/default)\.css$/,
+ exclude: /(katex|github\-markdown|prism[\-a-z]*)\.css$/,
use: [
proMode ? MiniCssExtractPlugin.loader : 'style-loader',
{ loader: 'css-loader', options: { importLoader: 1 } },
diff --git a/README.md b/README.md
index f6e5c806..47f9bdd2 100644
--- a/README.md
+++ b/README.md
@@ -93,7 +93,7 @@
:es:
- Portuguese
+ :portugal:
diff --git a/package-lock.json b/package-lock.json
index 8045ec87..6b5e6ce4 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -192,6 +192,12 @@
"integrity": "sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw==",
"dev": true
},
+ "@types/node": {
+ "version": "8.10.36",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.36.tgz",
+ "integrity": "sha512-SL6KhfM7PTqiFmbCW3eVNwVBZ+88Mrzbuvn9olPsfv43mbiWaFY+nRcz/TGGku0/lc2FepdMbImdMY1JrQ+zbw==",
+ "dev": true
+ },
"@vue/component-compiler-utils": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-2.2.0.tgz",
@@ -2860,6 +2866,17 @@
"integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=",
"dev": true
},
+ "clipboard": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.1.tgz",
+ "integrity": "sha512-7yhQBmtN+uYZmfRjjVjKa0dZdWuabzpSKGtyQZN+9C8xlC788SSJjOHWh7tzurfwTqTD5UDYAhIv5fRJg3sHjQ==",
+ "optional": true,
+ "requires": {
+ "good-listener": "^1.2.2",
+ "select": "^1.1.2",
+ "tiny-emitter": "^2.0.0"
+ }
+ },
"cliui": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
@@ -3841,6 +3858,12 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
+ "delegate": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz",
+ "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==",
+ "optional": true
+ },
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
@@ -4167,22 +4190,14 @@
"dev": true
},
"electron": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/electron/-/electron-3.0.3.tgz",
- "integrity": "sha512-5ypkMO368UbWd1e0ZwKaflYLXSHSw2wAvC5/yApv03pX/KV3uD/2/qF7rW841H9I3QPmS03YZ6UZmlQV/fNczw==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/electron/-/electron-3.0.5.tgz",
+ "integrity": "sha512-rcHNbhSGfj80Av5p06LgIUxN8wQbrdx8yblikJamDezqxe0B11CJSEJuidz6TJoCRDZuWHt+P5xMAEhp92ZUcA==",
"dev": true,
"requires": {
"@types/node": "^8.0.24",
"electron-download": "^4.1.0",
"extract-zip": "^1.0.3"
- },
- "dependencies": {
- "@types/node": {
- "version": "8.10.34",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.34.tgz",
- "integrity": "sha512-alypNiaAEd0RBGXoWehJ2gchPYCITmw4CYBoB5nDlji8l8on7FsklfdfIs4DDmgpKLSX3OF3ha6SV+0W7cTzUA==",
- "dev": true
- }
}
},
"electron-builder": {
@@ -6514,6 +6529,15 @@
"minimatch": "~3.0.2"
}
},
+ "good-listener": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz",
+ "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=",
+ "optional": true,
+ "requires": {
+ "delegate": "^3.1.2"
+ }
+ },
"got": {
"version": "6.7.1",
"resolved": "http://registry.npmjs.org/got/-/got-6.7.1.tgz",
@@ -6819,7 +6843,8 @@
"highlight.js": {
"version": "9.12.0",
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.12.0.tgz",
- "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4="
+ "integrity": "sha1-5tnb5Xy+/mB1HwKvM2GVhwyQwB4=",
+ "dev": true
},
"hmac-drbg": {
"version": "1.0.1",
@@ -6895,14 +6920,6 @@
"uglify-js": "3.3.x"
}
},
- "html-parse-stringify2": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/html-parse-stringify2/-/html-parse-stringify2-2.0.1.tgz",
- "integrity": "sha1-3FZwtyksoVi3vJFsmmc1rIhyg0o=",
- "requires": {
- "void-elements": "^2.0.1"
- }
- },
"html-tags": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/html-tags/-/html-tags-2.0.0.tgz",
@@ -15100,6 +15117,14 @@
"utila": "~0.4"
}
},
+ "prismjs2": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/prismjs2/-/prismjs2-1.15.0.tgz",
+ "integrity": "sha512-/DT77JC3sLzWSpD4WOpIanoMuirt1KkqeFKAmTO4budSjrMwTvQgeeNECPuUm0uYQbH8fDe39s6QMFs6VR1GhQ==",
+ "requires": {
+ "clipboard": "^2.0.0"
+ }
+ },
"private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
@@ -16052,6 +16077,12 @@
}
}
},
+ "select": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz",
+ "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=",
+ "optional": true
+ },
"select-hose": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
@@ -16324,14 +16355,6 @@
"parse-sel": "^1.0.0"
}
},
- "snabbdom-virtualize": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/snabbdom-virtualize/-/snabbdom-virtualize-0.7.0.tgz",
- "integrity": "sha1-MfaDM4tmRXve2MHiLN2O1DjCo4c=",
- "requires": {
- "html-parse-stringify2": "^2"
- }
- },
"snake-case": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz",
@@ -17614,6 +17637,12 @@
"setimmediate": "^1.0.4"
}
},
+ "tiny-emitter": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.0.2.tgz",
+ "integrity": "sha512-2NM0auVBGft5tee/OxP4PI3d8WItkDM+fPnaRAVo6xTDI2knbz9eC5ArWGqtGlYqiH3RU5yMpdyTTO7MguC4ow==",
+ "optional": true
+ },
"title-case": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz",
@@ -18317,7 +18346,8 @@
"void-elements": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
- "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
+ "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=",
+ "dev": true
},
"vue": {
"version": "2.5.17",
diff --git a/package.json b/package.json
index c83e20a0..65f32d41 100644
--- a/package.json
+++ b/package.json
@@ -132,14 +132,13 @@
"fs-extra": "^7.0.0",
"fuzzaldrin": "^2.1.0",
"github-markdown-css": "^2.10.0",
- "highlight.js": "^9.12.0",
"html-tags": "^2.0.0",
"katex": "^0.10.0-rc.1",
"markdown-toc": "^1.2.0",
"popper.js": "^1.14.4",
+ "prismjs2": "^1.15.0",
"snabbdom": "^0.7.2",
"snabbdom-to-html": "^5.1.1",
- "snabbdom-virtualize": "^0.7.0",
"turndown": "^5.0.1",
"turndown-plugin-gfm": "^1.0.2",
"vue": "^2.5.17",
@@ -164,7 +163,7 @@
"css-loader": "^1.0.0",
"del": "^3.0.0",
"devtron": "^1.4.0",
- "electron": "^3.0.3",
+ "electron": "^3.0.5",
"electron-builder": "^20.28.4",
"electron-debug": "^2.0.0",
"electron-devtools-installer": "^2.2.4",
diff --git a/src/main/actions/paragraph.js b/src/main/actions/paragraph.js
index efd44e1e..960dda8b 100644
--- a/src/main/actions/paragraph.js
+++ b/src/main/actions/paragraph.js
@@ -66,10 +66,10 @@ const setCheckedMenuItem = affiliation => {
} else if (b.type === 'pre' && b.functionType) {
if (b.functionType === 'frontmatter') {
return item.id === 'frontMatterMenuItem'
- } else if (b.functionType === 'code') {
+ } else if (/code$/.test(b.functionType)) {
return item.id === 'codeFencesMenuItem'
} else if (b.functionType === 'html') {
- return false
+ return item.id === 'htmlBlockMenuItem'
} else if (b.functionType === 'multiplemath') {
return item.id === 'mathBlockMenuItem'
}
@@ -101,12 +101,8 @@ ipcMain.on('AGANI::selection-change', (e, { start, end, affiliation }) => {
if (
(/th|td/.test(start.type) && /th|td/.test(end.type)) ||
- (start.type === 'span' && start.block.functionType === 'frontmatter') ||
- (end.type === 'span' && end.block.functionType === 'frontmatter') ||
- (start.type === 'span' && start.block.functionType === 'multiplemath') ||
- (end.type === 'span' && end.block.functionType === 'multiplemath') ||
- (start.type === 'pre' && start.block.functionType === 'html') ||
- (end.type === 'pre' && end.block.functionType === 'html')
+ (start.type === 'span' && start.block.functionType === 'codeLine') ||
+ (end.type === 'span' && end.block.functionType === 'codeLine')
) {
setParagraphMenuItemStatus(false)
} else if (start.key !== end.key) {
diff --git a/src/muya/lib/assets/styles/index.css b/src/muya/lib/assets/styles/index.css
index 4ce7ba49..7c25cd84 100644
--- a/src/muya/lib/assets/styles/index.css
+++ b/src/muya/lib/assets/styles/index.css
@@ -1,3 +1,4 @@
+/* Common CSS use by both light and dark themes */
:root {
--brandColor: #5b3cc4;
--successColor: rgb(23, 201, 100);
@@ -119,6 +120,9 @@ div.ag-function-html pre.ag-html-block {
opacity: 0;
z-index: -1;
position: absolute;
+ margin-top: 0;
+ margin-bottom: 0;
+ overflow: visible;
}
div.ag-function-html.ag-active pre.ag-html-block,
@@ -431,12 +435,17 @@ pre.ag-front-matter {
margin: 1rem 0;
}
-span.ag-front-matter-line:first-of-type:empty::after {
+pre.ag-front-matter span.ag-code-line:first-of-type:empty::after {
content: 'Input YAML Front Matter...';
color: var(--placeholerColor);
}
-span.ag-multiple-math-line:first-of-type:empty::after {
+pre[data-role$='code'] span.ag-language-input:empty::after {
+ content: 'Input Language...';
+ color: var(--placeholerColor);
+}
+
+pre.ag-multiple-math span.ag-code-line:first-of-type:empty::after {
content: 'Input Mathematical Formula...';
color: var(--placeholerColor);
}
@@ -444,7 +453,8 @@ span.ag-multiple-math-line:first-of-type:empty::after {
figure,
pre.ag-html-block,
div.ag-function-html,
-pre.ag-code-block,
+pre.ag-fence-code,
+pre.ag-indent-code,
li.ag-list-item > p.ag-paragraph {
position: relative;
display: inline-flex;
@@ -460,9 +470,14 @@ li.ag-list-item > p.ag-paragraph > span {
width: 100%;
}
-pre.ag-code-block {
+pre.ag-fence-code,
+pre.ag-indent-code {
margin: 1rem 0;
- padding: 0 .5rem;
+}
+
+pre > code {
+ width: 100%;
+ display: block;
}
pre.ag-active.ag-front-matter::before,
@@ -475,15 +490,19 @@ pre.ag-active.ag-multiple-math::after {
content: '$$';
}
-pre.ag-active.ag-code-block::before,
-pre.ag-active.ag-code-block::after {
+pre.ag-active.ag-fence-code::before,
+pre.ag-active.ag-indent-code::after,
+pre.ag-active.ag-fence-code::after,
+pre.ag-active.ag-indent-code::before {
content: '```';
}
pre.ag-active.ag-front-matter::before,
pre.ag-active.ag-front-matter::after,
-pre.ag-active.ag-code-block::before,
-pre.ag-active.ag-code-block::after,
+pre.ag-active.ag-fence-code::before,
+pre.ag-active.ag-fence-code::after,
+pre.ag-active.ag-indent-code::before,
+pre.ag-active.ag-indent-code::after,
pre.ag-active.ag-multiple-math::before,
pre.ag-active.ag-multiple-math::after {
color: var(--regularColor);
@@ -495,13 +514,15 @@ pre.ag-active.ag-multiple-math::after {
pre.ag-active.ag-front-matter::before,
pre.ag-active.ag-multiple-math::before,
-pre.ag-active.ag-code-block::before {
+pre.ag-active.ag-indent-code::before,
+pre.ag-active.ag-fence-code::before {
top: -20px;
}
pre.ag-active.ag-front-matter::after,
pre.ag-active.ag-multiple-math::after,
-pre.ag-active.ag-code-block::after {
+pre.ag-active.ag-fence-code::after,
+pre.ag-active.ag-indent-code::after {
bottom: -23px;
}
@@ -520,7 +541,7 @@ figure.ag-active div.ag-math-preview {
top: calc(100% + 8px);
left: 50%;
width: auto;
- z-index: 1;
+ z-index: 10000;
transform: translateX(-50%);
padding: .5rem;
background: #fff;
@@ -534,10 +555,6 @@ div.ag-html-preview {
width: 100%;
}
-pre .CodeMirror {
- width: 100%;
-}
-
img {
max-width: 100%;
}
@@ -595,12 +612,12 @@ span.ag-emoji-marked-text {
}
.ag-language-input {
- outline: none;
+ padding: 0 1rem;
display: none;
min-width: 80px;
position: absolute;
- top: -20px;
- left: 30px;
+ top: -23px;
+ left: 20px;
font-size: 14px;
font-family: monospace;
font-weight: 600;
@@ -618,6 +635,13 @@ pre.ag-active .ag-language-input {
display: block;
}
+.ag-language {
+ color: var(--activeColor);
+ font-weight: 600;
+ text-decoration: none;
+ font-family: monospace;
+}
+
span.ag-image-marked-text, span.ag-link-in-bracket, span.ag-link-in-bracket .ag-backlash {
color: var(--regularColor);
font-size: 16px;
@@ -625,11 +649,6 @@ span.ag-image-marked-text, span.ag-link-in-bracket, span.ag-link-in-bracket .ag-
font-family: monospace;
}
-.ag-language {
- color: var(--dangerColor);
- text-decoration: none;
- font-family: monospace;
-}
.ag-backlash {
text-decoration: none;
color: rgb(51, 51, 51);
diff --git a/src/muya/lib/codeMirror/language.js b/src/muya/lib/codeMirror/language.js
deleted file mode 100644
index a0f870d7..00000000
--- a/src/muya/lib/codeMirror/language.js
+++ /dev/null
@@ -1,18 +0,0 @@
-/**
- * check edit language
- */
-export const checkEditLanguage = (paragraph, selectionState) => {
- const text = paragraph.textContent
- const { start } = selectionState
- const token = text.match(/(^`{3,})([^`]+)/)
-
- if (token) {
- const len = token[1].length
- const lang = token[2].trim()
- if (start < len) return false
- if (!lang) return false
- return lang
- } else {
- return false
- }
-}
diff --git a/src/muya/lib/config/index.js b/src/muya/lib/config/index.js
index 5e28d3bd..3d3d40f0 100644
--- a/src/muya/lib/config/index.js
+++ b/src/muya/lib/config/index.js
@@ -6,7 +6,7 @@ import voidHtmlTags from 'html-tags/void'
// Electron 2.0.2 not support yet! So give a default value 4
export const DEVICE_MEMORY = navigator.deviceMemory || 4 // Get the divice memory number(Chrome >= 63)
export const UNDO_DEPTH = DEVICE_MEMORY >= 4 ? 100 : 50
-export const HAS_TEXT_BLOCK_REG = /^(h\d|span|th|td|hr|pre)/i
+export const HAS_TEXT_BLOCK_REG = /^(h\d|span|th|td|hr)/i
export const VOID_HTML_TAGS = voidHtmlTags
export const HTML_TAGS = htmlTags
// TYPE1 ~ TYPE7 according to https://github.github.com/gfm/#html-blocks
@@ -68,21 +68,15 @@ export const CLASS_OR_ID = genUpper2LowerKeyHash([
'AG_LINE',
'AG_ACTIVE',
'AG_EDITOR_ID',
- 'AG_FLOAT_BOX_ID',
- 'AG_FUNCTION_HTML',
- 'AG_FLOAT_BOX',
- 'AG_SHOW_FLOAT_BOX',
- 'AG_FLOAT_ITEM', // LI element
- 'AG_FLOAT_ITEM_ACTIVE',
- 'AG_FLOAT_ITEM_ICON', // icon wrapper in li
'AG_EMOJI_MARKED_TEXT',
- 'AG_CODE_BLOCK',
+ 'AG_FENCE_CODE',
+ 'AG_INDENT_CODE',
'AG_HTML_BLOCK',
'AG_HTML_ESCAPE',
'AG_FRONT_MATTER',
- 'AG_FRONT_MATTER_LINE',
- 'AG_MULTIPLE_MATH_LINE',
- 'AG_CODEMIRROR_BLOCK',
+ 'AG_CODE_LINE',
+ 'AG_CODE_LINE_ADD',
+ 'AG_CODE_LINE_MINUS',
'AG_SHOW_PREVIEW',
'AG_HTML_PREVIEW',
'AG_LANGUAGE',
@@ -134,20 +128,6 @@ export const CLASS_OR_ID = genUpper2LowerKeyHash([
'AG_REFERENCE_LINK'
])
-export const codeMirrorConfig = {
- // theme: 'railscasts',
- lineWrapping: true,
- autoCloseBrackets: true,
- lineWiseCopyCut: false,
- autoCloseTags: true,
- autofocus: true,
- tabSize: 2,
- extraKeys: {
- 'Cmd-Z': false,
- 'Cmd-Y': false
- }
-}
-
export const DAED_REMOVE_SELECTOR = new Set([
'.ag-image-marked-text::before',
'.ag-image-marked-text.ag-image-fail::before',
@@ -209,7 +189,8 @@ export const HTML_TOOLS = [{
export const LINE_BREAK = '\n'
export const PREVIEW_DOMPURIFY_CONFIG = {
- FORBID_ATTR: ['style', 'class', 'contenteditable'],
+ // do not forbit `class` because `code` element use class to present language
+ FORBID_ATTR: ['style', 'contenteditable'],
ALLOW_DATA_ATTR: false,
USE_PROFILES: {
html: true,
diff --git a/src/muya/lib/contentState/arrowCtrl.js b/src/muya/lib/contentState/arrowCtrl.js
index 4b30838b..cc7407a2 100644
--- a/src/muya/lib/contentState/arrowCtrl.js
+++ b/src/muya/lib/contentState/arrowCtrl.js
@@ -1,12 +1,4 @@
import { EVENT_KEYS, CLASS_OR_ID } from '../config'
-import {
- isCursorAtFirstLine,
- isCursorAtLastLine,
- isCursorAtBegin,
- isCursorAtEnd,
- getBeginPosition,
- getEndPosition
-} from '../codeMirror'
import { findNearestParagraph } from '../selection/dom'
import selection from '../selection'
@@ -59,7 +51,6 @@ const arrowCtrl = ContentState => {
const preBlock = this.findPreBlockInLocation(block)
const nextBlock = this.findNextBlockInLocation(block)
- const { left, right } = selection.getCaretOffsets(paragraph)
const { start, end } = selection.getCursorRange()
const { topOffset, bottomOffset } = selection.getCursorYOffset(paragraph)
@@ -89,60 +80,6 @@ const arrowCtrl = ContentState => {
}
}
- // handle `html` and `code` block when press arrow key
- if (block.type === 'pre' && /code|html/.test(block.functionType)) {
- // handle cursor in code block. the case at firstline or lastline.
- const cm = this.codeBlocks.get(id)
- const anchorBlock = block.functionType === 'html' ? this.getParent(this.getParent(block)) : block
- let activeBlock
- event.preventDefault()
- event.stopPropagation()
- switch (event.key) {
- case EVENT_KEYS.ArrowLeft: // fallthrough
- case EVENT_KEYS.ArrowUp:
- if (
- (event.key === EVENT_KEYS.ArrowUp && isCursorAtFirstLine(cm) && preBlock) ||
- (event.key === EVENT_KEYS.ArrowLeft && isCursorAtBegin(cm) && preBlock)
- ) {
- activeBlock = preBlock
- }
- break
- case EVENT_KEYS.ArrowRight: // fallthrough
- case EVENT_KEYS.ArrowDown:
- if (
- (event.key === EVENT_KEYS.ArrowDown && isCursorAtLastLine(cm)) ||
- (event.key === EVENT_KEYS.ArrowRight && isCursorAtEnd(cm))
- ) {
- if (nextBlock) {
- activeBlock = nextBlock
- } else {
- activeBlock = this.createBlockP()
- this.insertAfter(activeBlock, anchorBlock)
- }
- }
- break
- }
-
- if (activeBlock) {
- const cursorBlock = activeBlock.type === 'p' ? activeBlock.children[0] : activeBlock
- const offset = cursorBlock.text.length
- const key = cursorBlock.key
- this.cursor = {
- start: {
- key,
- offset
- },
- end: {
- key,
- offset
- }
- }
-
- return this.partialRender()
- }
- return
- }
-
if (/th|td/.test(block.type)) {
let activeBlock
const cellInNextRow = this.findNextRowCell(block)
@@ -193,39 +130,6 @@ const arrowCtrl = ContentState => {
}
if (
- (preBlock && preBlock.type === 'pre' && /code|html/.test(preBlock.functionType) && event.key === EVENT_KEYS.ArrowUp) ||
- (preBlock && preBlock.type === 'pre' && /code|html/.test(preBlock.functionType) && event.key === EVENT_KEYS.ArrowLeft && left === 0)
- ) {
- event.preventDefault()
- event.stopPropagation()
- const key = preBlock.key
- const offset = 0
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
- }
-
- const cm = this.codeBlocks.get(preBlock.key)
- preBlock.selection = getEndPosition(cm)
-
- return this.partialRender()
- } else if (
- (nextBlock && nextBlock.type === 'pre' && /code|html/.test(nextBlock.functionType) && event.key === EVENT_KEYS.ArrowDown) ||
- (nextBlock && nextBlock.type === 'pre' && /code|html/.test(nextBlock.functionType) && event.key === EVENT_KEYS.ArrowRight && right === 0)
- ) {
- event.preventDefault()
- event.stopPropagation()
- const key = nextBlock.key
- const offset = 0
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
- }
-
- nextBlock.selection = getBeginPosition()
-
- return this.partialRender()
- } else if (
(event.key === EVENT_KEYS.ArrowUp) ||
(event.key === EVENT_KEYS.ArrowLeft && start.offset === 0)
) {
diff --git a/src/muya/lib/contentState/backspaceCtrl.js b/src/muya/lib/contentState/backspaceCtrl.js
index 2ba6130f..971563d5 100644
--- a/src/muya/lib/contentState/backspaceCtrl.js
+++ b/src/muya/lib/contentState/backspaceCtrl.js
@@ -1,6 +1,5 @@
import selection from '../selection'
import { findNearestParagraph, findOutMostParagraph } from '../selection/dom'
-import { isCursorAtBegin, onlyHaveOneLine, getEndPosition } from '../codeMirror'
const backspaceCtrl = ContentState => {
ContentState.prototype.checkBackspaceCase = function () {
@@ -128,6 +127,10 @@ const backspaceCtrl = ContentState => {
return this.render()
}
+ if (startBlock.functionType === 'languageInput' && start.offset === 0) {
+ return event.preventDefault()
+ }
+
// If select multiple paragraph or multiple characters in one paragraph, just let
// updateCtrl to handle this case.
if (start.key !== end.key || start.offset !== end.offset) {
@@ -151,19 +154,39 @@ const backspaceCtrl = ContentState => {
return tHeadHasContent || tBodyHasContent
}
- if (block.type === 'pre' && /code|html/.test(block.functionType)) {
- const cm = this.codeBlocks.get(id)
- // if event.preventDefault(), you can not use backspace in language input.
- if (isCursorAtBegin(cm) && onlyHaveOneLine(cm)) {
- const anchorBlock = block.functionType === 'html' ? this.getParent(this.getParent(block)) : block
- event.preventDefault()
- const value = cm.getValue()
- const newBlock = this.createBlockP(value)
- this.insertBefore(newBlock, anchorBlock)
- this.removeBlock(anchorBlock)
- this.codeBlocks.delete(id)
- const key = newBlock.children[0].key
+ if (
+ block.type === 'span' &&
+ block.functionType === 'codeLine' &&
+ left === 0 &&
+ !block.preSibling
+ ) {
+ event.preventDefault()
+ event.stopPropagation()
+ if (
+ !block.nextSibling
+ ) {
+ const preBlock = this.getParent(parent)
+ const pBlock = this.createBlock('p')
+ const lineBlock = this.createBlock('span', block.text)
+ const key = lineBlock.key
const offset = 0
+ this.appendChild(pBlock, lineBlock)
+ let referenceBlock = null
+ switch (preBlock.functionType) {
+ case 'fencecode':
+ case 'indentcode':
+ case 'frontmatter':
+ referenceBlock = preBlock
+ break
+ case 'multiplemath':
+ referenceBlock = this.getParent(preBlock)
+ break
+ case 'html':
+ referenceBlock = this.getParent(this.getParent(preBlock))
+ break
+ }
+ this.insertBefore(pBlock, referenceBlock)
+ this.removeBlock(referenceBlock)
this.cursor = {
start: { key, offset },
@@ -171,31 +194,6 @@ const backspaceCtrl = ContentState => {
}
this.partialRender()
}
- } else if (
- block.type === 'span' && /frontmatter|multiplemath/.test(block.functionType) &&
- left === 0 && !block.preSibling
- ) {
- const isMathLine = block.functionType === 'multiplemath'
- event.preventDefault()
- event.stopPropagation()
- const { key } = block
- const offset = 0
- const pBlock = this.createBlock('p')
- for (const line of parent.children) {
- delete line.functionType
- this.appendChild(pBlock, line)
- }
- if (isMathLine) {
- parent = this.getParent(parent)
- }
- this.insertBefore(pBlock, parent)
- this.removeBlock(parent)
-
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
- }
- this.partialRender()
} else if (left === 0 && /th|td/.test(block.type)) {
event.preventDefault()
event.stopPropagation()
@@ -298,19 +296,7 @@ const backspaceCtrl = ContentState => {
const { text } = block
const key = preBlock.key
const offset = preBlock.text.length
- if (preBlock.type === 'pre' && /code|html/.test(preBlock.functionType)) {
- const cm = this.codeBlocks.get(key)
- const value = cm.getValue() + text
- cm.setValue(value)
- const { line, ch } = getEndPosition(cm).anchor
-
- preBlock.selection = {
- anchor: { line, ch: ch - text.length },
- head: { line, ch: ch - text.length }
- }
- } else {
- preBlock.text += text
- }
+ preBlock.text += text
// If block is a line block and its parent paragraph only has one text line,
// also need to remove the paragrah
if (this.isOnlyChild(block) && block.type === 'span') {
diff --git a/src/muya/lib/contentState/clickCtrl.js b/src/muya/lib/contentState/clickCtrl.js
index 6fed767f..b053cfe7 100644
--- a/src/muya/lib/contentState/clickCtrl.js
+++ b/src/muya/lib/contentState/clickCtrl.js
@@ -1,6 +1,59 @@
+import selection from '../selection'
+import { HAS_TEXT_BLOCK_REG } from '../config'
+
const clickCtrl = ContentState => {
ContentState.prototype.clickHandler = function (event) {
- // todo
+ const { eventCenter } = this.muya
+ const { start, end } = selection.getCursorRange()
+ const block = this.getBlock(start.key)
+ let needRender = false
+ // is show format float box?
+ if (
+ start.key === end.key &&
+ start.offset !== end.offset &&
+ HAS_TEXT_BLOCK_REG.test(block.type) &&
+ block.functionType !== 'codeLine'
+ ) {
+ const reference = this.getPositionReference()
+ const { formats } = this.selectionFormats()
+ eventCenter.dispatch('muya-format-picker', { reference, formats })
+ }
+ // bugfix: #67 problem 1
+ if (block && block.icon) return event.preventDefault()
+ // bugfix: figure block click
+ if (event.type === 'click' && block.type === 'figure' && block.functionType === 'table') {
+ // first cell in thead
+ const cursorBlock = block.children[1].children[0].children[0].children[0]
+ const offset = cursorBlock.text.length
+ const key = cursorBlock.key
+ this.cursor = {
+ start: { key, offset },
+ end: { key, offset }
+ }
+ needRender = true
+ }
+
+ // update '```xxx' to code block when you click other place or use press arrow key.
+ if (block && start.key !== this.cursor.start.key) {
+ const oldBlock = this.getBlock(this.cursor.start.key)
+ if (oldBlock) {
+ needRender = needRender || this.codeBlockUpdate(oldBlock)
+ }
+ }
+
+ // change active status when paragraph changed
+ if (
+ start.key !== this.cursor.start.key ||
+ end.key !== this.cursor.end.key
+ ) {
+ needRender = true
+ }
+
+ const needMarkedUpdate = this.checkNeedRender(this.cursor) || this.checkNeedRender({ start, end })
+ this.cursor = { start, end }
+ if (needMarkedUpdate || needRender) {
+ return this.partialRender()
+ }
}
}
diff --git a/src/muya/lib/contentState/codeBlockCtrl.js b/src/muya/lib/contentState/codeBlockCtrl.js
index d5f187b4..e2882a0c 100644
--- a/src/muya/lib/contentState/codeBlockCtrl.js
+++ b/src/muya/lib/contentState/codeBlockCtrl.js
@@ -1,44 +1,32 @@
-import codeMirror, { setMode, setCursorAtLastLine } from '../codeMirror'
-import { createInputInCodeBlock } from '../utils/domManipulate'
-import { sanitize, getParagraphReference } from '../utils'
-import { codeMirrorConfig, BLOCK_TYPE7, PREVIEW_DOMPURIFY_CONFIG, CLASS_OR_ID } from '../config'
+import { loadLanguage } from '../prism/index'
const CODE_UPDATE_REP = /^`{3,}(.*)/
-const beautifyHtml = html => {
- const HTML_REG = /^<([a-zA-Z\d-]+)(?=\s|>).*?>/
- const HTML_NEWLINE_REG = /^<([a-zA-Z\d-]+)(?=\s|>).*?>\n/
- const match = HTML_REG.exec(html)
- const tag = match ? match[1] : null
- // no empty line in block html
- let result = html // .split(/\n/).filter(line => /\S/.test(line)).join('\n')
- // start inline tag must ends with `\n`
- if (tag) {
- if (BLOCK_TYPE7.indexOf(tag) > -1 && !HTML_NEWLINE_REG.test(html)) {
- result = result.replace(HTML_REG, (m, p) => `${m}\n`)
- }
- }
- return result
-}
-
const codeBlockCtrl = ContentState => {
ContentState.prototype.selectLanguage = function (paragraph, name) {
const block = this.getBlock(paragraph.id)
- block.text = block.text.replace(/^(`+)([^`]+$)/g, `$1${name}`)
- this.codeBlockUpdate(block)
- this.partialRender()
- }
- // Fix bug: when click the edge at the code block, the code block will be not focused.
- ContentState.prototype.focusCodeBlock = function (event) {
- const key = event.target.id
- const offset = 0
-
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
+ loadLanguage(name)
+ if (block.functionType === 'languageInput') {
+ block.text = name
+ const preBlock = this.getParent(block)
+ const nextSibling = this.getNextSibling(block)
+ preBlock.lang = name
+ preBlock.functionType = 'fencecode'
+ nextSibling.lang = name
+ nextSibling.children.forEach(c => (c.lang = name))
+ const { key } = nextSibling.children[0]
+ const offset = 0
+ this.cursor = {
+ start: { key, offset },
+ end: { key, offset }
+ }
+ } else {
+ block.text = block.text.replace(/^(`+)([^`]+$)/g, `$1${name}`)
+ this.codeBlockUpdate(block)
}
this.partialRender()
}
+
/**
* [codeBlockUpdate if block updated to `pre` return true, else return false]
*/
@@ -53,15 +41,26 @@ const codeBlockCtrl = ContentState => {
const { text } = block.children[0]
const match = CODE_UPDATE_REP.exec(text)
if (match || lang) {
+ const codeBlock = this.createBlock('code')
+ const firstLine = this.createBlock('span', code)
+ const language = lang || (match ? match[1] : '')
+ const inputBlock = this.createBlock('span', language)
+ loadLanguage(language)
+ inputBlock.functionType = 'languageInput'
block.type = 'pre'
- block.functionType = 'code'
- block.codeBlockStyle = 'fenced'
- block.text = code
+ block.functionType = 'fencecode'
+ block.lang = language
+ block.text = ''
block.history = null
- block.lang = lang || (match ? match[1] : '')
block.children = []
- const { key } = block
- const offset = 0
+ codeBlock.lang = language
+ firstLine.lang = language
+ firstLine.functionType = 'codeLine'
+ this.appendChild(codeBlock, firstLine)
+ this.appendChild(block, inputBlock)
+ this.appendChild(block, codeBlock)
+ const { key } = firstLine
+ const offset = code.length
this.cursor = {
start: { key, offset },
end: { key, offset }
@@ -70,138 +69,6 @@ const codeBlockCtrl = ContentState => {
}
return false
}
-
- ContentState.prototype.pre2CodeMirror = function (isRenderCursor, blocks) {
- const { eventCenter } = this.muya
- let selector = ''
- if (blocks) {
- selector = blocks.map(({ type, key }) => {
- if (type === 'pre') {
- return `pre#${key}.${CLASS_OR_ID['AG_CODEMIRROR_BLOCK']}`
- } else {
- return `#${key} pre.${CLASS_OR_ID['AG_CODEMIRROR_BLOCK']}`
- }
- }).join(', ')
- } else {
- selector = `pre.${CLASS_OR_ID['AG_CODEMIRROR_BLOCK']}`
- }
-
- const pres = document.querySelectorAll(selector)
-
- Array.from(pres).forEach(pre => {
- // If pre element has children, means that this code block is not editing,
- // and don't need to update to codeMirror.
- if (pre.children.length) return
- const id = pre.id
- const block = this.getBlock(id)
- const value = block.text
- const autofocus = id === this.cursor.start.key && isRenderCursor
- const config = Object.assign(codeMirrorConfig, { autofocus, value })
- const codeBlock = codeMirror(pre, config)
- const mode = pre.getAttribute('data-lang')
- let input
- if (block.functionType === 'code') {
- input = createInputInCodeBlock(pre)
- }
-
- const handler = ({ name }) => {
- setMode(codeBlock, name)
- .then(m => {
- pre.setAttribute('data-lang', m.name)
- block.lang = m.name.toLowerCase()
- // change indent code block to fence code block
- if (block.codeBlockStyle !== 'fenced') {
- block.codeBlockStyle = 'fenced'
- }
- if (input) {
- input.value = m.name
- input.blur()
- }
- if (this.cursor.start.key === block.key && isRenderCursor) {
- if (block.selection) {
- codeBlock.focus()
- const { anchor, head } = block.selection
- codeBlock.setSelection(anchor, head)
- } else {
- setCursorAtLastLine(codeBlock)
- }
- }
- })
- .catch(err => {
- console.warn(err)
- })
- }
-
- this.codeBlocks.set(id, codeBlock)
-
- if (mode) {
- handler({ name: mode })
- }
-
- if (block.selection && this.cursor.start.key === block.key && isRenderCursor) {
- const { anchor, head } = block.selection
- codeBlock.focus()
- codeBlock.setSelection(anchor, head)
- }
-
- if (block.history) {
- codeBlock.setHistory(block.history)
- }
-
- if (input) {
- eventCenter.attachDOMEvent(input, 'input', () => {
- const value = input.value
- eventCenter.dispatch('muya-code-picker', {
- reference: getParagraphReference(input, id),
- lang: value.trim(),
- cb: handler
- })
- })
- }
-
- codeBlock.on('focus', (cm, event) => {
- block.selection = cm.listSelections()[0]
- })
-
- codeBlock.on('blur', (cm, event) => {
- block.selection = cm.listSelections()[0]
- if (block.functionType === 'html') {
- const value = cm.getValue()
-
- block.text = beautifyHtml(value)
- }
- })
-
- codeBlock.on('cursorActivity', (cm, event) => {
- block.coords = cm.cursorCoords()
- block.selection = cm.listSelections()[0]
- })
-
- let lastUndoLength = 0
- codeBlock.on('change', (cm, change) => {
- const value = cm.getValue()
- block.text = value
- block.history = cm.getHistory()
- if (block.functionType === 'html') {
- const preBlock = this.getNextSibling(block)
- const htmlBlock = this.getParent(this.getParent(block))
- const escapedHtml = sanitize(block.text, PREVIEW_DOMPURIFY_CONFIG)
- htmlBlock.text = block.text
- const preEle = document.querySelector(`#${preBlock.key}`)
- preEle.innerHTML = escapedHtml
- preBlock.htmlContent = escapedHtml
- }
- const { undo } = cm.historySize()
- if (undo > lastUndoLength) {
- this.history.push({
- type: 'codeBlock',
- id
- })
- lastUndoLength = undo
- }
- })
- })
- }
}
export default codeBlockCtrl
diff --git a/src/muya/lib/contentState/copyCutCtrl.js b/src/muya/lib/contentState/copyCutCtrl.js
index 3a0fe21f..58b07233 100644
--- a/src/muya/lib/contentState/copyCutCtrl.js
+++ b/src/muya/lib/contentState/copyCutCtrl.js
@@ -5,9 +5,6 @@ import ExportMarkdown from '../utils/exportMarkdown'
const copyCutCtrl = ContentState => {
ContentState.prototype.cutHandler = function () {
- if (this.checkInCodeBlock()) {
- return
- }
const { start, end } = this.cursor
const startBlock = this.getBlock(start.key)
const endBlock = this.getBlock(end.key)
@@ -22,16 +19,6 @@ const copyCutCtrl = ContentState => {
this.partialRender()
}
- ContentState.prototype.checkInCodeBlock = function () {
- const { start, end } = selection.getCursorRange()
- const { type, functionType } = this.getBlock(start.key)
-
- if (start.key === end.key && type === 'pre' && /code|html/.test(functionType)) {
- return true
- }
- return false
- }
-
ContentState.prototype.getClipBoradData = function () {
const html = selection.getSelectionHtml()
const wrapper = document.createElement('div')
@@ -41,7 +28,9 @@ const copyCutCtrl = ContentState => {
.${CLASS_OR_ID['AG_MATH_RENDER']},
.${CLASS_OR_ID['AG_HTML_PREVIEW']},
.${CLASS_OR_ID['AG_MATH_PREVIEW']},
- .${CLASS_OR_ID['AG_COPY_REMOVE']}`
+ .${CLASS_OR_ID['AG_COPY_REMOVE']},
+ .${CLASS_OR_ID['AG_LANGUAGE_INPUT']}`
+
)
;[...removedElements].forEach(e => e.remove())
@@ -78,31 +67,32 @@ const copyCutCtrl = ContentState => {
l.replaceWith(span)
})
- const codefense = wrapper.querySelectorAll(`pre.${CLASS_OR_ID['AG_CODE_BLOCK']}`)
+ const codefense = wrapper.querySelectorAll(`pre[data-role$='code']`)
;[...codefense].forEach(cf => {
const id = cf.id
- const language = cf.getAttribute('data-lang') || ''
- const cm = this.codeBlocks.get(id)
- const value = cm.getValue()
- cf.innerHTML = `${value}
`
+ const block = this.getBlock(id)
+ const language = block.lang || ''
+ const selectedCodeLines = cf.querySelectorAll('.ag-code-line')
+ const value = [...selectedCodeLines].map(codeLine => codeLine.textContent).join('\n')
+ cf.innerHTML = `${value}
`
})
const htmlBlock = wrapper.querySelectorAll(`figure[data-role='HTML']`)
;[...htmlBlock].forEach(hb => {
- const id = hb.id
- const { text } = this.getBlock(id)
+ const selectedCodeLines = hb.querySelectorAll('span.ag-code-line')
+ const value = [...selectedCodeLines].map(codeLine => codeLine.textContent).join('\n')
const pre = document.createElement('pre')
- pre.textContent = text
+ pre.textContent = value
hb.replaceWith(pre)
})
const mathBlock = wrapper.querySelectorAll(`figure.ag-multiple-math-block`)
;[...mathBlock].forEach(mb => {
- const id = mb.id
- const { math } = this.getBlock(id).children[1]
+ const selectedCodeLines = mb.querySelectorAll('span.ag-code-line')
+ const value = [...selectedCodeLines].map(codeLine => codeLine.textContent).join('\n')
const pre = document.createElement('pre')
pre.classList.add('multiple-math')
- pre.textContent = math
+ pre.textContent = value
mb.replaceWith(pre)
})
@@ -113,9 +103,6 @@ const copyCutCtrl = ContentState => {
}
ContentState.prototype.copyHandler = function (event, type) {
- if (this.checkInCodeBlock()) {
- return
- }
event.preventDefault()
const { html, text } = this.getClipBoradData()
diff --git a/src/muya/lib/contentState/enterCtrl.js b/src/muya/lib/contentState/enterCtrl.js
index 011cca6c..84d4470b 100644
--- a/src/muya/lib/contentState/enterCtrl.js
+++ b/src/muya/lib/contentState/enterCtrl.js
@@ -1,5 +1,13 @@
import selection from '../selection'
+const checkAutoIndent = (text, offset) => {
+ const pairStr = text.substring(offset - 1, offset + 1)
+ return /^(\{\}|\[\]|\(\)|><)$/.test(pairStr)
+}
+const getIndentSpace = text => {
+ return /^(\s*)\S/.exec(text)[1]
+}
+
const enterCtrl = ContentState => {
ContentState.prototype.chopBlockByCursor = function (block, key, offset) {
const newBlock = this.createBlock('p')
@@ -140,25 +148,15 @@ const enterCtrl = ContentState => {
const endBlock = this.getBlock(end.key)
let parent = this.getParent(block)
- // handle cursor in code block
- if (block.type === 'pre' && block.functionType === 'code') {
- return
- }
-
event.preventDefault()
-
// handle select multiple blocks
if (start.key !== end.key) {
const key = start.key
const offset = start.offset
- const startRemainText = block.type === 'pre'
- ? block.text.substring(0, start.offset - 1)
- : block.text.substring(0, start.offset)
+ const startRemainText = block.text.substring(0, start.offset)
- const endRemainText = endBlock.type === 'pre'
- ? endBlock.text.substring(end.offset - 1)
- : endBlock.text.substring(end.offset)
+ const endRemainText = endBlock.text.substring(end.offset)
block.text = startRemainText + endRemainText
@@ -186,18 +184,31 @@ const enterCtrl = ContentState => {
// handle `shift + enter` insert `soft line break` or `hard line break`
// only cursor in `line block` can create `soft line break` and `hard line break`
+ // handle line in code block
if (
(event.shiftKey && block.type === 'span') ||
- (block.type === 'span' && /frontmatter|multiplemath/.test(block.functionType))
+ (block.type === 'span' && block.functionType === 'codeLine')
) {
const { text } = block
const newLineText = text.substring(start.offset)
+ const autoIndent = checkAutoIndent(text, start.offset)
+ const indent = getIndentSpace(text)
block.text = text.substring(0, start.offset)
- const newLine = this.createBlock('span', newLineText)
+ const newLine = this.createBlock('span', `${indent}${newLineText}`)
newLine.functionType = block.functionType
+ newLine.lang = block.lang
this.insertAfter(newLine, block)
- const { key } = newLine
- const offset = 0
+ let { key } = newLine
+ let offset = indent.length
+ if (autoIndent) {
+ const emptyLine = this.createBlock('span', indent + ' '.repeat(this.tabSize))
+ emptyLine.functionType = block.functionType
+ emptyLine.lang = block.lang
+ this.insertAfter(emptyLine, block)
+ key = emptyLine.key
+ offset = indent.length + this.tabSize
+ }
+
this.cursor = {
start: { key, offset },
end: { key, offset }
@@ -374,7 +385,7 @@ const enterCtrl = ContentState => {
cursorBlock = tableNeedFocus
break
case !!htmlNeedFocus:
- cursorBlock = htmlNeedFocus
+ cursorBlock = htmlNeedFocus.children[0].children[1] // the second line
break
case !!mathNeedFocus:
cursorBlock = mathNeedFocus
diff --git a/src/muya/lib/contentState/history.js b/src/muya/lib/contentState/history.js
index bf12d4df..2cc86093 100644
--- a/src/muya/lib/contentState/history.js
+++ b/src/muya/lib/contentState/history.js
@@ -13,22 +13,12 @@ export class History {
this.index = this.index - 1
const state = deepCopy(this.stack[this.index])
- switch (state.type) {
- case 'normal':
- const { blocks, cursor, renderRange } = state
- cursor.noHistory = true
- this.contentState.blocks = blocks
- this.contentState.renderRange = renderRange
- this.contentState.cursor = cursor
- this.contentState.render()
- break
- case 'codeBlock':
- const id = state.id
- const codeBlock = this.contentState.codeBlocks.get(id)
- codeBlock.focus()
- codeBlock.undo()
- break
- }
+ const { blocks, cursor, renderRange } = state
+ cursor.noHistory = true
+ this.contentState.blocks = blocks
+ this.contentState.renderRange = renderRange
+ this.contentState.cursor = cursor
+ this.contentState.render()
}
}
@@ -38,22 +28,12 @@ export class History {
if (index < len - 1) {
this.index = index + 1
const state = deepCopy(stack[this.index])
- switch (state.type) {
- case 'normal':
- const { blocks, cursor, renderRange } = state
- cursor.noHistory = true
- this.contentState.blocks = blocks
- this.contentState.renderRange = renderRange
- this.contentState.cursor = cursor
- this.contentState.render()
- break
- case 'codeBlock':
- const id = state.id
- const codeBlock = this.contentState.codeBlocks.get(id)
- codeBlock.focus()
- codeBlock.redo()
- break
- }
+ const { blocks, cursor, renderRange } = state
+ cursor.noHistory = true
+ this.contentState.blocks = blocks
+ this.contentState.renderRange = renderRange
+ this.contentState.cursor = cursor
+ this.contentState.render()
}
}
diff --git a/src/muya/lib/contentState/htmlBlock.js b/src/muya/lib/contentState/htmlBlock.js
index 292b764f..d4288346 100644
--- a/src/muya/lib/contentState/htmlBlock.js
+++ b/src/muya/lib/contentState/htmlBlock.js
@@ -1,7 +1,7 @@
-import { sanitize } from '../utils'
-import { VOID_HTML_TAGS, HTML_TAGS, HTML_TOOLS, PREVIEW_DOMPURIFY_CONFIG } from '../config'
+import { VOID_HTML_TAGS, HTML_TAGS, HTML_TOOLS } from '../config'
const HTML_BLOCK_REG = /^<([a-zA-Z\d-]+)(?=\s|>)[^<>]*?>$/
+const LINE_BREAKS = /\n/
const htmlBlock = ContentState => {
ContentState.prototype.createToolBar = function (tools, toolBarType) {
@@ -22,28 +22,36 @@ const htmlBlock = ContentState => {
return toolBar
}
- ContentState.prototype.createCodeInHtml = function (code, selection) {
+ ContentState.prototype.createCodeInHtml = function (code) {
const codeContainer = this.createBlock('div')
codeContainer.functionType = 'html'
const preview = this.createBlock('div', '', false)
- preview.htmlContent = sanitize(code, PREVIEW_DOMPURIFY_CONFIG)
preview.functionType = 'preview'
- const codePre = this.createBlock('pre')
- codePre.lang = 'html'
- codePre.functionType = 'html'
- codePre.text = code
- if (selection) {
- codePre.selection = selection
- }
- this.appendChild(codeContainer, codePre)
+ const preBlock = this.createBlock('pre')
+ const codeBlock = this.createBlock('code')
+ code.split(LINE_BREAKS).forEach(line => {
+ const codeLine = this.createBlock('span', line)
+ codeLine.functionType = 'codeLine'
+ codeLine.lang = 'markup'
+ this.appendChild(codeBlock, codeLine)
+ })
+ this.codeBlocks.set(preBlock.key, code)
+ preBlock.lang = 'markup'
+ codeBlock.lang = 'markup'
+ preBlock.functionType = 'html'
+ this.codeBlocks.set(preBlock.key, code)
+ this.appendChild(preBlock, codeBlock)
+ this.appendChild(codeContainer, preBlock)
this.appendChild(codeContainer, preview)
return codeContainer
}
ContentState.prototype.htmlToolBarClick = function (type) {
const { start: { key } } = this.cursor
- const block = this.getBlock(key)
- const codeBlockContainer = this.getParent(block)
+ const codeLine = this.getBlock(key)
+ const codeBlock = this.getParent(codeLine)
+ const preBlock = this.getParent(codeBlock)
+ const codeBlockContainer = this.getParent(preBlock)
const htmlBlock = this.getParent(codeBlockContainer)
switch (type) {
@@ -79,7 +87,6 @@ const htmlBlock = ContentState => {
ContentState.prototype.createHtmlBlock = function (code) {
const block = this.createBlock('figure')
block.functionType = 'html'
- block.text = code
const toolBar = this.createToolBar(HTML_TOOLS, 'html')
const htmlBlock = this.createCodeInHtml(code)
this.appendChild(block, toolBar)
@@ -91,24 +98,15 @@ const htmlBlock = ContentState => {
const isVoidTag = VOID_HTML_TAGS.indexOf(tagName) > -1
const { text } = block.children[0]
const htmlContent = isVoidTag ? text : `${text}\n\n${tagName}>`
-
- const pos = {
- line: isVoidTag ? 0 : 1,
- ch: isVoidTag ? text.length : 0
- }
- const range = {
- anchor: pos,
- head: pos
- }
block.type = 'figure'
block.functionType = 'html'
block.text = htmlContent
block.children = []
const toolBar = this.createToolBar(HTML_TOOLS, 'html')
- const codeContainer = this.createCodeInHtml(htmlContent, range)
+ const codeContainer = this.createCodeInHtml(htmlContent)
this.appendChild(block, toolBar)
this.appendChild(block, codeContainer)
- return codeContainer.children[0]
+ return codeContainer.children[0] // preBlock
}
ContentState.prototype.updateHtmlBlock = function (block) {
diff --git a/src/muya/lib/contentState/index.js b/src/muya/lib/contentState/index.js
index 2137e4b4..077f5466 100644
--- a/src/muya/lib/contentState/index.js
+++ b/src/muya/lib/contentState/index.js
@@ -1,5 +1,4 @@
import { HAS_TEXT_BLOCK_REG, DEFAULT_TURNDOWN_CONFIG } from '../config'
-import { setCursorAtLastLine } from '../codeMirror'
import { getUniqueId } from '../utils'
import selection from '../selection'
import StateRender from '../parser/render'
@@ -21,6 +20,8 @@ import searchCtrl from './searchCtrl'
import mathCtrl from './mathCtrl'
import imagePathCtrl from './imagePathCtrl'
import htmlBlockCtrl from './htmlBlock'
+import clickCtrl from './clickCtrl'
+import inputCtrl from './inputCtrl'
import importMarkdown from '../utils/importMarkdown'
const prototypes = [
@@ -41,12 +42,13 @@ const prototypes = [
mathCtrl,
imagePathCtrl,
htmlBlockCtrl,
+ clickCtrl,
+ inputCtrl,
importMarkdown
]
class ContentState {
constructor (muya, options) {
- const { eventCenter } = muya
const { bulletListMarker } = options
this.muya = muya
@@ -55,7 +57,7 @@ class ContentState {
// Use to cache the keys which you don't want to remove.
this.exemption = new Set()
this.blocks = [ this.createBlockP() ]
- this.stateRender = new StateRender(eventCenter)
+ this.stateRender = new StateRender(muya)
this.codeBlocks = new Map()
this.renderRange = [ null, null ]
this.currentCursor = null
@@ -69,22 +71,9 @@ class ContentState {
}
set cursor (cursor) {
- // if (this.currentCursor) {
- // const { start, end } = this.currentCursor
- // if (
- // start.key === cursor.start.key &&
- // start.offset === cursor.start.offset &&
- // end.key === cursor.end.key &&
- // end.offset === cursor.end.offset
- // ) {
- // return
- // }
- // }
-
const handler = () => {
const { blocks, renderRange, currentCursor } = this
this.history.push({
- type: 'normal',
blocks,
renderRange,
cursor: currentCursor
@@ -136,34 +125,20 @@ class ContentState {
}
setCursor () {
- const { start: { key } } = this.cursor
- const block = this.getBlock(key)
- if (block.type === 'pre' && /code|html/.test(block.functionType)) {
- const cm = this.codeBlocks.get(key)
- const { selection: codeSel } = block
- if (codeSel) {
- const { anchor, head } = codeSel
- cm.focus()
- cm.setSelection(anchor, head)
- } else {
- setCursorAtLastLine(cm)
- }
- } else {
- selection.setCursorRange(this.cursor)
- }
+ selection.setCursorRange(this.cursor)
}
setNextRenderRange () {
const { start, end } = this.cursor
- // console.log(JSON.stringify(this.cursor, null, 2))
const startBlock = this.getBlock(start.key)
const endBlock = this.getBlock(end.key)
const startOutMostBlock = this.findOutMostBlock(startBlock)
const endOutMostBlock = this.findOutMostBlock(endBlock)
+
this.renderRange = [ startOutMostBlock.preSibling, endOutMostBlock.nextSibling ]
}
- render (isRenderCursor = true, refreshCodeBlock = false) {
+ render (isRenderCursor = true) {
const { blocks, cursor, searchMatches: { matches, index } } = this
const activeBlocks = this.getActiveBlocks()
matches.forEach((m, i) => {
@@ -171,15 +146,13 @@ class ContentState {
})
this.setNextRenderRange()
this.stateRender.collectLabels(blocks)
- this.stateRender.render(blocks, cursor, activeBlocks, matches, refreshCodeBlock)
- this.pre2CodeMirror(isRenderCursor)
+ this.stateRender.render(blocks, cursor, activeBlocks, matches)
if (isRenderCursor) this.setCursor()
}
partialRender () {
const { blocks, cursor, searchMatches: { matches, index } } = this
const activeBlocks = this.getActiveBlocks()
- const cursorOutMostBlock = activeBlocks[activeBlocks.length - 1]
const [ startKey, endKey ] = this.renderRange
matches.forEach((m, i) => {
m.active = i === index
@@ -191,7 +164,6 @@ class ContentState {
this.setNextRenderRange()
this.stateRender.collectLabels(blocks)
this.stateRender.partialRender(needRenderBlocks, cursor, activeBlocks, matches, startKey, endKey)
- this.pre2CodeMirror(true, [...new Set([cursorOutMostBlock, ...needRenderBlocks])])
this.setCursor()
}
@@ -299,6 +271,7 @@ class ContentState {
}
removeTextOrBlock (block) {
+ if (block.functionType === 'languageInput') return
const checkerIn = block => {
if (this.exemption.has(block.key)) {
return true
@@ -382,7 +355,7 @@ class ContentState {
if (!afterEnd) {
const parent = this.getParent(after)
if (parent) {
- const removeAfter = isRemoveAfter && this.isOnlyEditableChild(after)
+ const removeAfter = isRemoveAfter && (this.isOnlyRemoveableChild(after))
this.removeBlocks(before, parent, removeAfter, true)
}
}
@@ -395,12 +368,6 @@ class ContentState {
}
removeBlock (block, fromBlocks = this.blocks) {
- if (block.type === 'pre') {
- const codeBlockId = block.key
- if (this.codeBlocks.has(codeBlockId)) {
- this.codeBlocks.delete(codeBlockId)
- }
- }
const remove = (blocks, block) => {
const len = blocks.length
let i
@@ -531,11 +498,11 @@ class ContentState {
return !block.nextSibling && !block.preSibling
}
- isOnlyEditableChild (block) {
+ isOnlyRemoveableChild (block) {
if (block.editable === false) return false
const parent = this.getParent(block)
- if (!parent) throw new Error('isOnlyEditableChild method only apply for child block')
- return parent.children.filter(child => child.editable).length === 1
+ if (!parent) throw new Error('isOnlyRemoveableChild method only apply for child block')
+ return parent.children.filter(child => child.editable && child.functionType !== 'languageInput').length === 1
}
getLastChild (block) {
@@ -553,7 +520,11 @@ class ContentState {
if (block.children.length === 0 && HAS_TEXT_BLOCK_REG.test(block.type)) {
return block
} else if (children.length) {
- if (children[0].type === 'input' || (children[0].type === 'div' && children[0].editable === false)) { // handle task item
+ if (
+ children[0].type === 'input' ||
+ (children[0].type === 'div' && children[0].editable === false) ||
+ (children[0].type === 'span' && children[0].functionType === 'languageInput')
+ ) { // handle task item
return this.firstInDescendant(children[1])
} else {
return this.firstInDescendant(children[0])
@@ -577,7 +548,13 @@ class ContentState {
findPreBlockInLocation (block) {
const parent = this.getParent(block)
const preBlock = this.getPreSibling(block)
- if (block.preSibling && preBlock.type !== 'input' && preBlock.type !== 'div' && preBlock.editable !== false) { // handle task item and table
+ if (
+ block.preSibling &&
+ preBlock.type !== 'input' &&
+ preBlock.type !== 'div' &&
+ preBlock.editable !== false &&
+ preBlock.functionType !== 'languageInput'
+ ) { // handle task item and table
return this.lastInDescendant(preBlock)
} else if (parent) {
return this.findPreBlockInLocation(parent)
@@ -590,7 +567,9 @@ class ContentState {
const parent = this.getParent(block)
const nextBlock = this.getNextSibling(block)
- if (nextBlock && nextBlock.editable !== false) {
+ if (
+ nextBlock && nextBlock.editable !== false
+ ) {
return this.firstInDescendant(nextBlock)
} else if (parent) {
return this.findNextBlockInLocation(parent)
@@ -627,7 +606,7 @@ class ContentState {
}
clear () {
- this.codeBlocks.clear()
+ this.history.clearHistory()
}
}
diff --git a/src/muya/lib/contentState/inputCtrl.js b/src/muya/lib/contentState/inputCtrl.js
index be245d51..0c2b89c4 100644
--- a/src/muya/lib/contentState/inputCtrl.js
+++ b/src/muya/lib/contentState/inputCtrl.js
@@ -1,6 +1,123 @@
+import selection from '../selection'
+import { getTextContent } from '../selection/dom'
+import { beginRules } from '../parser/rules'
+import { CLASS_OR_ID } from '../config'
+
+const BRACKET_HASH = {
+ '{': '}',
+ '[': ']',
+ '(': ')',
+ '*': '*',
+ '_': '_',
+ '"': '"',
+ '\'': '\''
+}
+
const inputCtrl = ContentState => {
+ // Input @ to quick insert paragraph
+ ContentState.prototype.checkQuickInsert = function (block) {
+ const { type, text, functionType } = block
+ if (type !== 'span' || functionType) return false
+ return /^@[a-zA-Z\d]*$/.test(text)
+ }
ContentState.prototype.inputHandler = function (event) {
- // todo
+ const { start, end } = selection.getCursorRange()
+ const { start: oldStart, end: oldEnd } = this.cursor
+ const key = start.key
+ const block = this.getBlock(key)
+ const paragraph = document.querySelector(`#${key}`)
+ let text = getTextContent(paragraph, [ CLASS_OR_ID['AG_MATH_RENDER'] ])
+ let needRender = false
+ let needRenderAll = false
+
+ if (oldStart.key !== oldEnd.key) {
+ const startBlock = this.getBlock(oldStart.key)
+ const endBlock = this.getBlock(oldEnd.key)
+ this.removeBlocks(startBlock, endBlock)
+ needRender = true
+ }
+
+ // auto pair (not need to auto pair in math block)
+ if (block && block.text !== text) {
+ if (
+ start.key === end.key &&
+ start.offset === end.offset
+ ) {
+ const { offset } = start
+ const { autoPairBracket, autoPairMarkdownSyntax, autoPairQuote } = this
+ const inputChar = text.charAt(+offset - 1)
+ const preInputChar = text.charAt(+offset - 2)
+ const postInputChar = text.charAt(+offset)
+ /* eslint-disable no-useless-escape */
+ if (
+ (event.inputType.indexOf('delete') === -1) &&
+ (inputChar === postInputChar) &&
+ (
+ (autoPairQuote && /[']{1}/.test(inputChar)) ||
+ (autoPairQuote && /["]{1}/.test(inputChar)) ||
+ (autoPairBracket && /[\}\]\)]{1}/.test(inputChar)) ||
+ (autoPairMarkdownSyntax && /[*_]{1}/.test(inputChar))
+ )
+ ) {
+ text = text.substring(0, offset) + text.substring(offset + 1)
+ } else {
+ /* eslint-disable no-useless-escape */
+ // Not Unicode aware, since things like \p{Alphabetic} or \p{L} are not supported yet
+ if (
+ (autoPairQuote && /[']{1}/.test(inputChar) && !(/[a-zA-Z\d]{1}/.test(preInputChar))) ||
+ (autoPairQuote && /["]{1}/.test(inputChar)) ||
+ (autoPairBracket && /[\{\[\(]{1}/.test(inputChar)) ||
+ (block.functionType !== 'codeLine' && autoPairMarkdownSyntax && /[*_]{1}/.test(inputChar))
+ ) {
+ needRender = true
+ text = BRACKET_HASH[event.data]
+ ? text.substring(0, offset) + BRACKET_HASH[inputChar] + text.substring(offset)
+ : text
+ }
+ /* eslint-enable no-useless-escape */
+ if (/\s/.test(event.data) && preInputChar === '*' && postInputChar === '*') {
+ text = text.substring(0, offset) + text.substring(offset + 1)
+ }
+ }
+ }
+ block.text = text
+ if (beginRules['reference_definition'].test(text)) {
+ needRenderAll = true
+ }
+ }
+
+ // show quick insert
+ const rect = paragraph.getBoundingClientRect()
+ const checkQuickInsert = this.checkQuickInsert(block)
+ const reference = this.getPositionReference()
+ reference.getBoundingClientRect = function () {
+ const { x, y, left, top, height, bottom } = rect
+
+ return Object.assign({}, {
+ left,
+ x,
+ top,
+ y,
+ bottom,
+ height,
+ width: 0,
+ right: left
+ })
+ }
+ this.muya.eventCenter.dispatch('muya-quick-insert', reference, block, checkQuickInsert)
+
+ // Update preview content of math block
+ if (block && block.type === 'span' && block.functionType === 'codeLine') {
+ needRender = true
+ this.updateCodeBlocks(block)
+ }
+
+ this.cursor = { start, end }
+ const checkMarkedUpdate = this.checkNeedRender()
+ const inlineUpdatedBlock = this.isCollapse() && this.checkInlineUpdate(block)
+ if (checkMarkedUpdate || inlineUpdatedBlock || needRender) {
+ return needRenderAll ? this.render() : this.partialRender()
+ }
}
}
diff --git a/src/muya/lib/contentState/mathCtrl.js b/src/muya/lib/contentState/mathCtrl.js
index c159d513..3e5e70c8 100644
--- a/src/muya/lib/contentState/mathCtrl.js
+++ b/src/muya/lib/contentState/mathCtrl.js
@@ -5,44 +5,54 @@ const mathCtrl = ContentState => {
ContentState.prototype.createMathBlock = function (value = '') {
const FUNCTION_TYPE = 'multiplemath'
const mathBlock = this.createBlock('figure')
- const textArea = this.createBlock('pre')
- const mathPreview = this.createBlock('div', '', false)
+ mathBlock.functionType = FUNCTION_TYPE
+ const { preBlock, mathPreview } = this.createMathAndPreview(value)
+ this.appendChild(mathBlock, preBlock)
+ this.appendChild(mathBlock, mathPreview)
+ this.codeBlocks.set(preBlock.key, value)
+ return mathBlock
+ }
+
+ ContentState.prototype.createMathAndPreview = function (value = '') {
+ const FUNCTION_TYPE = 'multiplemath'
+ const preBlock = this.createBlock('pre')
+ const codeBlock = this.createBlock('code')
+ preBlock.functionType = FUNCTION_TYPE
+ preBlock.lang = codeBlock.lang = 'latex'
+ this.appendChild(preBlock, codeBlock)
+
if (typeof value === 'string' && value) {
- const lines = value.replace(/^\s+/, '').split(LINE_BREAKS_REG).map(line => this.createBlock('span', line))
- for (const line of lines) {
- line.functionType = FUNCTION_TYPE
- this.appendChild(textArea, line)
- }
+ value.replace(/^\s+/, '').split(LINE_BREAKS_REG).forEach(line => {
+ const codeLine = this.createBlock('span', line)
+ codeLine.functionType = 'codeLine'
+ codeLine.lang = 'latex'
+ this.appendChild(codeBlock, codeLine)
+ })
} else {
const emptyLine = this.createBlock('span')
- emptyLine.functionType = FUNCTION_TYPE
- this.appendChild(textArea, emptyLine)
+ emptyLine.functionType = 'codeLine'
+ emptyLine.lang = 'latex'
+ this.appendChild(codeBlock, emptyLine)
}
- mathBlock.functionType = textArea.functionType = mathPreview.functionType = FUNCTION_TYPE
- mathPreview.math = value
- this.appendChild(mathBlock, textArea)
- this.appendChild(mathBlock, mathPreview)
- return mathBlock
+ const mathPreview = this.createBlock('div', '', false)
+ this.codeBlocks.set(preBlock.key, '')
+ mathPreview.functionType = FUNCTION_TYPE
+
+ return { preBlock, mathPreview }
}
ContentState.prototype.initMathBlock = function (block) { // p block
const FUNCTION_TYPE = 'multiplemath'
- const textArea = this.createBlock('pre')
- const emptyLine = this.createBlock('span')
- textArea.functionType = emptyLine.functionType = FUNCTION_TYPE
- this.appendChild(textArea, emptyLine)
block.type = 'figure'
block.functionType = FUNCTION_TYPE
block.children = []
- const mathPreview = this.createBlock('div', '', false)
- mathPreview.math = ''
- mathPreview.functionType = FUNCTION_TYPE
+ const { preBlock, mathPreview } = this.createMathAndPreview()
- this.appendChild(block, textArea)
+ this.appendChild(block, preBlock)
this.appendChild(block, mathPreview)
- return emptyLine
+ return preBlock.children[0].children[0]
}
ContentState.prototype.handleMathBlockClick = function (mathFigure) {
diff --git a/src/muya/lib/contentState/paragraphCtrl.js b/src/muya/lib/contentState/paragraphCtrl.js
index 3327da35..3028b2ac 100644
--- a/src/muya/lib/contentState/paragraphCtrl.js
+++ b/src/muya/lib/contentState/paragraphCtrl.js
@@ -17,7 +17,6 @@ const getCurrentLevel = type => {
const paragraphCtrl = ContentState => {
ContentState.prototype.selectionChange = function (cursor) {
- const { fontSize, lineHeight } = this
const { start, end } = cursor || selection.getCursorRange()
const cursorCoords = selection.getCursorCoords()
const startBlock = this.getBlock(start.key)
@@ -33,13 +32,6 @@ const paragraphCtrl = ContentState => {
end.type = endBlock.type
end.block = endBlock
- if (start.type === 'pre' && end.type === 'pre' && startBlock.functionType !== 'frontmatter') {
- const preElement = document.querySelector(`#${start.key}`)
- const { top } = preElement.getBoundingClientRect()
- const { line } = start.block.selection.anchor
- cursorCoords.y = top + line * lineHeight * fontSize
- }
-
return {
start,
end,
@@ -73,10 +65,13 @@ const paragraphCtrl = ContentState => {
const firstBlock = this.blocks[0]
if (firstBlock.type === 'pre' && firstBlock.functionType === 'frontmatter') return
const frontMatter = this.createBlock('pre')
+ const codeBlock = this.createBlock('code')
const emptyLine = this.createBlock('span')
- emptyLine.functionType = 'frontmatter'
+ frontMatter.lang = codeBlock.lang = emptyLine.lang = 'yaml'
+ emptyLine.functionType = 'codeLine'
frontMatter.functionType = 'frontmatter'
- this.appendChild(frontMatter, emptyLine)
+ this.appendChild(codeBlock, emptyLine)
+ this.appendChild(frontMatter, codeBlock)
this.insertBefore(frontMatter, firstBlock)
const { key } = emptyLine
const offset = 0
@@ -197,70 +192,75 @@ const paragraphCtrl = ContentState => {
const startParents = this.getParents(startBlock)
const endParents = this.getParents(endBlock)
const hasFencedCodeBlockParent = () => {
- return startParents.some(b => b.type === 'pre' && b.functionType === 'code') ||
- endParents.some(b => b.type === 'pre' && b.functionType === 'code')
+ return startParents.some(b => b.type === 'pre' && /code/.test(b.functionType)) ||
+ endParents.some(b => b.type === 'pre' && /code/.test(b.functionType))
}
// change fenced code block to p paragraph
- if (affiliation.length && affiliation[0].type === 'pre' && affiliation[0].functionType === 'code') {
- const codeBlock = affiliation[0]
- this.codeBlocks.delete(codeBlock.key)
- codeBlock.type = 'p'
- codeBlock.children = []
- const lines = codeBlock.text.split(LINE_BREAKS_REG).map(line => this.createBlock('span', line))
- for (const line of lines) {
- this.appendChild(codeBlock, line)
+ if (affiliation.length && affiliation[0].type === 'pre' && /code/.test(affiliation[0].functionType)) {
+ const preBlock = affiliation[0]
+ const codeLines = preBlock.children[1].children
+ this.codeBlocks.delete(preBlock.key)
+ preBlock.type = 'p'
+ preBlock.children = []
+
+ for (const line of codeLines) {
+ delete line.lang
+ delete line.functionType
+ this.appendChild(preBlock, line)
}
- const { key } = codeBlock.children[codeBlock.selection.anchor.line]
- const offset = codeBlock.selection.anchor.ch
- delete codeBlock.selection
- delete codeBlock.history
- delete codeBlock.lang
- delete codeBlock.coords
- delete codeBlock.text
- delete codeBlock.codeBlockStyle
- delete codeBlock.functionType
+ delete preBlock.lang
+ delete preBlock.functionType
this.cursor = {
- start: { key, offset },
- end: { key, offset }
+ start: this.cursor.start,
+ end: this.cursor.end
}
} else {
if (start.key === end.key) {
if (startBlock.type === 'span') {
startBlock = this.getParent(startBlock)
- startBlock.text = startBlock.children.map(line => line.text).join('\n')
- const line = startBlock.children.findIndex(line => line.key === start.key)
- const ch = start.offset
- startBlock.selection = {
- anchor: { line, ch },
- head: { line, ch }
- }
+ startBlock.type = 'pre'
+ const codeBlock = this.createBlock('code')
+ const inputBlock = this.createBlock('span', '')
+ inputBlock.functionType = 'languageInput'
+ startBlock.functionType = 'fencecode'
+ startBlock.lang = codeBlock.lang = ''
+ const codeLines = startBlock.children
startBlock.children = []
+ codeLines.forEach(line => {
+ line.functionType = 'codeLine'
+ line.lang = ''
+ this.appendChild(codeBlock, line)
+ })
+ this.appendChild(startBlock, inputBlock)
+ this.appendChild(startBlock, codeBlock)
}
- const { key } = startBlock
- const offset = 0
- startBlock.type = 'pre'
- startBlock.codeBlockStyle = 'fenced'
- startBlock.functionType = 'code'
- startBlock.history = null
- startBlock.lang = ''
+
this.cursor = {
- start: { key, offset },
- end: { key, offset }
+ start: this.cursor.start,
+ end: this.cursor.end
}
} else if (!hasFencedCodeBlockParent()) {
const { parent, startIndex, endIndex } = this.getCommonParent()
const children = parent ? parent.children : this.blocks
const referBlock = children[endIndex]
- const codeBlock = this.createBlock('pre')
- codeBlock.codeBlockStyle = 'fenced'
- codeBlock.functionType = 'code'
- codeBlock.history = null
- codeBlock.lang = ''
+ const preBlock = this.createBlock('pre')
+ const codeBlock = this.createBlock('code')
+ preBlock.functionType = 'fencecode'
+ preBlock.lang = codeBlock.lang = ''
const markdown = new ExportMarkdown(children.slice(startIndex, endIndex + 1)).generate()
- codeBlock.text = markdown
- this.insertAfter(codeBlock, referBlock)
+ markdown.split(LINE_BREAKS_REG).forEach(text => {
+ const codeLine = this.createBlock('span', text)
+ codeLine.lang = ''
+ codeLine.functionType = 'codeLine'
+ this.appendChild(codeBlock, codeLine)
+ })
+ const inputBlock = this.createBlock('span', '')
+ inputBlock.functionType = 'languageInput'
+ this.appendChild(preBlock, inputBlock)
+ this.appendChild(preBlock, codeBlock)
+ this.insertAfter(preBlock, referBlock)
let i
const removeCache = []
for (i = startIndex; i <= endIndex; i++) {
@@ -268,7 +268,7 @@ const paragraphCtrl = ContentState => {
removeCache.push(child)
}
removeCache.forEach(b => this.removeBlock(b))
- const key = codeBlock.key
+ const key = codeBlock.children[0].key
const offset = 0
this.cursor = {
start: { key, offset },
@@ -353,8 +353,8 @@ const paragraphCtrl = ContentState => {
ContentState.prototype.insertHtmlBlock = function (block) {
const parentBlock = this.getParent(block)
block.text = '
'
- const cursorBlock = this.initHtmlBlock(parentBlock, 'div')
- const key = cursorBlock.key
+ const preBlock = this.initHtmlBlock(parentBlock, 'div')
+ const key = preBlock.children[0].children[1].key
const offset = 0
this.cursor = {
start: { key, offset },
@@ -519,8 +519,30 @@ const paragraphCtrl = ContentState => {
// if cursor is not in one line or paragraph, can not insert paragraph
if (start.key !== end.key) return
let block = this.getBlock(start.key)
- if (block.type === 'span') {
+ if (block.type === 'span' && !block.functionType) {
block = this.getParent(block)
+ } else if (block.type === 'span' && block.functionType === 'codeLine') {
+ const preBlock = this.getParent(this.getParent(block))
+ switch (preBlock.functionType) {
+ case 'fencecode':
+ case 'indentcode':
+ case 'frontmatter': {
+ // You can not insert paragraph before frontmatter
+ if (preBlock.functionType === 'frontmatter' && location === 'before') {
+ return
+ }
+ block = preBlock
+ break
+ }
+ case 'html': {
+ block = this.getParent(this.getParent(preBlock))
+ break
+ }
+ case 'multiplemath': {
+ block = this.getParent(preBlock)
+ break
+ }
+ }
} else if (/th|td/.test(block.type)) {
// get figure block from table cell
block = this.getParent(this.getParent(this.getParent(this.getParent(block))))
diff --git a/src/muya/lib/contentState/pasteCtrl.js b/src/muya/lib/contentState/pasteCtrl.js
index c15d6d2d..09ec23be 100644
--- a/src/muya/lib/contentState/pasteCtrl.js
+++ b/src/muya/lib/contentState/pasteCtrl.js
@@ -43,6 +43,7 @@ const pasteCtrl = ContentState => {
const sanitizedHtml = sanitize(html, PREVIEW_DOMPURIFY_CONFIG)
const tempWrapper = document.createElement('div')
tempWrapper.innerHTML = sanitizedHtml
+ // special process for Number app in macOs
const tables = Array.from(tempWrapper.querySelectorAll('table'))
for (const table of tables) {
const row = table.querySelector('tr')
@@ -66,15 +67,11 @@ const pasteCtrl = ContentState => {
// handle `normal` and `pasteAsPlainText` paste
ContentState.prototype.pasteHandler = function (event, type) {
- if (this.checkInCodeBlock()) {
- return
- }
event.preventDefault()
const text = event.clipboardData.getData('text/plain')
let html = event.clipboardData.getData('text/html')
+
html = this.standardizeHTML(html)
- // console.log(text)
- // console.log(html)
const copyType = this.checkCopyType(html, text)
const { start, end } = this.cursor
const startBlock = this.getBlock(start.key)
@@ -95,6 +92,31 @@ const pasteCtrl = ContentState => {
}
}
+ if (startBlock.type === 'span' && startBlock.functionType === 'codeLine') {
+ let referenceBlock = startBlock
+ const textList = text.split(LINE_BREAKS_REG)
+ textList.forEach((line, i) => {
+ if (i === 0) {
+ startBlock.text += line
+ } else {
+ const lineBlock = this.createBlock('span', line)
+ lineBlock.functionType = startBlock.functionType
+ lineBlock.lang = startBlock.lang
+ this.insertAfter(lineBlock, referenceBlock)
+ referenceBlock = lineBlock
+ if (i === textList.length - 1) {
+ const { key } = lineBlock
+ const offset = line.length
+ this.cursor = {
+ start: { key, offset },
+ end: { key, offset }
+ }
+ }
+ }
+ })
+ return this.partialRender()
+ }
+
// handle copyAsHtml
if (copyType === 'copyAsHtml') {
switch (type) {
@@ -196,6 +218,7 @@ const pasteCtrl = ContentState => {
startBlock.text += firstFragment.children[0].text
firstFragment.children.slice(1).forEach(line => {
if (startBlock.functionType) line.functionType = startBlock.functionType
+ if (startBlock.lang) line.lang = startBlock.lang
this.appendChild(parent, line)
})
} else if (/^h\d$/.test(firstFragment.type)) {
@@ -234,8 +257,8 @@ const pasteCtrl = ContentState => {
cursorBlock = startBlock
}
// TODO @Jocs duplicate with codes in updateCtrl.js
- if (cursorBlock && cursorBlock.type === 'span' && cursorBlock.functionType === 'multiplemath') {
- this.updateMathContent(cursorBlock)
+ if (cursorBlock && cursorBlock.type === 'span' && cursorBlock.functionType === 'codeLine') {
+ this.updateCodeBlocks(cursorBlock)
}
this.cursor = {
start: {
diff --git a/src/muya/lib/contentState/tabCtrl.js b/src/muya/lib/contentState/tabCtrl.js
index 1ecfcb97..0ff7269d 100644
--- a/src/muya/lib/contentState/tabCtrl.js
+++ b/src/muya/lib/contentState/tabCtrl.js
@@ -123,7 +123,7 @@ const tabCtrl = ContentState => {
ContentState.prototype.insertTab = function () {
const tabSize = this.tabSize
- const tabCharacter = ' '.repeat(tabSize)
+ const tabCharacter = String.fromCharCode(160).repeat(tabSize)
const { start, end } = this.cursor
const startBlock = this.getBlock(start.key)
const endBlock = this.getBlock(end.key)
diff --git a/src/muya/lib/contentState/updateCtrl.js b/src/muya/lib/contentState/updateCtrl.js
index 1c581807..2abf864b 100644
--- a/src/muya/lib/contentState/updateCtrl.js
+++ b/src/muya/lib/contentState/updateCtrl.js
@@ -1,9 +1,6 @@
-import selection from '../selection'
import { tokenizer } from '../parser/parse'
import { conflict } from '../utils'
-import { getTextContent } from '../selection/dom'
import { CLASS_OR_ID, DEFAULT_TURNDOWN_CONFIG } from '../config'
-import { beginRules } from '../parser/rules'
const INLINE_UPDATE_FRAGMENTS = [
'^([*+-]\\s)', // Bullet list
@@ -16,8 +13,6 @@ const INLINE_UPDATE_FRAGMENTS = [
const INLINE_UPDATE_REG = new RegExp(INLINE_UPDATE_FRAGMENTS.join('|'), 'i')
-let lastCursor = null
-
const updateCtrl = ContentState => {
// handle task list item checkbox click
ContentState.prototype.listItemCheckBoxClick = function (checkbox) {
@@ -32,29 +27,41 @@ const updateCtrl = ContentState => {
return list.children[0].isLooseListItem === isLooseType
}
- ContentState.prototype.checkNeedRender = function (block) {
- const { start: cStart, end: cEnd } = this.cursor
+ ContentState.prototype.checkNeedRender = function (cursor = this.cursor) {
+ const { start: cStart, end: cEnd } = cursor
+ const startBlock = this.getBlock(cStart.key)
+ const endBlock = this.getBlock(cEnd.key)
const startOffset = cStart.offset
const endOffset = cEnd.offset
- const tokens = tokenizer(block.text)
- const textLen = block.text.length
- for (const token of tokens) {
+ for (const token of tokenizer(startBlock.text)) {
if (token.type === 'text') continue
const { start, end } = token.range
+ const textLen = startBlock.text.length
+ if (
+ conflict([Math.max(0, start - 1), Math.min(textLen, end + 1)], [startOffset, startOffset])
+ ) {
+ return true
+ }
+ }
+ for (const token of tokenizer(endBlock.text)) {
+ if (token.type === 'text') continue
+ const { start, end } = token.range
+ const textLen = endBlock.text.length
if (
- conflict([Math.max(0, start - 1), Math.min(textLen, end + 1)], [startOffset, startOffset]) ||
conflict([Math.max(0, start - 1), Math.min(textLen, end + 1)], [endOffset, endOffset])
) {
return true
}
}
+
return false
}
ContentState.prototype.checkInlineUpdate = function (block) {
// table cell can not have blocks in it
if (/th|td|figure/.test(block.type)) return false
+ if (/codeLine|languageInput/.test(block.functionType)) return false
// only first line block can update to other block
if (block.type === 'span' && block.preSibling) return false
if (block.type === 'span') {
@@ -90,13 +97,6 @@ const updateCtrl = ContentState => {
}
}
- // Input @ to quick insert paragraph
- ContentState.prototype.checkQuickInsert = function (block) {
- const { type, text, functionType } = block
- if (type !== 'span' || functionType) return false
- return /^@[a-zA-Z\d]*$/.test(text)
- }
-
// thematic break
ContentState.prototype.updateHr = function (block, marker) {
if (block.type !== 'hr') {
@@ -293,192 +293,11 @@ const updateCtrl = ContentState => {
return null
}
- ContentState.prototype.updateMathContent = function (block) {
- const preBlock = this.getParent(block)
- const mathPreview = this.getNextSibling(preBlock)
- const math = preBlock.children.map(line => line.text).join('\n')
- mathPreview.math = math
- }
-
- ContentState.prototype.updateState = function (event) {
- const { start, end } = selection.getCursorRange()
- const key = start.key
- const block = this.getBlock(key)
-
- // bugfix: #67 problem 1
- if (block && block.icon) return event.preventDefault()
-
- if (event.type === 'click' && start.key !== end.key) {
- setTimeout(() => {
- this.updateState(event)
- })
- }
-
- const { start: oldStart, end: oldEnd } = this.cursor
- if (event.type === 'input' && oldStart.key !== oldEnd.key) {
- const startBlock = this.getBlock(oldStart.key)
- const endBlock = this.getBlock(oldEnd.key)
- this.removeBlocks(startBlock, endBlock)
- // there still has little bug, when the oldstart block is `pre`, the input value will be ignored.
- // and act as `backspace`
- if (startBlock.type === 'pre' && /code|html/.test(startBlock.functionType)) {
- event.preventDefault()
- const startRemainText = startBlock.type === 'pre'
- ? startBlock.text.substring(0, oldStart.offset - 1)
- : startBlock.text.substring(0, oldStart.offset)
-
- const endRemainText = endBlock.type === 'pre'
- ? endBlock.text.substring(oldEnd.offset - 1)
- : endBlock.text.substring(oldEnd.offset)
-
- startBlock.text = startRemainText + endRemainText
- const key = oldStart.key
- const offset = oldStart.offset
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
- }
- return this.partialRender()
- }
- }
-
- if (start.key !== end.key) {
- if (
- start.key !== oldStart.key ||
- end.key !== oldEnd.key ||
- start.offset !== oldStart.offset ||
- end.offset !== oldEnd.offset
- ) {
- this.cursor = { start, end }
- return this.partialRender()
- }
- }
-
- const oldKey = lastCursor ? lastCursor.start.key : null
- const paragraph = document.querySelector(`#${key}`)
- let text = getTextContent(paragraph, [ CLASS_OR_ID['AG_MATH_RENDER'] ])
- let needRender = false
- let needRenderAll = false
- if (event.type === 'click' && block.type === 'figure' && block.functionType === 'table') {
- // first cell in thead
- const cursorBlock = block.children[1].children[0].children[0].children[0]
- const offset = cursorBlock.text.length
- const key = cursorBlock.key
- this.cursor = {
- start: { key, offset },
- end: { key, offset }
- }
- return this.partialRender()
- }
-
- // update '```xxx' to code block when you click other place or use press arrow key.
- if (block && key !== oldKey) {
- const oldBlock = this.getBlock(oldKey)
- if (oldBlock) this.codeBlockUpdate(oldBlock)
- }
-
- if (block && block.type === 'pre' && /code|html/.test(block.functionType)) {
- if (block.key !== oldKey) {
- this.cursor = lastCursor = { start, end }
- if (event.type === 'click' && oldKey) {
- this.partialRender()
- }
- }
- return
- }
-
- // auto pair (not need to auto pair in math block)
- if (block && block.text !== text) {
- const BRACKET_HASH = {
- '{': '}',
- '[': ']',
- '(': ')',
- '*': '*',
- '_': '_',
- '"': '"',
- '\'': '\''
- }
-
- if (start.key === end.key && start.offset === end.offset && event.type === 'input' && block.functionType !== 'multiplemath') {
- const { offset } = start
- const { autoPairBracket, autoPairMarkdownSyntax, autoPairQuote } = this
- const inputChar = text.charAt(+offset - 1)
- const preInputChar = text.charAt(+offset - 2)
- const postInputChar = text.charAt(+offset)
- /* eslint-disable no-useless-escape */
- if (
- (event.inputType.indexOf('delete') === -1) &&
- (inputChar === postInputChar) &&
- (
- (autoPairQuote && /[']{1}/.test(inputChar)) ||
- (autoPairQuote && /["]{1}/.test(inputChar)) ||
- (autoPairBracket && /[\}\]\)]{1}/.test(inputChar)) ||
- (autoPairMarkdownSyntax && /[*_]{1}/.test(inputChar))
- )
- ) {
- text = text.substring(0, offset) + text.substring(offset + 1)
- } else {
- /* eslint-disable no-useless-escape */
- // Not Unicode aware, since things like \p{Alphabetic} or \p{L} are not supported yet
- if (
- (autoPairQuote && /[']{1}/.test(inputChar) && !(/[a-zA-Z\d]{1}/.test(preInputChar))) ||
- (autoPairQuote && /["]{1}/.test(inputChar)) ||
- (autoPairBracket && /[\{\[\(]{1}/.test(inputChar)) ||
- (autoPairMarkdownSyntax && /[*_]{1}/.test(inputChar))
- ) {
- text = BRACKET_HASH[event.data]
- ? text.substring(0, offset) + BRACKET_HASH[inputChar] + text.substring(offset)
- : text
- }
- /* eslint-enable no-useless-escape */
- if (/\s/.test(event.data) && preInputChar === '*' && postInputChar === '*') {
- text = text.substring(0, offset) + text.substring(offset + 1)
- }
- }
- }
- block.text = text
- if (beginRules['reference_definition'].test(text)) {
- needRenderAll = true
- }
- }
-
- // Update preview content of math block
- if (block && block.type === 'span' && block.functionType === 'multiplemath') {
- this.updateMathContent(block)
- }
-
- if (oldKey !== key || oldStart.offset !== start.offset || oldEnd.offset !== end.offset) {
- needRender = true
- }
-
- this.cursor = lastCursor = { start, end }
- const checkMarkedUpdate = this.checkNeedRender(block)
-
- if (event.type === 'input') {
- const rect = paragraph.getBoundingClientRect()
- const checkQuickInsert = this.checkQuickInsert(block)
- const reference = this.getPositionReference()
- reference.getBoundingClientRect = function () {
- const { x, y, left, top, height, bottom } = rect
-
- return Object.assign({}, {
- left,
- x,
- top,
- y,
- bottom,
- height,
- width: 0,
- right: left
- })
- }
- this.muya.eventCenter.dispatch('muya-quick-insert', reference, block, checkQuickInsert)
- }
-
- const inlineUpdatedBlock = this.isCollapse() && !/frontmatter|multiplemath/.test(block.functionType) && this.checkInlineUpdate(block)
- if (checkMarkedUpdate || inlineUpdatedBlock || needRender) {
- needRenderAll ? this.render() : this.partialRender()
- }
+ ContentState.prototype.updateCodeBlocks = function (block) {
+ const codeBlock = this.getParent(block)
+ const preBlock = this.getParent(codeBlock)
+ const code = codeBlock.children.map(line => line.text).join('\n')
+ this.codeBlocks.set(preBlock.key, code)
}
}
diff --git a/src/muya/lib/eventHandler/clickEvent.js b/src/muya/lib/eventHandler/clickEvent.js
index d1deb1e1..c4151810 100644
--- a/src/muya/lib/eventHandler/clickEvent.js
+++ b/src/muya/lib/eventHandler/clickEvent.js
@@ -12,10 +12,6 @@ class ClickEvent {
const { container, eventCenter, contentState } = this.muya
const handler = event => {
const { target } = event
- // handler code block click.
- if (target.tagName === 'PRE' && target.classList.contains(CLASS_OR_ID['AG_CODE_BLOCK'])) {
- contentState.focusCodeBlock(event)
- }
// handler table | html toolbar click
const toolItem = getToolItem(target)
if (toolItem) {
@@ -56,13 +52,7 @@ class ClickEvent {
if (target.tagName === 'INPUT' && target.classList.contains(CLASS_OR_ID['AG_TASK_LIST_ITEM_CHECKBOX'])) {
contentState.listItemCheckBoxClick(target)
}
- // is show format float box?
- const { start, end } = selection.getCursorRange()
- if (start.key === end.key && start.offset !== end.offset) {
- const reference = contentState.getPositionReference()
- const { formats } = contentState.selectionFormats()
- eventCenter.dispatch('muya-format-picker', { reference, formats })
- }
+ contentState.clickHandler(event)
}
eventCenter.attachDOMEvent(container, 'click', handler)
diff --git a/src/muya/lib/eventHandler/keyboard.js b/src/muya/lib/eventHandler/keyboard.js
index 971bf05e..d5ae96d9 100644
--- a/src/muya/lib/eventHandler/keyboard.js
+++ b/src/muya/lib/eventHandler/keyboard.js
@@ -1,8 +1,8 @@
-import { EVENT_KEYS, CLASS_OR_ID } from '../config'
+import { EVENT_KEYS } from '../config'
import selection from '../selection'
import { findNearestParagraph } from '../selection/dom'
import { getParagraphReference } from '../utils'
-import { checkEditLanguage } from '../codeMirror/language'
+import { checkEditLanguage } from '../prism/index'
import { checkEditEmoji } from '../ui/emojis'
class Keyboard {
@@ -11,7 +11,7 @@ class Keyboard {
this._isEditChinese = false
this.shownFloat = new Set()
this.recordEditChinese()
- this.dispatchUpdateState()
+ this.dispatchEditorState()
this.keydownBinding()
this.keyupBinding()
this.inputBinding()
@@ -39,32 +39,25 @@ class Keyboard {
eventCenter.attachDOMEvent(container, 'compositionstart', handler)
}
- dispatchUpdateState () {
+ dispatchEditorState () {
const { container, eventCenter, contentState } = this.muya
let timer = null
const changeHandler = event => {
- const target = event.target
- if (event.type === 'click' && target.classList.contains(CLASS_OR_ID['AG_FUNCTION_HTML'])) return
if (event.type === 'keyup' && (event.key === EVENT_KEYS.ArrowUp || event.key === EVENT_KEYS.ArrowDown) && this.shownFloat.size > 0) return
- if (!this._isEditChinese) {
- contentState.updateState(event)
- }
- if (event.type === 'click' || event.type === 'keyup') {
- if (timer) clearTimeout(timer)
- timer = setTimeout(() => {
- const selectionChanges = contentState.selectionChange()
- const { formats } = contentState.selectionFormats()
- eventCenter.dispatch('selectionChange', selectionChanges)
- eventCenter.dispatch('selectionFormats', formats)
- this.muya.dispatchChange()
- })
- }
+
+ if (timer) clearTimeout(timer)
+ timer = setTimeout(() => {
+ const selectionChanges = contentState.selectionChange()
+ const { formats } = contentState.selectionFormats()
+ eventCenter.dispatch('selectionChange', selectionChanges)
+ eventCenter.dispatch('selectionFormats', formats)
+ this.muya.dispatchChange()
+ })
}
eventCenter.attachDOMEvent(container, 'click', changeHandler)
eventCenter.attachDOMEvent(container, 'keyup', changeHandler)
- eventCenter.attachDOMEvent(container, 'input', changeHandler)
}
keydownBinding () {
@@ -123,7 +116,7 @@ class Keyboard {
inputBinding () {
const { container, eventCenter, contentState } = this.muya
- const inputHandler = _ => {
+ const inputHandler = event => {
const node = selection.getSelectionStart()
const paragraph = findNearestParagraph(node)
const selectionState = selection.exportSelection(paragraph)
@@ -136,6 +129,12 @@ class Keyboard {
contentState.selectLanguage(paragraph, item.name)
}
})
+ } else {
+ // hide code picker float box
+ eventCenter.dispatch('muya-code-picker', { reference: null })
+ }
+ if (!this._isEditChinese) {
+ contentState.inputHandler(event)
}
}
@@ -154,7 +153,9 @@ class Keyboard {
emojiNode &&
event.key !== EVENT_KEYS.Enter &&
event.key !== EVENT_KEYS.ArrowDown &&
- event.key !== EVENT_KEYS.ArrowUp
+ event.key !== EVENT_KEYS.ArrowUp &&
+ event.key !== EVENT_KEYS.Tab &&
+ event.key !== EVENT_KEYS.Escape
) {
const reference = getParagraphReference(emojiNode, paragraph.id)
eventCenter.dispatch('muya-emoji-picker', {
@@ -169,7 +170,8 @@ class Keyboard {
}
// is show format float box?
const { start, end } = selection.getCursorRange()
- if (start.key === end.key && start.offset !== end.offset) {
+ const block = contentState.getBlock(start.key)
+ if (start.key === end.key && start.offset !== end.offset && block.functionType !== 'codeLine') {
const reference = contentState.getPositionReference()
const { formats } = contentState.selectionFormats()
eventCenter.dispatch('muya-format-picker', { reference, formats })
diff --git a/src/muya/lib/index.js b/src/muya/lib/index.js
index 6df9d3d3..5573be93 100644
--- a/src/muya/lib/index.js
+++ b/src/muya/lib/index.js
@@ -3,7 +3,7 @@ import EventCenter from './eventHandler/event'
import Clipboard from './eventHandler/clipboard'
import Keyboard from './eventHandler/keyboard'
import ClickEvent from './eventHandler/clickEvent'
-import { CLASS_OR_ID, codeMirrorConfig } from './config'
+import { CLASS_OR_ID } from './config'
import { wordCount } from './utils'
import ExportMarkdown from './utils/exportMarkdown'
import ExportHtml from './utils/exportHtml'
@@ -137,14 +137,10 @@ class Muya {
setTheme (name) {
if (!name) return
const { eventCenter } = this
- if (name === 'dark') {
- codeMirrorConfig.theme = 'railscasts'
- } else {
- delete codeMirrorConfig.theme
- }
this.theme = name
// Render cursor and refresh code block
- this.contentState.render(true, true)
+ this.contentState.render(true)
+ // notice the ui components to change theme
eventCenter.dispatch('theme-change', name)
}
diff --git a/src/muya/lib/parser/render/index.js b/src/muya/lib/parser/render/index.js
index ad698d9b..b12b0417 100644
--- a/src/muya/lib/parser/render/index.js
+++ b/src/muya/lib/parser/render/index.js
@@ -7,9 +7,9 @@ import renderInlines from './renderInlines'
import renderBlock from './renderBlock'
class StateRender {
- constructor (eventCenter) {
- this.eventCenter = eventCenter
- this.refreshCodeBlock = false
+ constructor (muya) {
+ this.muya = muya
+ this.eventCenter = muya.eventCenter
this.loadImageMap = new Map()
this.loadMathMap = new Map()
this.tokenCache = new Map()
@@ -81,14 +81,10 @@ class StateRender {
if (type === 'span') {
selector += `.${CLASS_OR_ID['AG_LINE']}`
}
- if (block.temp) {
- selector += `.${CLASS_OR_ID['AG_TEMP']}`
- }
return selector
}
- render (blocks, cursor, activeBlocks, matches, refreshCodeBlock) {
- this.refreshCodeBlock = refreshCodeBlock
+ render (blocks, cursor, activeBlocks, matches) {
const selector = `div#${CLASS_OR_ID['AG_EDITOR_ID']}`
const children = blocks.map(block => {
diff --git a/src/muya/lib/parser/render/renderBlock/renderContainerBlock.js b/src/muya/lib/parser/render/renderBlock/renderContainerBlock.js
index e8c2bc61..6db7e350 100644
--- a/src/muya/lib/parser/render/renderBlock/renderContainerBlock.js
+++ b/src/muya/lib/parser/render/renderBlock/renderContainerBlock.js
@@ -1,6 +1,14 @@
import { CLASS_OR_ID } from '../../../config'
import { h } from '../snabbdom'
+const PRE_BLOCK_HASH = {
+ 'fencecode': `.${CLASS_OR_ID['AG_FENCE_CODE']}`,
+ 'indentcode': `.${CLASS_OR_ID['AG_INDENT_CODE']}`,
+ 'html': `.${CLASS_OR_ID['AG_HTML_BLOCK']}`,
+ 'frontmatter': `.${CLASS_OR_ID['AG_FRONT_MATTER']}`,
+ 'multiplemath': `.${CLASS_OR_ID['AG_MULTIPLE_MATH']}`
+}
+
export default function renderContainerBlock (block, cursor, activeBlocks, matches, useCache = false) {
let selector = this.getSelector(block, cursor, activeBlocks)
const data = {
@@ -76,11 +84,19 @@ export default function renderContainerBlock (block, cursor, activeBlocks, match
if (block.type === 'ol') {
Object.assign(data.attrs, { start: block.start })
}
- if (block.type === 'pre' && /frontmatter|multiplemath/.test(block.functionType)) {
- const role = block.functionType === 'frontmatter' ? 'YAML' : 'MATH'
- const className = block.functionType === 'frontmatter' ? CLASS_OR_ID['AG_FRONT_MATTER'] : CLASS_OR_ID['AG_MULTIPLE_MATH']
- Object.assign(data.dataset, { role })
- selector += `.${className}`
+ if (block.type === 'code') {
+ const { lang } = block
+ if (lang) {
+ selector += `.language-${lang}`
+ }
+ }
+ if (block.type === 'pre') {
+ const { lang, functionType } = block
+ if (lang) {
+ selector += `.language-${lang}`
+ }
+ Object.assign(data.dataset, { role: functionType })
+ selector += PRE_BLOCK_HASH[block.functionType]
}
return h(selector, data, block.children.map(child => this.renderBlock(child, cursor, activeBlocks, matches, useCache)))
diff --git a/src/muya/lib/parser/render/renderBlock/renderLeafBlock.js b/src/muya/lib/parser/render/renderBlock/renderLeafBlock.js
index e612f94d..2a2b0bc3 100644
--- a/src/muya/lib/parser/render/renderBlock/renderLeafBlock.js
+++ b/src/muya/lib/parser/render/renderBlock/renderLeafBlock.js
@@ -1,17 +1,28 @@
import katex from 'katex'
-import { CLASS_OR_ID, DEVICE_MEMORY, isInElectron } from '../../../config'
+import prism, { loadedCache } from '../../../prism/'
+import { CLASS_OR_ID, DEVICE_MEMORY, isInElectron, PREVIEW_DOMPURIFY_CONFIG } from '../../../config'
import { tokenizer } from '../../parse'
-import { snakeToCamel } from '../../../utils'
+import { snakeToCamel, sanitize, escapeHtml } from '../../../utils'
import { h, htmlToVNode } from '../snabbdom'
-const PRE_BLOCK_HASH = {
- 'code': `.${CLASS_OR_ID['AG_CODE_BLOCK']}`,
- 'html': `.${CLASS_OR_ID['AG_HTML_BLOCK']}`,
- 'frontmatter': `.${CLASS_OR_ID['AG_FRONT_MATTER']}`
+const getHighlightHtml = (text, highlights) => {
+ let code = ''
+ let pos = 0
+ for (const highlight of highlights) {
+ const { start, end, active } = highlight
+ code += text.substring(pos, start)
+ const className = active ? 'ag-highlight' : 'ag-selection'
+ code += `
${text.substring(start, end)}`
+ pos = end
+ }
+ if (pos !== text.length) {
+ code += text.substring(pos)
+ }
+ return code
}
export default function renderLeafBlock (block, cursor, activeBlocks, matches, useCache = false) {
- const { loadMathMap, refreshCodeBlock } = this
+ const { loadMathMap } = this
let selector = this.getSelector(block, cursor, activeBlocks)
// highlight search key in block
const highlights = matches.filter(m => m.key === block.key)
@@ -20,17 +31,15 @@ export default function renderLeafBlock (block, cursor, activeBlocks, matches, u
type,
headingStyle,
align,
- htmlContent,
icon,
checked,
key,
lang,
functionType,
- codeBlockStyle,
- math,
editable
} = block
const data = {
+ props: {},
attrs: {},
dataset: {}
}
@@ -57,15 +66,17 @@ export default function renderLeafBlock (block, cursor, activeBlocks, matches, u
style: `text-align:${align}`
})
} else if (type === 'div') {
- if (typeof htmlContent === 'string') {
+ if (functionType === 'preview') {
selector += `.${CLASS_OR_ID['AG_HTML_PREVIEW']}`
+ const htmlContent = sanitize(this.muya.contentState.codeBlocks.get(block.preSibling), PREVIEW_DOMPURIFY_CONFIG)
// handle empty html bock
if (/<([a-z][a-z\d]*).*>\s*<\/\1>/.test(htmlContent)) {
children = htmlToVNode('
<Empty HTML Block>
')
} else {
children = htmlToVNode(htmlContent)
}
- } else if (typeof math === 'string') {
+ } else if (functionType === 'multiplemath') {
+ const math = this.muya.contentState.codeBlocks.get(block.preSibling)
const key = `${math}_display_math`
selector += `.${CLASS_OR_ID['AG_MATH_PREVIEW']}`
if (math === '') {
@@ -122,42 +133,32 @@ export default function renderLeafBlock (block, cursor, activeBlocks, matches, u
selector += `.${CLASS_OR_ID['AG_CHECKBOX_CHECKED']}`
}
children = ''
- } else if (type === 'pre') {
- selector += `.${CLASS_OR_ID['AG_CODEMIRROR_BLOCK']}`
- selector += PRE_BLOCK_HASH[functionType]
- Object.assign(data.attrs, { contenteditable: 'false' })
- data.hook = {
- prepatch (oldvnode, vnode) {
- // cheat snabbdom that the pre block is not changed!!!
- if (!refreshCodeBlock) {
- vnode.children = oldvnode.children
- }
- }
- }
- if (lang) {
- Object.assign(data.dataset, {
- lang
- })
+ } else if (type === 'span' && functionType === 'codeLine') {
+ let code
+ if (lang && lang === 'markup') {
+ code = getHighlightHtml(escapeHtml(text), highlights)
+ } else {
+ code = getHighlightHtml(text, highlights)
}
- if (codeBlockStyle) {
- Object.assign(data.dataset, {
- codeBlockStyle
- })
- }
+ selector += `.${CLASS_OR_ID['AG_CODE_LINE']}`
- if (/code|html/.test(functionType)) {
- // do not set it to '' (empty string)
- children = []
+ if (lang && /\S/.test(code) && loadedCache.has(lang)) {
+ const wrapper = document.createElement('div')
+ wrapper.classList.add(`language-${lang}`)
+ wrapper.innerHTML = code
+ prism.highlightElement(wrapper, false, function () {
+ const highlightedCode = this.innerHTML
+ selector += `.language-${lang}`
+ children = htmlToVNode(highlightedCode)
+ })
+ } else {
+ children = htmlToVNode(code)
}
- } else if (type === 'span' && /frontmatter|multiplemath/.test(functionType)) {
- if (functionType === 'frontmatter') {
- selector += `.${CLASS_OR_ID['AG_FRONT_MATTER_LINE']}`
- }
- if (functionType === 'multiplemath') {
- selector += `.${CLASS_OR_ID['AG_MULTIPLE_MATH_LINE']}`
- }
- children = text
+ } else if (type === 'span' && functionType === 'languageInput') {
+ const html = getHighlightHtml(text, highlights)
+ selector += `.${CLASS_OR_ID['AG_LANGUAGE_INPUT']}`
+ children = htmlToVNode(html)
}
return h(selector, data, children)
diff --git a/src/muya/lib/parser/render/snabbdom.js b/src/muya/lib/parser/render/snabbdom.js
index 924e7601..beaad9b8 100644
--- a/src/muya/lib/parser/render/snabbdom.js
+++ b/src/muya/lib/parser/render/snabbdom.js
@@ -1,4 +1,4 @@
-import virtualize from 'snabbdom-virtualize/strings'
+// import virtualize from 'snabbdom-virtualize/strings'
const snabbdom = require('snabbdom')
export const patch = snabbdom.init([ // Init patch function with chosen modules
@@ -10,6 +10,10 @@ export const patch = snabbdom.init([ // Init patch function with chosen modules
require('snabbdom/modules/eventlisteners').default // attaches event listeners
])
export const h = require('snabbdom/h').default // helper function for creating vnodes
-export const toHTML = require('snabbdom-to-html') // helper function for convert DOM to HTML string
+export const toHTML = require('snabbdom-to-html') // helper function for convert vnode to HTML string
export const toVNode = require('snabbdom/tovnode').default // helper function for convert DOM to vnode
-export const htmlToVNode = virtualize // helper function for convert HTML string to vnode
+export const htmlToVNode = html => { // helper function for convert html to vnode
+ const wrapper = document.createElement('div')
+ wrapper.innerHTML = html
+ return toVNode(wrapper).children
+}
diff --git a/src/muya/lib/prism/index.js b/src/muya/lib/prism/index.js
new file mode 100644
index 00000000..f554a8f8
--- /dev/null
+++ b/src/muya/lib/prism/index.js
@@ -0,0 +1,49 @@
+import Prism from 'prismjs2'
+import { filter } from 'fuzzaldrin'
+import initLoadLanguage, { loadedCache } from './loadLanguage'
+import languages from './languages'
+
+const prism = Prism
+window.Prism = Prism
+import('prismjs2/plugins/keep-markup/prism-keep-markup')
+const langs = Object.keys(languages).map(name => (languages[name]))
+const loadLanguage = initLoadLanguage(Prism)
+
+/**
+ * check edit language
+ */
+const checkEditLanguage = (paragraph, selectionState) => {
+ const text = paragraph.textContent
+ const { start } = selectionState
+ const token = text.match(/(^`{3,})([^`]+)/)
+ if (paragraph.tagName !== 'SPAN') return false
+ if (token) {
+ const len = token[1].length
+ const lang = token[2].trim()
+ if (start < len) return false
+ if (!lang) return false
+ return lang
+ } else if (paragraph.classList.contains('ag-language-input')) {
+ return text.trim()
+ } else {
+ return false
+ }
+}
+
+const search = text => {
+ return filter(langs, text, { key: 'name' })
+}
+
+// pre load latex and yaml and html for `math block` \ `front matter` and `html block`
+loadLanguage('latex')
+loadLanguage('yaml')
+
+export {
+ search,
+ loadLanguage,
+ loadedCache,
+ languages,
+ checkEditLanguage
+}
+
+export default prism
diff --git a/src/muya/lib/prism/languages.json b/src/muya/lib/prism/languages.json
new file mode 100644
index 00000000..6dd6ef87
--- /dev/null
+++ b/src/muya/lib/prism/languages.json
@@ -0,0 +1,1135 @@
+{
+ "markup": {
+ "title": "Markup",
+ "alias": [
+ "html",
+ "xml",
+ "svg",
+ "mathml"
+ ],
+ "aliasTitles": {
+ "html": "HTML",
+ "xml": "XML",
+ "svg": "SVG",
+ "mathml": "MathML"
+ },
+ "option": "default",
+ "name": "markup",
+ "ext": ["html"]
+ },
+ "css": {
+ "title": "CSS",
+ "option": "default",
+ "peerDependencies": "markup",
+ "name": "css",
+ "ext": [
+ "css"
+ ]
+ },
+ "clike": {
+ "title": "C-like",
+ "option": "default",
+ "overrideExampleHeader": true,
+ "name": "clike",
+ "ext": [
+ "c",
+ "h",
+ "ino"
+ ]
+ },
+ "javascript": {
+ "title": "JavaScript",
+ "require": "clike",
+ "peerDependencies": "markup",
+ "alias": "js",
+ "option": "default",
+ "name": "javascript",
+ "ext": [
+ "js"
+ ]
+ },
+ "abap": {
+ "title": "ABAP",
+ "name": "abap",
+ "ext": ["absp"]
+ },
+ "actionscript": {
+ "title": "ActionScript",
+ "require": "javascript",
+ "peerDependencies": "markup",
+ "name": "actionscript",
+ "ext": ["as"]
+ },
+ "ada": {
+ "title": "Ada",
+ "name": "ada",
+ "ext": []
+ },
+ "apacheconf": {
+ "title": "Apache Configuration",
+ "name": "apacheconf",
+ "ext": []
+ },
+ "apl": {
+ "title": "APL",
+ "name": "apl",
+ "ext": [
+ "dyalog",
+ "apl"
+ ]
+ },
+ "applescript": {
+ "title": "AppleScript",
+ "name": "applescript",
+ "ext": []
+ },
+ "arduino": {
+ "title": "Arduino",
+ "require": "cpp",
+ "name": "arduino",
+ "ext": []
+ },
+ "arff": {
+ "title": "ARFF",
+ "name": "arff",
+ "ext": []
+ },
+ "asciidoc": {
+ "title": "AsciiDoc",
+ "name": "asciidoc",
+ "ext": []
+ },
+ "asm6502": {
+ "title": "6502 Assembly",
+ "name": "asm6502",
+ "ext": []
+ },
+ "aspnet": {
+ "title": "ASP.NET (C#)",
+ "require": [
+ "markup",
+ "csharp"
+ ],
+ "name": "aspnet",
+ "ext": []
+ },
+ "autohotkey": {
+ "title": "AutoHotkey",
+ "name": "autohotkey",
+ "ext": []
+ },
+ "autoit": {
+ "title": "AutoIt",
+ "name": "autoit",
+ "ext": []
+ },
+ "bash": {
+ "title": "Bash",
+ "name": "bash",
+ "ext": [
+ "sh",
+ "ksh",
+ "bash"
+ ]
+ },
+ "basic": {
+ "title": "BASIC",
+ "name": "basic",
+ "ext": []
+ },
+ "batch": {
+ "title": "Batch",
+ "alias": "shell",
+ "name": "batch",
+ "ext": []
+ },
+ "bison": {
+ "title": "Bison",
+ "require": "c",
+ "name": "bison",
+ "ext": []
+ },
+ "brainfuck": {
+ "title": "Brainfuck",
+ "name": "brainfuck",
+ "ext": [
+ "b",
+ "bf"
+ ]
+ },
+ "bro": {
+ "title": "Bro",
+ "name": "bro",
+ "ext": []
+ },
+ "c": {
+ "title": "C",
+ "require": "clike",
+ "name": "c",
+ "ext": [
+ "c",
+ "h",
+ "ino"
+ ]
+ },
+ "csharp": {
+ "title": "C#",
+ "require": "clike",
+ "alias": "dotnet",
+ "name": "csharp",
+ "ext": [
+ "cs"
+ ]
+ },
+ "cpp": {
+ "title": "C++",
+ "require": "c",
+ "name": "cpp",
+ "ext": [
+ "cpp",
+ "c++",
+ "cc",
+ "cxx",
+ "hpp",
+ "h++",
+ "hh",
+ "hxx"
+ ]
+ },
+ "coffeescript": {
+ "title": "CoffeeScript",
+ "require": "javascript",
+ "name": "coffeescript",
+ "ext": [
+ "coffee"
+ ]
+ },
+ "clojure": {
+ "title": "Clojure",
+ "name": "clojure",
+ "ext": [
+ "clj",
+ "cljc",
+ "cljx"
+ ]
+ },
+ "crystal": {
+ "title": "Crystal",
+ "require": "ruby",
+ "name": "crystal",
+ "ext": [
+ "cr"
+ ]
+ },
+ "csp": {
+ "title": "Content-Security-Policy",
+ "name": "csp",
+ "ext": []
+ },
+ "css-extras": {
+ "title": "CSS Extras",
+ "require": "css",
+ "name": "css-extras",
+ "ext": []
+ },
+ "d": {
+ "title": "D",
+ "require": "clike",
+ "name": "d",
+ "ext": [
+ "d"
+ ]
+ },
+ "dart": {
+ "title": "Dart",
+ "require": "clike",
+ "name": "dart",
+ "ext": [
+ "dart"
+ ]
+ },
+ "diff": {
+ "title": "Diff",
+ "name": "diff",
+ "ext": [
+ "diff",
+ "patch"
+ ]
+ },
+ "django": {
+ "title": "Django/Jinja2",
+ "require": "markup",
+ "peerDependencies": [
+ "css",
+ "javascript"
+ ],
+ "alias": "jinja2",
+ "name": "django",
+ "ext": []
+ },
+ "docker": {
+ "title": "Docker",
+ "name": "docker",
+ "ext": []
+ },
+ "eiffel": {
+ "title": "Eiffel",
+ "name": "eiffel",
+ "ext": [
+ "e"
+ ]
+ },
+ "elixir": {
+ "title": "Elixir",
+ "name": "elixir",
+ "ext": []
+ },
+ "elm": {
+ "title": "Elm",
+ "name": "elm",
+ "ext": [
+ "elm"
+ ]
+ },
+ "erb": {
+ "title": "ERB",
+ "require": [
+ "ruby",
+ "markup-templating"
+ ],
+ "name": "erb",
+ "ext": [
+ "erb"
+ ]
+ },
+ "erlang": {
+ "title": "Erlang",
+ "name": "erlang",
+ "ext": [
+ "erl"
+ ]
+ },
+ "fsharp": {
+ "title": "F#",
+ "require": "clike",
+ "name": "fsharp",
+ "ext": [
+ "fs"
+ ]
+ },
+ "flow": {
+ "title": "Flow",
+ "require": "javascript",
+ "name": "flow",
+ "ext": []
+ },
+ "fortran": {
+ "title": "Fortran",
+ "name": "fortran",
+ "ext": [
+ "f",
+ "for",
+ "f77",
+ "f90"
+ ]
+ },
+ "gedcom": {
+ "title": "GEDCOM",
+ "name": "gedcom",
+ "ext": []
+ },
+ "gherkin": {
+ "title": "Gherkin",
+ "name": "gherkin",
+ "ext": [
+ "feature"
+ ]
+ },
+ "git": {
+ "title": "Git",
+ "name": "git",
+ "ext": []
+ },
+ "glsl": {
+ "title": "GLSL",
+ "require": "clike",
+ "name": "glsl",
+ "ext": []
+ },
+ "go": {
+ "title": "Go",
+ "require": "clike",
+ "name": "go",
+ "ext": [
+ "go"
+ ]
+ },
+ "graphql": {
+ "title": "GraphQL",
+ "name": "graphql",
+ "ext": []
+ },
+ "groovy": {
+ "title": "Groovy",
+ "require": "clike",
+ "name": "groovy",
+ "ext": [
+ "groovy",
+ "gradle"
+ ]
+ },
+ "haml": {
+ "title": "Haml",
+ "require": "ruby",
+ "peerDependencies": [
+ "css",
+ "coffeescript",
+ "erb",
+ "javascript",
+ "less",
+ "markdown",
+ "ruby",
+ "scss",
+ "textile"
+ ],
+ "name": "haml",
+ "ext": [
+ "haml"
+ ]
+ },
+ "handlebars": {
+ "title": "Handlebars",
+ "require": "markup-templating",
+ "name": "handlebars",
+ "ext": [
+ "html",
+ "htm",
+ "handlebars",
+ "hbs"
+ ]
+ },
+ "haskell": {
+ "title": "Haskell",
+ "name": "haskell",
+ "ext": [
+ "hs"
+ ]
+ },
+ "haxe": {
+ "title": "Haxe",
+ "require": "clike",
+ "name": "haxe",
+ "ext": [
+ "hx"
+ ]
+ },
+ "http": {
+ "title": "HTTP",
+ "peerDependencies": [
+ "javascript",
+ "markup"
+ ],
+ "name": "http",
+ "ext": []
+ },
+ "hpkp": {
+ "title": "HTTP Public-Key-Pins",
+ "name": "hpkp",
+ "ext": []
+ },
+ "hsts": {
+ "title": "HTTP Strict-Transport-Security",
+ "name": "hsts",
+ "ext": []
+ },
+ "ichigojam": {
+ "title": "IchigoJam",
+ "name": "ichigojam",
+ "ext": []
+ },
+ "icon": {
+ "title": "Icon",
+ "name": "icon",
+ "ext": []
+ },
+ "inform7": {
+ "title": "Inform 7",
+ "name": "inform7",
+ "ext": []
+ },
+ "ini": {
+ "title": "Ini",
+ "name": "ini",
+ "ext": [
+ "properties",
+ "ini",
+ "in"
+ ]
+ },
+ "io": {
+ "title": "Io",
+ "name": "io",
+ "ext": []
+ },
+ "j": {
+ "title": "J",
+ "name": "j",
+ "ext": []
+ },
+ "java": {
+ "title": "Java",
+ "require": "clike",
+ "name": "java",
+ "ext": [
+ "java"
+ ]
+ },
+ "jolie": {
+ "title": "Jolie",
+ "require": "clike",
+ "name": "jolie",
+ "ext": []
+ },
+ "json": {
+ "title": "JSON",
+ "name": "json",
+ "ext": [
+ "json",
+ "map"
+ ]
+ },
+ "julia": {
+ "title": "Julia",
+ "name": "julia",
+ "ext": [
+ "jl"
+ ]
+ },
+ "keyman": {
+ "title": "Keyman",
+ "name": "keyman",
+ "ext": []
+ },
+ "kotlin": {
+ "title": "Kotlin",
+ "require": "clike",
+ "name": "kotlin",
+ "ext": [
+ "kt"
+ ]
+ },
+ "latex": {
+ "title": "LaTeX",
+ "name": "latex",
+ "ext": [
+ "text",
+ "ltx",
+ "tex"
+ ]
+ },
+ "less": {
+ "title": "Less",
+ "require": "css",
+ "name": "less",
+ "ext": [
+ "less"
+ ]
+ },
+ "liquid": {
+ "title": "Liquid",
+ "name": "liquid",
+ "ext": []
+ },
+ "lisp": {
+ "title": "Lisp",
+ "alias": [
+ "emacs",
+ "elisp",
+ "emacs-lisp"
+ ],
+ "name": "lisp",
+ "ext": [
+ "cl",
+ "lisp",
+ "el"
+ ]
+ },
+ "livescript": {
+ "title": "LiveScript",
+ "name": "livescript",
+ "ext": [
+ "ls"
+ ]
+ },
+ "lolcode": {
+ "title": "LOLCODE",
+ "name": "lolcode",
+ "ext": []
+ },
+ "lua": {
+ "title": "Lua",
+ "name": "lua",
+ "ext": [
+ "lua"
+ ]
+ },
+ "makefile": {
+ "title": "Makefile",
+ "name": "makefile",
+ "ext": []
+ },
+ "markdown": {
+ "title": "Markdown",
+ "require": "markup",
+ "name": "markdown",
+ "ext": [
+ "markdown",
+ "md",
+ "mkd"
+ ]
+ },
+ "markup-templating": {
+ "title": "Markup templating",
+ "require": "markup",
+ "name": "markup-templating",
+ "ext": []
+ },
+ "matlab": {
+ "title": "MATLAB",
+ "name": "matlab",
+ "ext": []
+ },
+ "mel": {
+ "title": "MEL",
+ "name": "mel",
+ "ext": []
+ },
+ "mizar": {
+ "title": "Mizar",
+ "name": "mizar",
+ "ext": []
+ },
+ "monkey": {
+ "title": "Monkey",
+ "name": "monkey",
+ "ext": []
+ },
+ "n4js": {
+ "title": "N4JS",
+ "require": "javascript",
+ "name": "n4js",
+ "ext": []
+ },
+ "nasm": {
+ "title": "NASM",
+ "name": "nasm",
+ "ext": []
+ },
+ "nginx": {
+ "title": "nginx",
+ "require": "clike",
+ "name": "nginx",
+ "ext": []
+ },
+ "nim": {
+ "title": "Nim",
+ "name": "nim",
+ "ext": []
+ },
+ "nix": {
+ "title": "Nix",
+ "name": "nix",
+ "ext": []
+ },
+ "nsis": {
+ "title": "NSIS",
+ "name": "nsis",
+ "ext": [
+ "nsh",
+ "nsi"
+ ]
+ },
+ "objectivec": {
+ "title": "Objective-C",
+ "require": "c",
+ "name": "objectivec",
+ "ext": [
+ "m",
+ "mm"
+ ]
+ },
+ "ocaml": {
+ "title": "OCaml",
+ "name": "ocaml",
+ "ext": [
+ "ml",
+ "mli",
+ "mll",
+ "mly"
+ ]
+ },
+ "opencl": {
+ "title": "OpenCL",
+ "require": "cpp",
+ "peerDependencies": [
+ "c",
+ "cpp"
+ ],
+ "overrideExampleHeader": true,
+ "name": "opencl",
+ "ext": []
+ },
+ "oz": {
+ "title": "Oz",
+ "name": "oz",
+ "ext": [
+ "oz"
+ ]
+ },
+ "parigp": {
+ "title": "PARI/GP",
+ "name": "parigp",
+ "ext": []
+ },
+ "parser": {
+ "title": "Parser",
+ "require": "markup",
+ "name": "parser",
+ "ext": []
+ },
+ "pascal": {
+ "title": "Pascal",
+ "alias": "objectpascal",
+ "aliasTitles": {
+ "objectpascal": "Object Pascal"
+ },
+ "name": "pascal",
+ "ext": [
+ "p",
+ "pas"
+ ]
+ },
+ "perl": {
+ "title": "Perl",
+ "name": "perl",
+ "ext": [
+ "pl",
+ "pm"
+ ]
+ },
+ "php": {
+ "title": "PHP",
+ "require": [
+ "clike",
+ "markup-templating"
+ ],
+ "name": "php",
+ "ext": [
+ "php",
+ "php3",
+ "php4",
+ "php5",
+ "php7",
+ "phtml"
+ ]
+ },
+ "php-extras": {
+ "title": "PHP Extras",
+ "require": "php",
+ "name": "php-extras",
+ "ext": []
+ },
+ "plsql": {
+ "title": "PL/SQL",
+ "require": "sql",
+ "name": "plsql",
+ "ext": [
+ "pls"
+ ]
+ },
+ "powershell": {
+ "title": "PowerShell",
+ "name": "powershell",
+ "ext": [
+ "ps1",
+ "psd1",
+ "psm1"
+ ]
+ },
+ "processing": {
+ "title": "Processing",
+ "require": "clike",
+ "name": "processing",
+ "ext": []
+ },
+ "prolog": {
+ "title": "Prolog",
+ "name": "prolog",
+ "ext": []
+ },
+ "properties": {
+ "title": ".properties",
+ "name": "properties",
+ "ext": [
+ "properties",
+ "ini",
+ "in"
+ ]
+ },
+ "protobuf": {
+ "title": "Protocol Buffers",
+ "require": "clike",
+ "name": "protobuf",
+ "ext": [
+ "proto"
+ ]
+ },
+ "pug": {
+ "title": "Pug",
+ "require": "javascript",
+ "peerDependencies": [
+ "coffeescript",
+ "ejs",
+ "handlebars",
+ "hogan",
+ "less",
+ "livescript",
+ "markdown",
+ "mustache",
+ "plates",
+ "scss",
+ "stylus",
+ "swig"
+ ],
+ "name": "pug",
+ "ext": [
+ "jade",
+ "pug"
+ ]
+ },
+ "puppet": {
+ "title": "Puppet",
+ "name": "puppet",
+ "ext": [
+ "pp"
+ ]
+ },
+ "pure": {
+ "title": "Pure",
+ "peerDependencies": [
+ "c",
+ "cpp",
+ "fortran",
+ "ats",
+ "dsp"
+ ],
+ "name": "pure",
+ "ext": []
+ },
+ "python": {
+ "title": "Python",
+ "name": "python",
+ "ext": [
+ "pyx",
+ "pxd",
+ "pxi"
+ ]
+ },
+ "q": {
+ "title": "Q (kdb+ database)",
+ "name": "q",
+ "ext": [
+ "q"
+ ]
+ },
+ "qore": {
+ "title": "Qore",
+ "require": "clike",
+ "name": "qore",
+ "ext": []
+ },
+ "r": {
+ "title": "R",
+ "name": "r",
+ "ext": [
+ "r",
+ "R"
+ ]
+ },
+ "jsx": {
+ "title": "React JSX",
+ "require": [
+ "markup",
+ "javascript"
+ ],
+ "name": "jsx",
+ "ext": [
+ "jsx"
+ ]
+ },
+ "tsx": {
+ "title": "React TSX",
+ "require": [
+ "jsx",
+ "typescript"
+ ],
+ "name": "tsx",
+ "ext": [
+ "tsx"
+ ]
+ },
+ "renpy": {
+ "title": "Ren\"py",
+ "name": "renpy",
+ "ext": []
+ },
+ "reason": {
+ "title": "Reason",
+ "require": "clike",
+ "name": "reason",
+ "ext": []
+ },
+ "rest": {
+ "title": "reST (reStructuredText)",
+ "name": "rest",
+ "ext": []
+ },
+ "rip": {
+ "title": "Rip",
+ "name": "rip",
+ "ext": []
+ },
+ "roboconf": {
+ "title": "Roboconf",
+ "name": "roboconf",
+ "ext": []
+ },
+ "ruby": {
+ "title": "Ruby",
+ "require": "clike",
+ "name": "ruby",
+ "ext": [
+ "rb"
+ ]
+ },
+ "rust": {
+ "title": "Rust",
+ "name": "rust",
+ "ext": [
+ "rs"
+ ]
+ },
+ "sas": {
+ "title": "SAS",
+ "name": "sas",
+ "ext": [
+ "sas"
+ ]
+ },
+ "sass": {
+ "title": "Sass (Sass)",
+ "require": "css",
+ "name": "sass",
+ "ext": [
+ "sass"
+ ]
+ },
+ "scss": {
+ "title": "Sass (Scss)",
+ "require": "css",
+ "name": "scss",
+ "ext": [
+ "scss"
+ ]
+ },
+ "scala": {
+ "title": "Scala",
+ "require": "java",
+ "name": "scala",
+ "ext": [
+ "scala"
+ ]
+ },
+ "scheme": {
+ "title": "Scheme",
+ "name": "scheme",
+ "ext": [
+ "scm",
+ "ss"
+ ]
+ },
+ "smalltalk": {
+ "title": "Smalltalk",
+ "name": "smalltalk",
+ "ext": [
+ "st"
+ ]
+ },
+ "smarty": {
+ "title": "Smarty",
+ "require": "markup-templating",
+ "name": "smarty",
+ "ext": [
+ "tpl"
+ ]
+ },
+ "sql": {
+ "title": "SQL",
+ "name": "sql",
+ "ext": [
+ "cql"
+ ]
+ },
+ "soy": {
+ "title": "Soy (Closure Template)",
+ "require": "markup-templating",
+ "name": "soy",
+ "ext": [
+ "soy"
+ ]
+ },
+ "stylus": {
+ "title": "Stylus",
+ "name": "stylus",
+ "ext": [
+ "styl"
+ ]
+ },
+ "swift": {
+ "title": "Swift",
+ "require": "clike",
+ "name": "swift",
+ "ext": [
+ "swift"
+ ]
+ },
+ "tap": {
+ "title": "TAP",
+ "require": "yaml",
+ "name": "tap",
+ "ext": []
+ },
+ "tcl": {
+ "title": "Tcl",
+ "name": "tcl",
+ "ext": [
+ "tcl"
+ ]
+ },
+ "textile": {
+ "title": "Textile",
+ "require": "markup",
+ "peerDependencies": "css",
+ "name": "textile",
+ "ext": [
+ "textile"
+ ]
+ },
+ "tt2": {
+ "title": "Template Toolkit 2",
+ "require": [
+ "clike",
+ "markup-templating"
+ ],
+ "name": "tt2",
+ "ext": []
+ },
+ "twig": {
+ "title": "Twig",
+ "require": "markup",
+ "name": "twig",
+ "ext": []
+ },
+ "typescript": {
+ "title": "TypeScript",
+ "require": "javascript",
+ "alias": "ts",
+ "name": "typescript",
+ "ext": [
+ "ts"
+ ]
+ },
+ "vbnet": {
+ "title": "VB.Net",
+ "require": "basic",
+ "name": "vbnet",
+ "ext": [
+ "vb"
+ ]
+ },
+ "velocity": {
+ "title": "Velocity",
+ "require": "markup",
+ "name": "velocity",
+ "ext": [
+ "vtl"
+ ]
+ },
+ "verilog": {
+ "title": "Verilog",
+ "name": "verilog",
+ "ext": [
+ "v",
+ "sv",
+ "svh"
+ ]
+ },
+ "vhdl": {
+ "title": "VHDL",
+ "name": "vhdl",
+ "ext": [
+ "vhd",
+ "vhdl"
+ ]
+ },
+ "vim": {
+ "title": "vim",
+ "name": "vim",
+ "ext": []
+ },
+ "visual-basic": {
+ "title": "Visual Basic",
+ "alias": "vb",
+ "name": "visual-basic",
+ "ext": []
+ },
+ "wasm": {
+ "title": "WebAssembly",
+ "name": "wasm",
+ "ext": []
+ },
+ "wiki": {
+ "title": "Wiki markup",
+ "require": "markup",
+ "name": "wiki",
+ "ext": []
+ },
+ "xeora": {
+ "title": "Xeora",
+ "require": "markup",
+ "name": "xeora",
+ "ext": []
+ },
+ "xojo": {
+ "title": "Xojo (REALbasic)",
+ "name": "xojo",
+ "ext": []
+ },
+ "xquery": {
+ "title": "XQuery",
+ "require": "markup",
+ "name": "xquery",
+ "ext": [
+ "xy",
+ "xquery"
+ ]
+ },
+ "yaml": {
+ "title": "YAML",
+ "name": "yaml",
+ "ext": [
+ "yaml",
+ "yml"
+ ]
+ }
+}
diff --git a/src/muya/lib/prism/loadLanguage.js b/src/muya/lib/prism/loadLanguage.js
new file mode 100644
index 00000000..1dc41423
--- /dev/null
+++ b/src/muya/lib/prism/loadLanguage.js
@@ -0,0 +1,87 @@
+import languages from './languages'
+let peerDependentsMap = null
+export const loadedCache = new Set(['markup', 'css', 'clike', 'javascript'])
+
+function getPeerDependentsMap () {
+ const peerDependentsMap = {}
+ Object.keys(languages).forEach(function (language) {
+ if (language === 'meta') {
+ return false
+ }
+ if (languages[language].peerDependencies) {
+ let peerDependencies = languages[language].peerDependencies
+ if (!Array.isArray(peerDependencies)) {
+ peerDependencies = [peerDependencies]
+ }
+ peerDependencies.forEach(function (peerDependency) {
+ if (!peerDependentsMap[peerDependency]) {
+ peerDependentsMap[peerDependency] = []
+ }
+ peerDependentsMap[peerDependency].push(language)
+ })
+ }
+ })
+ return peerDependentsMap
+}
+
+function getPeerDependents (mainLanguage) {
+ if (!peerDependentsMap) {
+ peerDependentsMap = getPeerDependentsMap()
+ }
+ return peerDependentsMap[mainLanguage] || []
+}
+
+function initLoadLanguage (Prism) {
+ return function loadLanguages (arr, withoutDependencies) {
+ // If no argument is passed, load all components
+ if (!arr) {
+ arr = Object.keys(languages).filter(function (language) {
+ return language !== 'meta'
+ })
+ }
+ if (arr && !arr.length) {
+ return
+ }
+
+ if (!Array.isArray(arr)) {
+ arr = [arr]
+ }
+
+ arr.forEach(function (language) {
+ if (!languages[language]) {
+ console.warn('Language does not exist ' + language)
+ return
+ }
+ if (loadedCache.has(language)) {
+ return
+ }
+
+ // Load dependencies first
+ if (!withoutDependencies && languages[language].require) {
+ loadLanguages(languages[language].require)
+ }
+
+ delete Prism.languages[language]
+ import('prismjs2/components/prism-' + language)
+ .then(_ => {
+ loadedCache.add(language)
+ })
+
+ // Reload dependents
+ const dependents = getPeerDependents(language).filter(function (dependent) {
+ // If dependent language was already loaded,
+ // we want to reload it.
+ if (Prism.languages[dependent]) {
+ delete Prism.languages[dependent]
+ return true
+ }
+ return false
+ })
+ if (dependents.length) {
+ loadLanguages(dependents, true)
+ }
+ })
+ }
+}
+
+export default initLoadLanguage
diff --git a/src/muya/lib/selection/index.js b/src/muya/lib/selection/index.js
index 08b5e25b..9ec1c2c9 100644
--- a/src/muya/lib/selection/index.js
+++ b/src/muya/lib/selection/index.js
@@ -842,7 +842,6 @@ class Selection {
if (range.getClientRects) {
range.collapse(true)
const rects = range.getClientRects()
-
if (rects.length) {
const { left, top, x: rectX, y: rectY } = rects[0]
x = rectX || left
diff --git a/src/muya/lib/ui/codePicker/index.js b/src/muya/lib/ui/codePicker/index.js
index 9c31b449..53045ea4 100644
--- a/src/muya/lib/ui/codePicker/index.js
+++ b/src/muya/lib/ui/codePicker/index.js
@@ -1,6 +1,6 @@
import BaseScrollFloat from '../baseScrollFloat'
import { patch, h } from '../../parser/render/snabbdom'
-import { search } from '../../codeMirror'
+import { search } from '../../prism/index'
import fileIcons from '../fileIcons'
import './index.css'
@@ -19,10 +19,8 @@ class CodePicker extends BaseScrollFloat {
super.listen()
const { eventCenter } = this.muya
eventCenter.subscribe('muya-code-picker', ({ reference, lang, cb }) => {
- const modes = search(lang).map(mode => {
- return Object.assign(mode, { text: mode.name })
- })
- if (modes.length) {
+ const modes = search(lang)
+ if (modes.length && reference) {
this.show(reference, cb)
this.renderArray = modes
this.activeItem = modes[0]
@@ -37,19 +35,19 @@ class CodePicker extends BaseScrollFloat {
const { renderArray, oldVnode, scrollElement, activeItem } = this
let children = renderArray.map(item => {
let iconClassNames
- if (item.mode.ext && Array.isArray(item.mode.ext)) {
- for (const ext of item.mode.ext) {
+ if (item.ext && Array.isArray(item.ext)) {
+ for (const ext of item.ext) {
iconClassNames = fileIcons.getClassWithColor(`fackname.${ext}`)
if (iconClassNames) break
}
- } else if (item.mode.name) {
- iconClassNames = fileIcons.getClassWithColor(item.mode.name)
+ } else if (item.name) {
+ iconClassNames = fileIcons.getClassWithColor(item.name)
}
// Because `markdown mode in Codemirror` don't have extensions.
// if still can not get the className, add a common className 'atom-icon light-cyan'
if (!iconClassNames) {
- iconClassNames = item.text === 'markdown' ? fileIcons.getClassWithColor('fackname.md') : 'atom-icon light-cyan'
+ iconClassNames = item.name === 'markdown' ? fileIcons.getClassWithColor('fackname.md') : 'atom-icon light-cyan'
}
const iconSelector = 'span' + iconClassNames.split(/\s/).map(s => `.${s}`).join('')
const icon = h('div.icon-wrapper', h(iconSelector))
diff --git a/src/muya/lib/ui/emojis/emojisJson.js b/src/muya/lib/ui/emojis/emojisJson.js
deleted file mode 100644
index d3404862..00000000
--- a/src/muya/lib/ui/emojis/emojisJson.js
+++ /dev/null
@@ -1,13960 +0,0 @@
-const emojis = [
- {
- 'emoji': '๐',
- 'description': 'grinning face',
- 'category': 'People',
- 'aliases': [
- 'grinning'
- ],
- 'tags': [
- 'smile',
- 'happy'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with open mouth',
- 'category': 'People',
- 'aliases': [
- 'smiley'
- ],
- 'tags': [
- 'happy',
- 'joy',
- 'haha'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with open mouth & smiling eyes',
- 'category': 'People',
- 'aliases': [
- 'smile'
- ],
- 'tags': [
- 'happy',
- 'joy',
- 'laugh',
- 'pleased'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'grinning face with smiling eyes',
- 'category': 'People',
- 'aliases': [
- 'grin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with open mouth & closed eyes',
- 'category': 'People',
- 'aliases': [
- 'laughing',
- 'satisfied'
- ],
- 'tags': [
- 'happy',
- 'haha'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'smiling face with open mouth & cold sweat',
- 'category': 'People',
- 'aliases': [
- 'sweat_smile'
- ],
- 'tags': [
- 'hot'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with tears of joy',
- 'category': 'People',
- 'aliases': [
- 'joy'
- ],
- 'tags': [
- 'tears'
- ]
- },
- {
- 'emoji': '๐คฃ',
- 'description': 'rolling on the floor laughing',
- 'category': 'People',
- 'aliases': [
- 'rofl'
- ],
- 'tags': [
- 'lol',
- 'laughing'
- ]
- },
- {
- 'emoji': 'โบ๏ธ',
- 'description': 'smiling face',
- 'category': 'People',
- 'aliases': [
- 'relaxed'
- ],
- 'tags': [
- 'blush',
- 'pleased'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with smiling eyes',
- 'category': 'People',
- 'aliases': [
- 'blush'
- ],
- 'tags': [
- 'proud'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with halo',
- 'category': 'People',
- 'aliases': [
- 'innocent'
- ],
- 'tags': [
- 'angel'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'slightly smiling face',
- 'category': 'People',
- 'aliases': [
- 'slightly_smiling_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'upside-down face',
- 'category': 'People',
- 'aliases': [
- 'upside_down_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'winking face',
- 'category': 'People',
- 'aliases': [
- 'wink'
- ],
- 'tags': [
- 'flirt'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'relieved face',
- 'category': 'People',
- 'aliases': [
- 'relieved'
- ],
- 'tags': [
- 'whew'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with heart-eyes',
- 'category': 'People',
- 'aliases': [
- 'heart_eyes'
- ],
- 'tags': [
- 'love',
- 'crush'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face blowing a kiss',
- 'category': 'People',
- 'aliases': [
- 'kissing_heart'
- ],
- 'tags': [
- 'flirt'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'kissing face',
- 'category': 'People',
- 'aliases': [
- 'kissing'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'kissing face with smiling eyes',
- 'category': 'People',
- 'aliases': [
- 'kissing_smiling_eyes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'kissing face with closed eyes',
- 'category': 'People',
- 'aliases': [
- 'kissing_closed_eyes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'face savouring delicious food',
- 'category': 'People',
- 'aliases': [
- 'yum'
- ],
- 'tags': [
- 'tongue',
- 'lick'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with stuck-out tongue & winking eye',
- 'category': 'People',
- 'aliases': [
- 'stuck_out_tongue_winking_eye'
- ],
- 'tags': [
- 'prank',
- 'silly'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with stuck-out tongue & closed eyes',
- 'category': 'People',
- 'aliases': [
- 'stuck_out_tongue_closed_eyes'
- ],
- 'tags': [
- 'prank'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with stuck-out tongue',
- 'category': 'People',
- 'aliases': [
- 'stuck_out_tongue'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'money-mouth face',
- 'category': 'People',
- 'aliases': [
- 'money_mouth_face'
- ],
- 'tags': [
- 'rich'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'hugging face',
- 'category': 'People',
- 'aliases': [
- 'hugs'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'nerd face',
- 'category': 'People',
- 'aliases': [
- 'nerd_face'
- ],
- 'tags': [
- 'geek',
- 'glasses'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with sunglasses',
- 'category': 'People',
- 'aliases': [
- 'sunglasses'
- ],
- 'tags': [
- 'cool'
- ]
- },
- {
- 'emoji': '๐คก',
- 'description': 'clown face',
- 'category': 'People',
- 'aliases': [
- 'clown_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค ',
- 'description': 'cowboy hat face',
- 'category': 'People',
- 'aliases': [
- 'cowboy_hat_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'smirking face',
- 'category': 'People',
- 'aliases': [
- 'smirk'
- ],
- 'tags': [
- 'smug'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'unamused face',
- 'category': 'People',
- 'aliases': [
- 'unamused'
- ],
- 'tags': [
- 'meh'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'disappointed face',
- 'category': 'People',
- 'aliases': [
- 'disappointed'
- ],
- 'tags': [
- 'sad'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'pensive face',
- 'category': 'People',
- 'aliases': [
- 'pensive'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'worried face',
- 'category': 'People',
- 'aliases': [
- 'worried'
- ],
- 'tags': [
- 'nervous'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'confused face',
- 'category': 'People',
- 'aliases': [
- 'confused'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'slightly frowning face',
- 'category': 'People',
- 'aliases': [
- 'slightly_frowning_face'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โน๏ธ',
- 'description': 'frowning face',
- 'category': 'People',
- 'aliases': [
- 'frowning_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'persevering face',
- 'category': 'People',
- 'aliases': [
- 'persevere'
- ],
- 'tags': [
- 'struggling'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'confounded face',
- 'category': 'People',
- 'aliases': [
- 'confounded'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'tired face',
- 'category': 'People',
- 'aliases': [
- 'tired_face'
- ],
- 'tags': [
- 'upset',
- 'whine'
- ]
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'weary face',
- 'category': 'People',
- 'aliases': [
- 'weary'
- ],
- 'tags': [
- 'tired'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'face with steam from nose',
- 'category': 'People',
- 'aliases': [
- 'triumph'
- ],
- 'tags': [
- 'smug'
- ]
- },
- {
- 'emoji': '๐ ',
- 'description': 'angry face',
- 'category': 'People',
- 'aliases': [
- 'angry'
- ],
- 'tags': [
- 'mad',
- 'annoyed'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'pouting face',
- 'category': 'People',
- 'aliases': [
- 'rage',
- 'pout'
- ],
- 'tags': [
- 'angry'
- ]
- },
- {
- 'emoji': '๐ถ',
- 'description': 'face without mouth',
- 'category': 'People',
- 'aliases': [
- 'no_mouth'
- ],
- 'tags': [
- 'mute',
- 'silence'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'neutral face',
- 'category': 'People',
- 'aliases': [
- 'neutral_face'
- ],
- 'tags': [
- 'meh'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'expressionless face',
- 'category': 'People',
- 'aliases': [
- 'expressionless'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'hushed face',
- 'category': 'People',
- 'aliases': [
- 'hushed'
- ],
- 'tags': [
- 'silence',
- 'speechless'
- ]
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'frowning face with open mouth',
- 'category': 'People',
- 'aliases': [
- 'frowning'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'anguished face',
- 'category': 'People',
- 'aliases': [
- 'anguished'
- ],
- 'tags': [
- 'stunned'
- ]
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'face with open mouth',
- 'category': 'People',
- 'aliases': [
- 'open_mouth'
- ],
- 'tags': [
- 'surprise',
- 'impressed',
- 'wow'
- ]
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'astonished face',
- 'category': 'People',
- 'aliases': [
- 'astonished'
- ],
- 'tags': [
- 'amazed',
- 'gasp'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'dizzy face',
- 'category': 'People',
- 'aliases': [
- 'dizzy_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'flushed face',
- 'category': 'People',
- 'aliases': [
- 'flushed'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'face screaming in fear',
- 'category': 'People',
- 'aliases': [
- 'scream'
- ],
- 'tags': [
- 'horror',
- 'shocked'
- ]
- },
- {
- 'emoji': '๐จ',
- 'description': 'fearful face',
- 'category': 'People',
- 'aliases': [
- 'fearful'
- ],
- 'tags': [
- 'scared',
- 'shocked',
- 'oops'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'face with open mouth & cold sweat',
- 'category': 'People',
- 'aliases': [
- 'cold_sweat'
- ],
- 'tags': [
- 'nervous'
- ]
- },
- {
- 'emoji': '๐ข',
- 'description': 'crying face',
- 'category': 'People',
- 'aliases': [
- 'cry'
- ],
- 'tags': [
- 'sad',
- 'tear'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'disappointed but relieved face',
- 'category': 'People',
- 'aliases': [
- 'disappointed_relieved'
- ],
- 'tags': [
- 'phew',
- 'sweat',
- 'nervous'
- ]
- },
- {
- 'emoji': '๐คค',
- 'description': 'drooling face',
- 'category': 'People',
- 'aliases': [
- 'drooling_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'loudly crying face',
- 'category': 'People',
- 'aliases': [
- 'sob'
- ],
- 'tags': [
- 'sad',
- 'cry',
- 'bawling'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with cold sweat',
- 'category': 'People',
- 'aliases': [
- 'sweat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'sleepy face',
- 'category': 'People',
- 'aliases': [
- 'sleepy'
- ],
- 'tags': [
- 'tired'
- ]
- },
- {
- 'emoji': '๐ด',
- 'description': 'sleeping face',
- 'category': 'People',
- 'aliases': [
- 'sleeping'
- ],
- 'tags': [
- 'zzz'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'face with rolling eyes',
- 'category': 'People',
- 'aliases': [
- 'roll_eyes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'thinking face',
- 'category': 'People',
- 'aliases': [
- 'thinking'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฅ',
- 'description': 'lying face',
- 'category': 'People',
- 'aliases': [
- 'lying_face'
- ],
- 'tags': [
- 'liar'
- ]
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'grimacing face',
- 'category': 'People',
- 'aliases': [
- 'grimacing'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'zipper-mouth face',
- 'category': 'People',
- 'aliases': [
- 'zipper_mouth_face'
- ],
- 'tags': [
- 'silence',
- 'hush'
- ]
- },
- {
- 'emoji': '๐คข',
- 'description': 'nauseated face',
- 'category': 'People',
- 'aliases': [
- 'nauseated_face'
- ],
- 'tags': [
- 'sick',
- 'barf',
- 'disgusted'
- ]
- },
- {
- 'emoji': '๐คง',
- 'description': 'sneezing face',
- 'category': 'People',
- 'aliases': [
- 'sneezing_face'
- ],
- 'tags': [
- 'achoo',
- 'sick'
- ]
- },
- {
- 'emoji': '๐ท',
- 'description': 'face with medical mask',
- 'category': 'People',
- 'aliases': [
- 'mask'
- ],
- 'tags': [
- 'sick',
- 'ill'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'face with thermometer',
- 'category': 'People',
- 'aliases': [
- 'face_with_thermometer'
- ],
- 'tags': [
- 'sick'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'face with head-bandage',
- 'category': 'People',
- 'aliases': [
- 'face_with_head_bandage'
- ],
- 'tags': [
- 'hurt'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'smiling face with horns',
- 'category': 'People',
- 'aliases': [
- 'smiling_imp'
- ],
- 'tags': [
- 'devil',
- 'evil',
- 'horns'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'angry face with horns',
- 'category': 'People',
- 'aliases': [
- 'imp'
- ],
- 'tags': [
- 'angry',
- 'devil',
- 'evil',
- 'horns'
- ]
- },
- {
- 'emoji': '๐น',
- 'description': 'ogre',
- 'category': 'People',
- 'aliases': [
- 'japanese_ogre'
- ],
- 'tags': [
- 'monster'
- ]
- },
- {
- 'emoji': '๐บ',
- 'description': 'goblin',
- 'category': 'People',
- 'aliases': [
- 'japanese_goblin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'pile of poo',
- 'category': 'People',
- 'aliases': [
- 'hankey',
- 'poop',
- 'shit'
- ],
- 'tags': [
- 'crap'
- ]
- },
- {
- 'emoji': '๐ป',
- 'description': 'ghost',
- 'category': 'People',
- 'aliases': [
- 'ghost'
- ],
- 'tags': [
- 'halloween'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'skull',
- 'category': 'People',
- 'aliases': [
- 'skull'
- ],
- 'tags': [
- 'dead',
- 'danger',
- 'poison'
- ]
- },
- {
- 'emoji': 'โ ๏ธ',
- 'description': 'skull and crossbones',
- 'category': 'People',
- 'aliases': [
- 'skull_and_crossbones'
- ],
- 'tags': [
- 'danger',
- 'pirate'
- ]
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'alien',
- 'category': 'People',
- 'aliases': [
- 'alien'
- ],
- 'tags': [
- 'ufo'
- ]
- },
- {
- 'emoji': '๐พ',
- 'description': 'alien monster',
- 'category': 'People',
- 'aliases': [
- 'space_invader'
- ],
- 'tags': [
- 'game',
- 'retro'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'robot face',
- 'category': 'People',
- 'aliases': [
- 'robot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'jack-o-lantern',
- 'category': 'People',
- 'aliases': [
- 'jack_o_lantern'
- ],
- 'tags': [
- 'halloween'
- ]
- },
- {
- 'emoji': '๐บ',
- 'description': 'smiling cat face with open mouth',
- 'category': 'People',
- 'aliases': [
- 'smiley_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'grinning cat face with smiling eyes',
- 'category': 'People',
- 'aliases': [
- 'smile_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'cat face with tears of joy',
- 'category': 'People',
- 'aliases': [
- 'joy_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'smiling cat face with heart-eyes',
- 'category': 'People',
- 'aliases': [
- 'heart_eyes_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'cat face with wry smile',
- 'category': 'People',
- 'aliases': [
- 'smirk_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'kissing cat face with closed eyes',
- 'category': 'People',
- 'aliases': [
- 'kissing_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'weary cat face',
- 'category': 'People',
- 'aliases': [
- 'scream_cat'
- ],
- 'tags': [
- 'horror'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'crying cat face',
- 'category': 'People',
- 'aliases': [
- 'crying_cat_face'
- ],
- 'tags': [
- 'sad',
- 'tear'
- ]
- },
- {
- 'emoji': '๐พ',
- 'description': 'pouting cat face',
- 'category': 'People',
- 'aliases': [
- 'pouting_cat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'open hands',
- 'category': 'People',
- 'aliases': [
- 'open_hands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'raising hands',
- 'category': 'People',
- 'aliases': [
- 'raised_hands'
- ],
- 'tags': [
- 'hooray'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'clapping hands',
- 'category': 'People',
- 'aliases': [
- 'clap'
- ],
- 'tags': [
- 'praise',
- 'applause'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'folded hands',
- 'category': 'People',
- 'aliases': [
- 'pray'
- ],
- 'tags': [
- 'please',
- 'hope',
- 'wish'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'handshake',
- 'category': 'People',
- 'aliases': [
- 'handshake'
- ],
- 'tags': [
- 'deal'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'thumbs up',
- 'category': 'People',
- 'aliases': [
- '+1',
- 'thumbsup'
- ],
- 'tags': [
- 'approve',
- 'ok'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'thumbs down',
- 'category': 'People',
- 'aliases': [
- '-1',
- 'thumbsdown'
- ],
- 'tags': [
- 'disapprove',
- 'bury'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'oncoming fist',
- 'category': 'People',
- 'aliases': [
- 'fist_oncoming',
- 'facepunch',
- 'punch'
- ],
- 'tags': [
- 'attack'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'raised fist',
- 'category': 'People',
- 'aliases': [
- 'fist_raised',
- 'fist'
- ],
- 'tags': [
- 'power'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'left-facing fist',
- 'category': 'People',
- 'aliases': [
- 'fist_left'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'right-facing fist',
- 'category': 'People',
- 'aliases': [
- 'fist_right'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'crossed fingers',
- 'category': 'People',
- 'aliases': [
- 'crossed_fingers'
- ],
- 'tags': [
- 'luck',
- 'hopeful'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'victory hand',
- 'category': 'People',
- 'aliases': [
- 'v'
- ],
- 'tags': [
- 'victory',
- 'peace'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'sign of the horns',
- 'category': 'People',
- 'aliases': [
- 'metal'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'OK hand',
- 'category': 'People',
- 'aliases': [
- 'ok_hand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'backhand index pointing left',
- 'category': 'People',
- 'aliases': [
- 'point_left'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'backhand index pointing right',
- 'category': 'People',
- 'aliases': [
- 'point_right'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'backhand index pointing up',
- 'category': 'People',
- 'aliases': [
- 'point_up_2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'backhand index pointing down',
- 'category': 'People',
- 'aliases': [
- 'point_down'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'index pointing up',
- 'category': 'People',
- 'aliases': [
- 'point_up'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'raised hand',
- 'category': 'People',
- 'aliases': [
- 'hand',
- 'raised_hand'
- ],
- 'tags': [
- 'highfive',
- 'stop'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'raised back of hand',
- 'category': 'People',
- 'aliases': [
- 'raised_back_of_hand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'raised hand with fingers splayed',
- 'category': 'People',
- 'aliases': [
- 'raised_hand_with_fingers_splayed'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'vulcan salute',
- 'category': 'People',
- 'aliases': [
- 'vulcan_salute'
- ],
- 'tags': [
- 'prosper',
- 'spock'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'waving hand',
- 'category': 'People',
- 'aliases': [
- 'wave'
- ],
- 'tags': [
- 'goodbye'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'call me hand',
- 'category': 'People',
- 'aliases': [
- 'call_me_hand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'flexed biceps',
- 'category': 'People',
- 'aliases': [
- 'muscle'
- ],
- 'tags': [
- 'flex',
- 'bicep',
- 'strong',
- 'workout'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'middle finger',
- 'category': 'People',
- 'aliases': [
- 'middle_finger',
- 'fu'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'writing hand',
- 'category': 'People',
- 'aliases': [
- 'writing_hand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คณ',
- 'description': 'selfie',
- 'category': 'People',
- 'aliases': [
- 'selfie'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
',
- 'description': 'nail polish',
- 'category': 'People',
- 'aliases': [
- 'nail_care'
- ],
- 'tags': [
- 'beauty',
- 'manicure'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'ring',
- 'category': 'People',
- 'aliases': [
- 'ring'
- ],
- 'tags': [
- 'wedding',
- 'marriage',
- 'engaged'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'lipstick',
- 'category': 'People',
- 'aliases': [
- 'lipstick'
- ],
- 'tags': [
- 'makeup'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'kiss mark',
- 'category': 'People',
- 'aliases': [
- 'kiss'
- ],
- 'tags': [
- 'lipstick'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'mouth',
- 'category': 'People',
- 'aliases': [
- 'lips'
- ],
- 'tags': [
- 'kiss'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'tongue',
- 'category': 'People',
- 'aliases': [
- 'tongue'
- ],
- 'tags': [
- 'taste'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'ear',
- 'category': 'People',
- 'aliases': [
- 'ear'
- ],
- 'tags': [
- 'hear',
- 'sound',
- 'listen'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'nose',
- 'category': 'People',
- 'aliases': [
- 'nose'
- ],
- 'tags': [
- 'smell'
- ]
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'footprints',
- 'category': 'People',
- 'aliases': [
- 'footprints'
- ],
- 'tags': [
- 'feet',
- 'tracks'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'eye',
- 'category': 'People',
- 'aliases': [
- 'eye'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'eyes',
- 'category': 'People',
- 'aliases': [
- 'eyes'
- ],
- 'tags': [
- 'look',
- 'see',
- 'watch'
- ]
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'speaking head',
- 'category': 'People',
- 'aliases': [
- 'speaking_head'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'bust in silhouette',
- 'category': 'People',
- 'aliases': [
- 'bust_in_silhouette'
- ],
- 'tags': [
- 'user'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'busts in silhouette',
- 'category': 'People',
- 'aliases': [
- 'busts_in_silhouette'
- ],
- 'tags': [
- 'users',
- 'group',
- 'team'
- ]
- },
- {
- 'emoji': '๐ถ',
- 'description': 'baby',
- 'category': 'People',
- 'aliases': [
- 'baby'
- ],
- 'tags': [
- 'child',
- 'newborn'
- ]
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'boy',
- 'category': 'People',
- 'aliases': [
- 'boy'
- ],
- 'tags': [
- 'child'
- ]
- },
- {
- 'emoji': '๐ง',
- 'description': 'girl',
- 'category': 'People',
- 'aliases': [
- 'girl'
- ],
- 'tags': [
- 'child'
- ]
- },
- {
- 'emoji': '๐จ',
- 'description': 'man',
- 'category': 'People',
- 'aliases': [
- 'man'
- ],
- 'tags': [
- 'mustache',
- 'father',
- 'dad'
- ]
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'woman',
- 'category': 'People',
- 'aliases': [
- 'woman'
- ],
- 'tags': [
- 'girls'
- ]
- },
- {
- 'emoji': '๐ฑโโ',
- 'description': 'blond-haired woman',
- 'category': 'People',
- 'aliases': [
- 'blonde_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'blond-haired person',
- 'category': 'People',
- 'aliases': [
- 'blonde_man',
- 'person_with_blond_hair'
- ],
- 'tags': [
- 'boy'
- ]
- },
- {
- 'emoji': '๐ด',
- 'description': 'old man',
- 'category': 'People',
- 'aliases': [
- 'older_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'old woman',
- 'category': 'People',
- 'aliases': [
- 'older_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'man with Chinese cap',
- 'category': 'People',
- 'aliases': [
- 'man_with_gua_pi_mao'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณโโ',
- 'description': 'woman wearing turban',
- 'category': 'People',
- 'aliases': [
- 'woman_with_turban'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'person wearing turban',
- 'category': 'People',
- 'aliases': [
- 'man_with_turban'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎโโ',
- 'description': 'woman police officer',
- 'category': 'People',
- 'aliases': [
- 'policewoman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'police officer',
- 'category': 'People',
- 'aliases': [
- 'policeman',
- 'cop'
- ],
- 'tags': [
- 'police',
- 'law'
- ]
- },
- {
- 'emoji': '๐ทโโ',
- 'description': 'woman construction worker',
- 'category': 'People',
- 'aliases': [
- 'construction_worker_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'construction worker',
- 'category': 'People',
- 'aliases': [
- 'construction_worker_man',
- 'construction_worker'
- ],
- 'tags': [
- 'helmet'
- ]
- },
- {
- 'emoji': '๐โโ',
- 'description': 'woman guard',
- 'category': 'People',
- 'aliases': [
- 'guardswoman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'guard',
- 'category': 'People',
- 'aliases': [
- 'guardsman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๏ธโโ๏ธ',
- 'description': 'woman detective',
- 'category': 'People',
- 'aliases': [
- 'female_detective'
- ],
- 'tags': [
- 'sleuth'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'detective',
- 'category': 'People',
- 'aliases': [
- 'male_detective',
- 'detective'
- ],
- 'tags': [
- 'sleuth'
- ]
- },
- {
- 'emoji': '๐ฉโโ',
- 'description': 'woman health worker',
- 'category': 'People',
- 'aliases': [
- 'woman_health_worker'
- ],
- 'tags': [
- 'doctor',
- 'nurse'
- ]
- },
- {
- 'emoji': '๐จโโ',
- 'description': 'man health worker',
- 'category': 'People',
- 'aliases': [
- 'man_health_worker'
- ],
- 'tags': [
- 'doctor',
- 'nurse'
- ]
- },
- {
- 'emoji': '๐ฉโ๐พ',
- 'description': 'woman farmer',
- 'category': 'People',
- 'aliases': [
- 'woman_farmer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐พ',
- 'description': 'man farmer',
- 'category': 'People',
- 'aliases': [
- 'man_farmer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ณ',
- 'description': 'woman cook',
- 'category': 'People',
- 'aliases': [
- 'woman_cook'
- ],
- 'tags': [
- 'chef'
- ]
- },
- {
- 'emoji': '๐จโ๐ณ',
- 'description': 'man cook',
- 'category': 'People',
- 'aliases': [
- 'man_cook'
- ],
- 'tags': [
- 'chef'
- ]
- },
- {
- 'emoji': '๐ฉโ๐',
- 'description': 'woman student',
- 'category': 'People',
- 'aliases': [
- 'woman_student'
- ],
- 'tags': [
- 'graduation'
- ]
- },
- {
- 'emoji': '๐จโ๐',
- 'description': 'man student',
- 'category': 'People',
- 'aliases': [
- 'man_student'
- ],
- 'tags': [
- 'graduation'
- ]
- },
- {
- 'emoji': '๐ฉโ๐ค',
- 'description': 'woman singer',
- 'category': 'People',
- 'aliases': [
- 'woman_singer'
- ],
- 'tags': [
- 'rockstar'
- ]
- },
- {
- 'emoji': '๐จโ๐ค',
- 'description': 'man singer',
- 'category': 'People',
- 'aliases': [
- 'man_singer'
- ],
- 'tags': [
- 'rockstar'
- ]
- },
- {
- 'emoji': '๐ฉโ๐ซ',
- 'description': 'woman teacher',
- 'category': 'People',
- 'aliases': [
- 'woman_teacher'
- ],
- 'tags': [
- 'school',
- 'professor'
- ]
- },
- {
- 'emoji': '๐จโ๐ซ',
- 'description': 'man teacher',
- 'category': 'People',
- 'aliases': [
- 'man_teacher'
- ],
- 'tags': [
- 'school',
- 'professor'
- ]
- },
- {
- 'emoji': '๐ฉโ๐ญ',
- 'description': 'woman factory worker',
- 'category': 'People',
- 'aliases': [
- 'woman_factory_worker'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ญ',
- 'description': 'man factory worker',
- 'category': 'People',
- 'aliases': [
- 'man_factory_worker'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ป',
- 'description': 'woman technologist',
- 'category': 'People',
- 'aliases': [
- 'woman_technologist'
- ],
- 'tags': [
- 'coder'
- ]
- },
- {
- 'emoji': '๐จโ๐ป',
- 'description': 'man technologist',
- 'category': 'People',
- 'aliases': [
- 'man_technologist'
- ],
- 'tags': [
- 'coder'
- ]
- },
- {
- 'emoji': '๐ฉโ๐ผ',
- 'description': 'woman office worker',
- 'category': 'People',
- 'aliases': [
- 'woman_office_worker'
- ],
- 'tags': [
- 'business'
- ]
- },
- {
- 'emoji': '๐จโ๐ผ',
- 'description': 'man office worker',
- 'category': 'People',
- 'aliases': [
- 'man_office_worker'
- ],
- 'tags': [
- 'business'
- ]
- },
- {
- 'emoji': '๐ฉโ๐ง',
- 'description': 'woman mechanic',
- 'category': 'People',
- 'aliases': [
- 'woman_mechanic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ง',
- 'description': 'man mechanic',
- 'category': 'People',
- 'aliases': [
- 'man_mechanic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฌ',
- 'description': 'woman scientist',
- 'category': 'People',
- 'aliases': [
- 'woman_scientist'
- ],
- 'tags': [
- 'research'
- ]
- },
- {
- 'emoji': '๐จโ๐ฌ',
- 'description': 'man scientist',
- 'category': 'People',
- 'aliases': [
- 'man_scientist'
- ],
- 'tags': [
- 'research'
- ]
- },
- {
- 'emoji': '๐ฉโ๐จ',
- 'description': 'woman artist',
- 'category': 'People',
- 'aliases': [
- 'woman_artist'
- ],
- 'tags': [
- 'painter'
- ]
- },
- {
- 'emoji': '๐จโ๐จ',
- 'description': 'man artist',
- 'category': 'People',
- 'aliases': [
- 'man_artist'
- ],
- 'tags': [
- 'painter'
- ]
- },
- {
- 'emoji': '๐ฉโ๐',
- 'description': 'woman firefighter',
- 'category': 'People',
- 'aliases': [
- 'woman_firefighter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐',
- 'description': 'man firefighter',
- 'category': 'People',
- 'aliases': [
- 'man_firefighter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโโ',
- 'description': 'woman pilot',
- 'category': 'People',
- 'aliases': [
- 'woman_pilot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโโ',
- 'description': 'man pilot',
- 'category': 'People',
- 'aliases': [
- 'man_pilot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐',
- 'description': 'woman astronaut',
- 'category': 'People',
- 'aliases': [
- 'woman_astronaut'
- ],
- 'tags': [
- 'space'
- ]
- },
- {
- 'emoji': '๐จโ๐',
- 'description': 'man astronaut',
- 'category': 'People',
- 'aliases': [
- 'man_astronaut'
- ],
- 'tags': [
- 'space'
- ]
- },
- {
- 'emoji': '๐ฉโโ',
- 'description': 'woman judge',
- 'category': 'People',
- 'aliases': [
- 'woman_judge'
- ],
- 'tags': [
- 'justice'
- ]
- },
- {
- 'emoji': '๐จโโ',
- 'description': 'man judge',
- 'category': 'People',
- 'aliases': [
- 'man_judge'
- ],
- 'tags': [
- 'justice'
- ]
- },
- {
- 'emoji': '๐คถ',
- 'description': 'Mrs. Claus',
- 'category': 'People',
- 'aliases': [
- 'mrs_claus'
- ],
- 'tags': [
- 'santa'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'Santa Claus',
- 'category': 'People',
- 'aliases': [
- 'santa'
- ],
- 'tags': [
- 'christmas'
- ]
- },
- {
- 'emoji': '๐ธ',
- 'description': 'princess',
- 'category': 'People',
- 'aliases': [
- 'princess'
- ],
- 'tags': [
- 'blonde',
- 'crown',
- 'royal'
- ]
- },
- {
- 'emoji': '๐คด',
- 'description': 'prince',
- 'category': 'People',
- 'aliases': [
- 'prince'
- ],
- 'tags': [
- 'crown',
- 'royal'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'bride with veil',
- 'category': 'People',
- 'aliases': [
- 'bride_with_veil'
- ],
- 'tags': [
- 'marriage',
- 'wedding'
- ]
- },
- {
- 'emoji': '๐คต',
- 'description': 'man in tuxedo',
- 'category': 'People',
- 'aliases': [
- 'man_in_tuxedo'
- ],
- 'tags': [
- 'groom',
- 'marriage',
- 'wedding'
- ]
- },
- {
- 'emoji': '๐ผ',
- 'description': 'baby angel',
- 'category': 'People',
- 'aliases': [
- 'angel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฐ',
- 'description': 'pregnant woman',
- 'category': 'People',
- 'aliases': [
- 'pregnant_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'woman bowing',
- 'category': 'People',
- 'aliases': [
- 'bowing_woman'
- ],
- 'tags': [
- 'respect',
- 'thanks'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'person bowing',
- 'category': 'People',
- 'aliases': [
- 'bowing_man',
- 'bow'
- ],
- 'tags': [
- 'respect',
- 'thanks'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'person tipping hand',
- 'category': 'People',
- 'aliases': [
- 'tipping_hand_woman',
- 'information_desk_person',
- 'sassy_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man tipping hand',
- 'category': 'People',
- 'aliases': [
- 'tipping_hand_man',
- 'sassy_man'
- ],
- 'tags': [
- 'information'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'person gesturing NO',
- 'category': 'People',
- 'aliases': [
- 'no_good_woman',
- 'no_good',
- 'ng_woman'
- ],
- 'tags': [
- 'stop',
- 'halt'
- ]
- },
- {
- 'emoji': '๐
โโ',
- 'description': 'man gesturing NO',
- 'category': 'People',
- 'aliases': [
- 'no_good_man',
- 'ng_man'
- ],
- 'tags': [
- 'stop',
- 'halt'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'person gesturing OK',
- 'category': 'People',
- 'aliases': [
- 'ok_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man gesturing OK',
- 'category': 'People',
- 'aliases': [
- 'ok_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person raising hand',
- 'category': 'People',
- 'aliases': [
- 'raising_hand_woman',
- 'raising_hand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man raising hand',
- 'category': 'People',
- 'aliases': [
- 'raising_hand_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฆโโ',
- 'description': 'woman facepalming',
- 'category': 'People',
- 'aliases': [
- 'woman_facepalming'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฆโโ',
- 'description': 'man facepalming',
- 'category': 'People',
- 'aliases': [
- 'man_facepalming'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คทโโ',
- 'description': 'woman shrugging',
- 'category': 'People',
- 'aliases': [
- 'woman_shrugging'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คทโโ',
- 'description': 'man shrugging',
- 'category': 'People',
- 'aliases': [
- 'man_shrugging'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person pouting',
- 'category': 'People',
- 'aliases': [
- 'pouting_woman',
- 'person_with_pouting_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man pouting',
- 'category': 'People',
- 'aliases': [
- 'pouting_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person frowning',
- 'category': 'People',
- 'aliases': [
- 'frowning_woman',
- 'person_frowning'
- ],
- 'tags': [
- 'sad'
- ]
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man frowning',
- 'category': 'People',
- 'aliases': [
- 'frowning_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person getting haircut',
- 'category': 'People',
- 'aliases': [
- 'haircut_woman',
- 'haircut'
- ],
- 'tags': [
- 'beauty'
- ]
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man getting haircut',
- 'category': 'People',
- 'aliases': [
- 'haircut_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person getting massage',
- 'category': 'People',
- 'aliases': [
- 'massage_woman',
- 'massage'
- ],
- 'tags': [
- 'spa'
- ]
- },
- {
- 'emoji': '๐โโ',
- 'description': 'man getting massage',
- 'category': 'People',
- 'aliases': [
- 'massage_man'
- ],
- 'tags': [
- 'spa'
- ]
- },
- {
- 'emoji': '๐ด',
- 'description': 'man in business suit levitating',
- 'category': 'People',
- 'aliases': [
- 'business_suit_levitating'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'woman dancing',
- 'category': 'People',
- 'aliases': [
- 'dancer'
- ],
- 'tags': [
- 'dress'
- ]
- },
- {
- 'emoji': '๐บ',
- 'description': 'man dancing',
- 'category': 'People',
- 'aliases': [
- 'man_dancing'
- ],
- 'tags': [
- 'dancer'
- ]
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'people with bunny ears partying',
- 'category': 'People',
- 'aliases': [
- 'dancing_women',
- 'dancers'
- ],
- 'tags': [
- 'bunny'
- ]
- },
- {
- 'emoji': '๐ฏโโ',
- 'description': 'men with bunny ears partying',
- 'category': 'People',
- 'aliases': [
- 'dancing_men'
- ],
- 'tags': [
- 'bunny'
- ]
- },
- {
- 'emoji': '๐ถโโ',
- 'description': 'woman walking',
- 'category': 'People',
- 'aliases': [
- 'walking_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'person walking',
- 'category': 'People',
- 'aliases': [
- 'walking_man',
- 'walking'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'woman running',
- 'category': 'People',
- 'aliases': [
- 'running_woman'
- ],
- 'tags': [
- 'exercise',
- 'workout',
- 'marathon'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'person running',
- 'category': 'People',
- 'aliases': [
- 'running_man',
- 'runner',
- 'running'
- ],
- 'tags': [
- 'exercise',
- 'workout',
- 'marathon'
- ]
- },
- {
- 'emoji': '๐ซ',
- 'description': 'man and woman holding hands',
- 'category': 'People',
- 'aliases': [
- 'couple'
- ],
- 'tags': [
- 'date'
- ]
- },
- {
- 'emoji': '๐ญ',
- 'description': 'two women holding hands',
- 'category': 'People',
- 'aliases': [
- 'two_women_holding_hands'
- ],
- 'tags': [
- 'couple',
- 'date'
- ]
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'two men holding hands',
- 'category': 'People',
- 'aliases': [
- 'two_men_holding_hands'
- ],
- 'tags': [
- 'couple',
- 'date'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'couple with heart',
- 'category': 'People',
- 'aliases': [
- 'couple_with_heart_woman_man',
- 'couple_with_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโโค๏ธโ๐ฉ',
- 'description': 'couple with heart: woman, woman',
- 'category': 'People',
- 'aliases': [
- 'couple_with_heart_woman_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโโค๏ธโ๐จ',
- 'description': 'couple with heart: man, man',
- 'category': 'People',
- 'aliases': [
- 'couple_with_heart_man_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'kiss',
- 'category': 'People',
- 'aliases': [
- 'couplekiss_man_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโโค๏ธโ๐โ๐ฉ',
- 'description': 'kiss: woman, woman',
- 'category': 'People',
- 'aliases': [
- 'couplekiss_woman_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโโค๏ธโ๐โ๐จ',
- 'description': 'kiss: man, man',
- 'category': 'People',
- 'aliases': [
- 'couplekiss_man_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'family',
- 'category': 'People',
- 'aliases': [
- 'family_man_woman_boy',
- 'family'
- ],
- 'tags': [
- 'home',
- 'parents',
- 'child'
- ]
- },
- {
- 'emoji': '๐จโ๐ฉโ๐ง',
- 'description': 'family: man, woman, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_woman_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ฉโ๐งโ๐ฆ',
- 'description': 'family: man, woman, girl, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_woman_girl_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ฉโ๐ฆโ๐ฆ',
- 'description': 'family: man, woman, boy, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_woman_boy_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ฉโ๐งโ๐ง',
- 'description': 'family: man, woman, girl, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_woman_girl_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฉโ๐ฆ',
- 'description': 'family: woman, woman, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_woman_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฉโ๐ง',
- 'description': 'family: woman, woman, girl',
- 'category': 'People',
- 'aliases': [
- 'family_woman_woman_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฉโ๐งโ๐ฆ',
- 'description': 'family: woman, woman, girl, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_woman_girl_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฉโ๐ฆโ๐ฆ',
- 'description': 'family: woman, woman, boy, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_woman_boy_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฉโ๐งโ๐ง',
- 'description': 'family: woman, woman, girl, girl',
- 'category': 'People',
- 'aliases': [
- 'family_woman_woman_girl_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐จโ๐ฆ',
- 'description': 'family: man, man, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_man_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐จโ๐ง',
- 'description': 'family: man, man, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_man_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐จโ๐งโ๐ฆ',
- 'description': 'family: man, man, girl, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_man_girl_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐จโ๐ฆโ๐ฆ',
- 'description': 'family: man, man, boy, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_man_boy_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐จโ๐งโ๐ง',
- 'description': 'family: man, man, girl, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_man_girl_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฆ',
- 'description': 'family: woman, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ง',
- 'description': 'family: woman, girl',
- 'category': 'People',
- 'aliases': [
- 'family_woman_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐งโ๐ฆ',
- 'description': 'family: woman, girl, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_girl_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐ฆโ๐ฆ',
- 'description': 'family: woman, boy, boy',
- 'category': 'People',
- 'aliases': [
- 'family_woman_boy_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉโ๐งโ๐ง',
- 'description': 'family: woman, girl, girl',
- 'category': 'People',
- 'aliases': [
- 'family_woman_girl_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ฆ',
- 'description': 'family: man, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ง',
- 'description': 'family: man, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐งโ๐ฆ',
- 'description': 'family: man, girl, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_girl_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐ฆโ๐ฆ',
- 'description': 'family: man, boy, boy',
- 'category': 'People',
- 'aliases': [
- 'family_man_boy_boy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จโ๐งโ๐ง',
- 'description': 'family: man, girl, girl',
- 'category': 'People',
- 'aliases': [
- 'family_man_girl_girl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'womanโs clothes',
- 'category': 'People',
- 'aliases': [
- 'womans_clothes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 't-shirt',
- 'category': 'People',
- 'aliases': [
- 'shirt',
- 'tshirt'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'jeans',
- 'category': 'People',
- 'aliases': [
- 'jeans'
- ],
- 'tags': [
- 'pants'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'necktie',
- 'category': 'People',
- 'aliases': [
- 'necktie'
- ],
- 'tags': [
- 'shirt',
- 'formal'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'dress',
- 'category': 'People',
- 'aliases': [
- 'dress'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bikini',
- 'category': 'People',
- 'aliases': [
- 'bikini'
- ],
- 'tags': [
- 'beach'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'kimono',
- 'category': 'People',
- 'aliases': [
- 'kimono'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'high-heeled shoe',
- 'category': 'People',
- 'aliases': [
- 'high_heel'
- ],
- 'tags': [
- 'shoe'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'womanโs sandal',
- 'category': 'People',
- 'aliases': [
- 'sandal'
- ],
- 'tags': [
- 'shoe'
- ]
- },
- {
- 'emoji': '๐ข',
- 'description': 'womanโs boot',
- 'category': 'People',
- 'aliases': [
- 'boot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'manโs shoe',
- 'category': 'People',
- 'aliases': [
- 'mans_shoe',
- 'shoe'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'running shoe',
- 'category': 'People',
- 'aliases': [
- 'athletic_shoe'
- ],
- 'tags': [
- 'sneaker',
- 'sport',
- 'running'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'womanโs hat',
- 'category': 'People',
- 'aliases': [
- 'womans_hat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'top hat',
- 'category': 'People',
- 'aliases': [
- 'tophat'
- ],
- 'tags': [
- 'hat',
- 'classy'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'graduation cap',
- 'category': 'People',
- 'aliases': [
- 'mortar_board'
- ],
- 'tags': [
- 'education',
- 'college',
- 'university',
- 'graduation'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'crown',
- 'category': 'People',
- 'aliases': [
- 'crown'
- ],
- 'tags': [
- 'king',
- 'queen',
- 'royal'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'rescue workerโs helmet',
- 'category': 'People',
- 'aliases': [
- 'rescue_worker_helmet'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'school backpack',
- 'category': 'People',
- 'aliases': [
- 'school_satchel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'clutch bag',
- 'category': 'People',
- 'aliases': [
- 'pouch'
- ],
- 'tags': [
- 'bag'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'purse',
- 'category': 'People',
- 'aliases': [
- 'purse'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'handbag',
- 'category': 'People',
- 'aliases': [
- 'handbag'
- ],
- 'tags': [
- 'bag'
- ]
- },
- {
- 'emoji': '๐ผ',
- 'description': 'briefcase',
- 'category': 'People',
- 'aliases': [
- 'briefcase'
- ],
- 'tags': [
- 'business'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'glasses',
- 'category': 'People',
- 'aliases': [
- 'eyeglasses'
- ],
- 'tags': [
- 'glasses'
- ]
- },
- {
- 'emoji': '๐ถ',
- 'description': 'sunglasses',
- 'category': 'People',
- 'aliases': [
- 'dark_sunglasses'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'closed umbrella',
- 'category': 'People',
- 'aliases': [
- 'closed_umbrella'
- ],
- 'tags': [
- 'weather',
- 'rain'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'umbrella',
- 'category': 'People',
- 'aliases': [
- 'open_umbrella'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'dog face',
- 'category': 'Nature',
- 'aliases': [
- 'dog'
- ],
- 'tags': [
- 'pet'
- ]
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'cat face',
- 'category': 'Nature',
- 'aliases': [
- 'cat'
- ],
- 'tags': [
- 'pet'
- ]
- },
- {
- 'emoji': '๐ญ',
- 'description': 'mouse face',
- 'category': 'Nature',
- 'aliases': [
- 'mouse'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'hamster face',
- 'category': 'Nature',
- 'aliases': [
- 'hamster'
- ],
- 'tags': [
- 'pet'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'rabbit face',
- 'category': 'Nature',
- 'aliases': [
- 'rabbit'
- ],
- 'tags': [
- 'bunny'
- ]
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'fox face',
- 'category': 'Nature',
- 'aliases': [
- 'fox_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'bear face',
- 'category': 'Nature',
- 'aliases': [
- 'bear'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'panda face',
- 'category': 'Nature',
- 'aliases': [
- 'panda_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'koala',
- 'category': 'Nature',
- 'aliases': [
- 'koala'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'tiger face',
- 'category': 'Nature',
- 'aliases': [
- 'tiger'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'lion face',
- 'category': 'Nature',
- 'aliases': [
- 'lion'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'cow face',
- 'category': 'Nature',
- 'aliases': [
- 'cow'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'pig face',
- 'category': 'Nature',
- 'aliases': [
- 'pig'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'pig nose',
- 'category': 'Nature',
- 'aliases': [
- 'pig_nose'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'frog face',
- 'category': 'Nature',
- 'aliases': [
- 'frog'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'monkey face',
- 'category': 'Nature',
- 'aliases': [
- 'monkey_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'see-no-evil monkey',
- 'category': 'Nature',
- 'aliases': [
- 'see_no_evil'
- ],
- 'tags': [
- 'monkey',
- 'blind',
- 'ignore'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'hear-no-evil monkey',
- 'category': 'Nature',
- 'aliases': [
- 'hear_no_evil'
- ],
- 'tags': [
- 'monkey',
- 'deaf'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'speak-no-evil monkey',
- 'category': 'Nature',
- 'aliases': [
- 'speak_no_evil'
- ],
- 'tags': [
- 'monkey',
- 'mute',
- 'hush'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'monkey',
- 'category': 'Nature',
- 'aliases': [
- 'monkey'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'chicken',
- 'category': 'Nature',
- 'aliases': [
- 'chicken'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'penguin',
- 'category': 'Nature',
- 'aliases': [
- 'penguin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'bird',
- 'category': 'Nature',
- 'aliases': [
- 'bird'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'baby chick',
- 'category': 'Nature',
- 'aliases': [
- 'baby_chick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'hatching chick',
- 'category': 'Nature',
- 'aliases': [
- 'hatching_chick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'front-facing baby chick',
- 'category': 'Nature',
- 'aliases': [
- 'hatched_chick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'duck',
- 'category': 'Nature',
- 'aliases': [
- 'duck'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ
',
- 'description': 'eagle',
- 'category': 'Nature',
- 'aliases': [
- 'eagle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'owl',
- 'category': 'Nature',
- 'aliases': [
- 'owl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'bat',
- 'category': 'Nature',
- 'aliases': [
- 'bat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'wolf face',
- 'category': 'Nature',
- 'aliases': [
- 'wolf'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'boar',
- 'category': 'Nature',
- 'aliases': [
- 'boar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'horse face',
- 'category': 'Nature',
- 'aliases': [
- 'horse'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'unicorn face',
- 'category': 'Nature',
- 'aliases': [
- 'unicorn'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'honeybee',
- 'category': 'Nature',
- 'aliases': [
- 'bee',
- 'honeybee'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bug',
- 'category': 'Nature',
- 'aliases': [
- 'bug'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'butterfly',
- 'category': 'Nature',
- 'aliases': [
- 'butterfly'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'snail',
- 'category': 'Nature',
- 'aliases': [
- 'snail'
- ],
- 'tags': [
- 'slow'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'spiral shell',
- 'category': 'Nature',
- 'aliases': [
- 'shell'
- ],
- 'tags': [
- 'sea',
- 'beach'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'lady beetle',
- 'category': 'Nature',
- 'aliases': [
- 'beetle'
- ],
- 'tags': [
- 'bug'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'ant',
- 'category': 'Nature',
- 'aliases': [
- 'ant'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'spider',
- 'category': 'Nature',
- 'aliases': [
- 'spider'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'spider web',
- 'category': 'Nature',
- 'aliases': [
- 'spider_web'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'turtle',
- 'category': 'Nature',
- 'aliases': [
- 'turtle'
- ],
- 'tags': [
- 'slow'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'snake',
- 'category': 'Nature',
- 'aliases': [
- 'snake'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'lizard',
- 'category': 'Nature',
- 'aliases': [
- 'lizard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'scorpion',
- 'category': 'Nature',
- 'aliases': [
- 'scorpion'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'crab',
- 'category': 'Nature',
- 'aliases': [
- 'crab'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'squid',
- 'category': 'Nature',
- 'aliases': [
- 'squid'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'octopus',
- 'category': 'Nature',
- 'aliases': [
- 'octopus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'shrimp',
- 'category': 'Nature',
- 'aliases': [
- 'shrimp'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'tropical fish',
- 'category': 'Nature',
- 'aliases': [
- 'tropical_fish'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'fish',
- 'category': 'Nature',
- 'aliases': [
- 'fish'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'blowfish',
- 'category': 'Nature',
- 'aliases': [
- 'blowfish'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'dolphin',
- 'category': 'Nature',
- 'aliases': [
- 'dolphin',
- 'flipper'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'shark',
- 'category': 'Nature',
- 'aliases': [
- 'shark'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'spouting whale',
- 'category': 'Nature',
- 'aliases': [
- 'whale'
- ],
- 'tags': [
- 'sea'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'whale',
- 'category': 'Nature',
- 'aliases': [
- 'whale2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'crocodile',
- 'category': 'Nature',
- 'aliases': [
- 'crocodile'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'leopard',
- 'category': 'Nature',
- 'aliases': [
- 'leopard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
',
- 'description': 'tiger',
- 'category': 'Nature',
- 'aliases': [
- 'tiger2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'water buffalo',
- 'category': 'Nature',
- 'aliases': [
- 'water_buffalo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ox',
- 'category': 'Nature',
- 'aliases': [
- 'ox'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cow',
- 'category': 'Nature',
- 'aliases': [
- 'cow2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'deer',
- 'category': 'Nature',
- 'aliases': [
- 'deer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'camel',
- 'category': 'Nature',
- 'aliases': [
- 'dromedary_camel'
- ],
- 'tags': [
- 'desert'
- ]
- },
- {
- 'emoji': '๐ซ',
- 'description': 'two-hump camel',
- 'category': 'Nature',
- 'aliases': [
- 'camel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'elephant',
- 'category': 'Nature',
- 'aliases': [
- 'elephant'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'rhinoceros',
- 'category': 'Nature',
- 'aliases': [
- 'rhinoceros'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'gorilla',
- 'category': 'Nature',
- 'aliases': [
- 'gorilla'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'horse',
- 'category': 'Nature',
- 'aliases': [
- 'racehorse'
- ],
- 'tags': [
- 'speed'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'pig',
- 'category': 'Nature',
- 'aliases': [
- 'pig2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'goat',
- 'category': 'Nature',
- 'aliases': [
- 'goat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ram',
- 'category': 'Nature',
- 'aliases': [
- 'ram'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sheep',
- 'category': 'Nature',
- 'aliases': [
- 'sheep'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'dog',
- 'category': 'Nature',
- 'aliases': [
- 'dog2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'poodle',
- 'category': 'Nature',
- 'aliases': [
- 'poodle'
- ],
- 'tags': [
- 'dog'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'cat',
- 'category': 'Nature',
- 'aliases': [
- 'cat2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rooster',
- 'category': 'Nature',
- 'aliases': [
- 'rooster'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'turkey',
- 'category': 'Nature',
- 'aliases': [
- 'turkey'
- ],
- 'tags': [
- 'thanksgiving'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'dove',
- 'category': 'Nature',
- 'aliases': [
- 'dove'
- ],
- 'tags': [
- 'peace'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'rabbit',
- 'category': 'Nature',
- 'aliases': [
- 'rabbit2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'mouse',
- 'category': 'Nature',
- 'aliases': [
- 'mouse2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rat',
- 'category': 'Nature',
- 'aliases': [
- 'rat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'chipmunk',
- 'category': 'Nature',
- 'aliases': [
- 'chipmunk'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ',
- 'description': 'paw prints',
- 'category': 'Nature',
- 'aliases': [
- 'feet',
- 'paw_prints'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'dragon',
- 'category': 'Nature',
- 'aliases': [
- 'dragon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'dragon face',
- 'category': 'Nature',
- 'aliases': [
- 'dragon_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'cactus',
- 'category': 'Nature',
- 'aliases': [
- 'cactus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'Christmas tree',
- 'category': 'Nature',
- 'aliases': [
- 'christmas_tree'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'evergreen tree',
- 'category': 'Nature',
- 'aliases': [
- 'evergreen_tree'
- ],
- 'tags': [
- 'wood'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'deciduous tree',
- 'category': 'Nature',
- 'aliases': [
- 'deciduous_tree'
- ],
- 'tags': [
- 'wood'
- ]
- },
- {
- 'emoji': '๐ด',
- 'description': 'palm tree',
- 'category': 'Nature',
- 'aliases': [
- 'palm_tree'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'seedling',
- 'category': 'Nature',
- 'aliases': [
- 'seedling'
- ],
- 'tags': [
- 'plant'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'herb',
- 'category': 'Nature',
- 'aliases': [
- 'herb'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'shamrock',
- 'category': 'Nature',
- 'aliases': [
- 'shamrock'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'four leaf clover',
- 'category': 'Nature',
- 'aliases': [
- 'four_leaf_clover'
- ],
- 'tags': [
- 'luck'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'pine decoration',
- 'category': 'Nature',
- 'aliases': [
- 'bamboo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tanabata tree',
- 'category': 'Nature',
- 'aliases': [
- 'tanabata_tree'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'leaf fluttering in wind',
- 'category': 'Nature',
- 'aliases': [
- 'leaves'
- ],
- 'tags': [
- 'leaf'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'fallen leaf',
- 'category': 'Nature',
- 'aliases': [
- 'fallen_leaf'
- ],
- 'tags': [
- 'autumn'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'maple leaf',
- 'category': 'Nature',
- 'aliases': [
- 'maple_leaf'
- ],
- 'tags': [
- 'canada'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'mushroom',
- 'category': 'Nature',
- 'aliases': [
- 'mushroom'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ',
- 'description': 'sheaf of rice',
- 'category': 'Nature',
- 'aliases': [
- 'ear_of_rice'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bouquet',
- 'category': 'Nature',
- 'aliases': [
- 'bouquet'
- ],
- 'tags': [
- 'flowers'
- ]
- },
- {
- 'emoji': '๐ท',
- 'description': 'tulip',
- 'category': 'Nature',
- 'aliases': [
- 'tulip'
- ],
- 'tags': [
- 'flower'
- ]
- },
- {
- 'emoji': '๐น',
- 'description': 'rose',
- 'category': 'Nature',
- 'aliases': [
- 'rose'
- ],
- 'tags': [
- 'flower'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'wilted flower',
- 'category': 'Nature',
- 'aliases': [
- 'wilted_flower'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'sunflower',
- 'category': 'Nature',
- 'aliases': [
- 'sunflower'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'blossom',
- 'category': 'Nature',
- 'aliases': [
- 'blossom'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'cherry blossom',
- 'category': 'Nature',
- 'aliases': [
- 'cherry_blossom'
- ],
- 'tags': [
- 'flower',
- 'spring'
- ]
- },
- {
- 'emoji': '๐บ',
- 'description': 'hibiscus',
- 'category': 'Nature',
- 'aliases': [
- 'hibiscus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'globe showing Americas',
- 'category': 'Nature',
- 'aliases': [
- 'earth_americas'
- ],
- 'tags': [
- 'globe',
- 'world',
- 'international'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'globe showing Europe-Africa',
- 'category': 'Nature',
- 'aliases': [
- 'earth_africa'
- ],
- 'tags': [
- 'globe',
- 'world',
- 'international'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'globe showing Asia-Australia',
- 'category': 'Nature',
- 'aliases': [
- 'earth_asia'
- ],
- 'tags': [
- 'globe',
- 'world',
- 'international'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'full moon',
- 'category': 'Nature',
- 'aliases': [
- 'full_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'waning gibbous moon',
- 'category': 'Nature',
- 'aliases': [
- 'waning_gibbous_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'last quarter moon',
- 'category': 'Nature',
- 'aliases': [
- 'last_quarter_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'waning crescent moon',
- 'category': 'Nature',
- 'aliases': [
- 'waning_crescent_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'new moon',
- 'category': 'Nature',
- 'aliases': [
- 'new_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'waxing crescent moon',
- 'category': 'Nature',
- 'aliases': [
- 'waxing_crescent_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'first quarter moon',
- 'category': 'Nature',
- 'aliases': [
- 'first_quarter_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'waxing gibbous moon',
- 'category': 'Nature',
- 'aliases': [
- 'moon',
- 'waxing_gibbous_moon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'new moon face',
- 'category': 'Nature',
- 'aliases': [
- 'new_moon_with_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'full moon with face',
- 'category': 'Nature',
- 'aliases': [
- 'full_moon_with_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sun with face',
- 'category': 'Nature',
- 'aliases': [
- 'sun_with_face'
- ],
- 'tags': [
- 'summer'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'first quarter moon with face',
- 'category': 'Nature',
- 'aliases': [
- 'first_quarter_moon_with_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'last quarter moon with face',
- 'category': 'Nature',
- 'aliases': [
- 'last_quarter_moon_with_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'crescent moon',
- 'category': 'Nature',
- 'aliases': [
- 'crescent_moon'
- ],
- 'tags': [
- 'night'
- ]
- },
- {
- 'emoji': '๐ซ',
- 'description': 'dizzy',
- 'category': 'Nature',
- 'aliases': [
- 'dizzy'
- ],
- 'tags': [
- 'star'
- ]
- },
- {
- 'emoji': 'โญ๏ธ',
- 'description': 'white medium star',
- 'category': 'Nature',
- 'aliases': [
- 'star'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'glowing star',
- 'category': 'Nature',
- 'aliases': [
- 'star2'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โจ',
- 'description': 'sparkles',
- 'category': 'Nature',
- 'aliases': [
- 'sparkles'
- ],
- 'tags': [
- 'shiny'
- ]
- },
- {
- 'emoji': 'โก๏ธ',
- 'description': 'high voltage',
- 'category': 'Nature',
- 'aliases': [
- 'zap'
- ],
- 'tags': [
- 'lightning',
- 'thunder'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'fire',
- 'category': 'Nature',
- 'aliases': [
- 'fire'
- ],
- 'tags': [
- 'burn'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'collision',
- 'category': 'Nature',
- 'aliases': [
- 'boom',
- 'collision'
- ],
- 'tags': [
- 'explode'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'comet',
- 'category': 'Nature',
- 'aliases': [
- 'comet'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'sun',
- 'category': 'Nature',
- 'aliases': [
- 'sunny'
- ],
- 'tags': [
- 'weather'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'sun behind small cloud',
- 'category': 'Nature',
- 'aliases': [
- 'sun_behind_small_cloud'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ
๏ธ',
- 'description': 'sun behind cloud',
- 'category': 'Nature',
- 'aliases': [
- 'partly_sunny'
- ],
- 'tags': [
- 'weather',
- 'cloud'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'sun behind large cloud',
- 'category': 'Nature',
- 'aliases': [
- 'sun_behind_large_cloud'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'sun behind rain cloud',
- 'category': 'Nature',
- 'aliases': [
- 'sun_behind_rain_cloud'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rainbow',
- 'category': 'Nature',
- 'aliases': [
- 'rainbow'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'cloud',
- 'category': 'Nature',
- 'aliases': [
- 'cloud'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'cloud with rain',
- 'category': 'Nature',
- 'aliases': [
- 'cloud_with_rain'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'cloud with lightning and rain',
- 'category': 'Nature',
- 'aliases': [
- 'cloud_with_lightning_and_rain'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'cloud with lightning',
- 'category': 'Nature',
- 'aliases': [
- 'cloud_with_lightning'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'cloud with snow',
- 'category': 'Nature',
- 'aliases': [
- 'cloud_with_snow'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'snowman',
- 'category': 'Nature',
- 'aliases': [
- 'snowman_with_snow'
- ],
- 'tags': [
- 'winter',
- 'christmas'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'snowman without snow',
- 'category': 'Nature',
- 'aliases': [
- 'snowman'
- ],
- 'tags': [
- 'winter'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'snowflake',
- 'category': 'Nature',
- 'aliases': [
- 'snowflake'
- ],
- 'tags': [
- 'winter',
- 'cold',
- 'weather'
- ]
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'wind face',
- 'category': 'Nature',
- 'aliases': [
- 'wind_face'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'dashing away',
- 'category': 'Nature',
- 'aliases': [
- 'dash'
- ],
- 'tags': [
- 'wind',
- 'blow',
- 'fast'
- ]
- },
- {
- 'emoji': '๐ช',
- 'description': 'tornado',
- 'category': 'Nature',
- 'aliases': [
- 'tornado'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'fog',
- 'category': 'Nature',
- 'aliases': [
- 'fog'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'water wave',
- 'category': 'Nature',
- 'aliases': [
- 'ocean'
- ],
- 'tags': [
- 'sea'
- ]
- },
- {
- 'emoji': '๐ง',
- 'description': 'droplet',
- 'category': 'Nature',
- 'aliases': [
- 'droplet'
- ],
- 'tags': [
- 'water'
- ]
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'sweat droplets',
- 'category': 'Nature',
- 'aliases': [
- 'sweat_drops'
- ],
- 'tags': [
- 'water',
- 'workout'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'umbrella with rain drops',
- 'category': 'Nature',
- 'aliases': [
- 'umbrella'
- ],
- 'tags': [
- 'rain',
- 'weather'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'green apple',
- 'category': 'Foods',
- 'aliases': [
- 'green_apple'
- ],
- 'tags': [
- 'fruit'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'red apple',
- 'category': 'Foods',
- 'aliases': [
- 'apple'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pear',
- 'category': 'Foods',
- 'aliases': [
- 'pear'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tangerine',
- 'category': 'Foods',
- 'aliases': [
- 'tangerine',
- 'orange',
- 'mandarin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'lemon',
- 'category': 'Foods',
- 'aliases': [
- 'lemon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'banana',
- 'category': 'Foods',
- 'aliases': [
- 'banana'
- ],
- 'tags': [
- 'fruit'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'watermelon',
- 'category': 'Foods',
- 'aliases': [
- 'watermelon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'grapes',
- 'category': 'Foods',
- 'aliases': [
- 'grapes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'strawberry',
- 'category': 'Foods',
- 'aliases': [
- 'strawberry'
- ],
- 'tags': [
- 'fruit'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'melon',
- 'category': 'Foods',
- 'aliases': [
- 'melon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cherries',
- 'category': 'Foods',
- 'aliases': [
- 'cherries'
- ],
- 'tags': [
- 'fruit'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'peach',
- 'category': 'Foods',
- 'aliases': [
- 'peach'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pineapple',
- 'category': 'Foods',
- 'aliases': [
- 'pineapple'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'kiwi fruit',
- 'category': 'Foods',
- 'aliases': [
- 'kiwi_fruit'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'avocado',
- 'category': 'Foods',
- 'aliases': [
- 'avocado'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
',
- 'description': 'tomato',
- 'category': 'Foods',
- 'aliases': [
- 'tomato'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'eggplant',
- 'category': 'Foods',
- 'aliases': [
- 'eggplant'
- ],
- 'tags': [
- 'aubergine'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'cucumber',
- 'category': 'Foods',
- 'aliases': [
- 'cucumber'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'carrot',
- 'category': 'Foods',
- 'aliases': [
- 'carrot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'ear of corn',
- 'category': 'Foods',
- 'aliases': [
- 'corn'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'hot pepper',
- 'category': 'Foods',
- 'aliases': [
- 'hot_pepper'
- ],
- 'tags': [
- 'spicy'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'potato',
- 'category': 'Foods',
- 'aliases': [
- 'potato'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'roasted sweet potato',
- 'category': 'Foods',
- 'aliases': [
- 'sweet_potato'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'chestnut',
- 'category': 'Foods',
- 'aliases': [
- 'chestnut'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'peanuts',
- 'category': 'Foods',
- 'aliases': [
- 'peanuts'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'honey pot',
- 'category': 'Foods',
- 'aliases': [
- 'honey_pot'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'croissant',
- 'category': 'Foods',
- 'aliases': [
- 'croissant'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bread',
- 'category': 'Foods',
- 'aliases': [
- 'bread'
- ],
- 'tags': [
- 'toast'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'baguette bread',
- 'category': 'Foods',
- 'aliases': [
- 'baguette_bread'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'cheese wedge',
- 'category': 'Foods',
- 'aliases': [
- 'cheese'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'egg',
- 'category': 'Foods',
- 'aliases': [
- 'egg'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'cooking',
- 'category': 'Foods',
- 'aliases': [
- 'fried_egg'
- ],
- 'tags': [
- 'breakfast'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'bacon',
- 'category': 'Foods',
- 'aliases': [
- 'bacon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'pancakes',
- 'category': 'Foods',
- 'aliases': [
- 'pancakes'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'fried shrimp',
- 'category': 'Foods',
- 'aliases': [
- 'fried_shrimp'
- ],
- 'tags': [
- 'tempura'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'poultry leg',
- 'category': 'Foods',
- 'aliases': [
- 'poultry_leg'
- ],
- 'tags': [
- 'meat',
- 'chicken'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'meat on bone',
- 'category': 'Foods',
- 'aliases': [
- 'meat_on_bone'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pizza',
- 'category': 'Foods',
- 'aliases': [
- 'pizza'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'hot dog',
- 'category': 'Foods',
- 'aliases': [
- 'hotdog'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'hamburger',
- 'category': 'Foods',
- 'aliases': [
- 'hamburger'
- ],
- 'tags': [
- 'burger'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'french fries',
- 'category': 'Foods',
- 'aliases': [
- 'fries'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'stuffed flatbread',
- 'category': 'Foods',
- 'aliases': [
- 'stuffed_flatbread'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'taco',
- 'category': 'Foods',
- 'aliases': [
- 'taco'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'burrito',
- 'category': 'Foods',
- 'aliases': [
- 'burrito'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'green salad',
- 'category': 'Foods',
- 'aliases': [
- 'green_salad'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'shallow pan of food',
- 'category': 'Foods',
- 'aliases': [
- 'shallow_pan_of_food'
- ],
- 'tags': [
- 'paella',
- 'curry'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'spaghetti',
- 'category': 'Foods',
- 'aliases': [
- 'spaghetti'
- ],
- 'tags': [
- 'pasta'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'steaming bowl',
- 'category': 'Foods',
- 'aliases': [
- 'ramen'
- ],
- 'tags': [
- 'noodle'
- ]
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'pot of food',
- 'category': 'Foods',
- 'aliases': [
- 'stew'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'fish cake with swirl',
- 'category': 'Foods',
- 'aliases': [
- 'fish_cake'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'sushi',
- 'category': 'Foods',
- 'aliases': [
- 'sushi'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'bento box',
- 'category': 'Foods',
- 'aliases': [
- 'bento'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'curry rice',
- 'category': 'Foods',
- 'aliases': [
- 'curry'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cooked rice',
- 'category': 'Foods',
- 'aliases': [
- 'rice'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rice ball',
- 'category': 'Foods',
- 'aliases': [
- 'rice_ball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rice cracker',
- 'category': 'Foods',
- 'aliases': [
- 'rice_cracker'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'oden',
- 'category': 'Foods',
- 'aliases': [
- 'oden'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'dango',
- 'category': 'Foods',
- 'aliases': [
- 'dango'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'shaved ice',
- 'category': 'Foods',
- 'aliases': [
- 'shaved_ice'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'ice cream',
- 'category': 'Foods',
- 'aliases': [
- 'ice_cream'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'soft ice cream',
- 'category': 'Foods',
- 'aliases': [
- 'icecream'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'shortcake',
- 'category': 'Foods',
- 'aliases': [
- 'cake'
- ],
- 'tags': [
- 'dessert'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'birthday cake',
- 'category': 'Foods',
- 'aliases': [
- 'birthday'
- ],
- 'tags': [
- 'party'
- ]
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'custard',
- 'category': 'Foods',
- 'aliases': [
- 'custard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'lollipop',
- 'category': 'Foods',
- 'aliases': [
- 'lollipop'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'candy',
- 'category': 'Foods',
- 'aliases': [
- 'candy'
- ],
- 'tags': [
- 'sweet'
- ]
- },
- {
- 'emoji': '๐ซ',
- 'description': 'chocolate bar',
- 'category': 'Foods',
- 'aliases': [
- 'chocolate_bar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'popcorn',
- 'category': 'Foods',
- 'aliases': [
- 'popcorn'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'doughnut',
- 'category': 'Foods',
- 'aliases': [
- 'doughnut'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'cookie',
- 'category': 'Foods',
- 'aliases': [
- 'cookie'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'glass of milk',
- 'category': 'Foods',
- 'aliases': [
- 'milk_glass'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'baby bottle',
- 'category': 'Foods',
- 'aliases': [
- 'baby_bottle'
- ],
- 'tags': [
- 'milk'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'hot beverage',
- 'category': 'Foods',
- 'aliases': [
- 'coffee'
- ],
- 'tags': [
- 'cafe',
- 'espresso'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'teacup without handle',
- 'category': 'Foods',
- 'aliases': [
- 'tea'
- ],
- 'tags': [
- 'green',
- 'breakfast'
- ]
- },
- {
- 'emoji': '๐ถ',
- 'description': 'sake',
- 'category': 'Foods',
- 'aliases': [
- 'sake'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'beer mug',
- 'category': 'Foods',
- 'aliases': [
- 'beer'
- ],
- 'tags': [
- 'drink'
- ]
- },
- {
- 'emoji': '๐ป',
- 'description': 'clinking beer mugs',
- 'category': 'Foods',
- 'aliases': [
- 'beers'
- ],
- 'tags': [
- 'drinks'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'clinking glasses',
- 'category': 'Foods',
- 'aliases': [
- 'clinking_glasses'
- ],
- 'tags': [
- 'cheers',
- 'toast'
- ]
- },
- {
- 'emoji': '๐ท',
- 'description': 'wine glass',
- 'category': 'Foods',
- 'aliases': [
- 'wine_glass'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'tumbler glass',
- 'category': 'Foods',
- 'aliases': [
- 'tumbler_glass'
- ],
- 'tags': [
- 'whisky'
- ]
- },
- {
- 'emoji': '๐ธ',
- 'description': 'cocktail glass',
- 'category': 'Foods',
- 'aliases': [
- 'cocktail'
- ],
- 'tags': [
- 'drink'
- ]
- },
- {
- 'emoji': '๐น',
- 'description': 'tropical drink',
- 'category': 'Foods',
- 'aliases': [
- 'tropical_drink'
- ],
- 'tags': [
- 'summer',
- 'vacation'
- ]
- },
- {
- 'emoji': '๐พ',
- 'description': 'bottle with popping cork',
- 'category': 'Foods',
- 'aliases': [
- 'champagne'
- ],
- 'tags': [
- 'bottle',
- 'bubbly',
- 'celebration'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'spoon',
- 'category': 'Foods',
- 'aliases': [
- 'spoon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'fork and knife',
- 'category': 'Foods',
- 'aliases': [
- 'fork_and_knife'
- ],
- 'tags': [
- 'cutlery'
- ]
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'fork and knife with plate',
- 'category': 'Foods',
- 'aliases': [
- 'plate_with_cutlery'
- ],
- 'tags': [
- 'dining',
- 'dinner'
- ]
- },
- {
- 'emoji': 'โฝ๏ธ',
- 'description': 'soccer ball',
- 'category': 'Activity',
- 'aliases': [
- 'soccer'
- ],
- 'tags': [
- 'sports'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'basketball',
- 'category': 'Activity',
- 'aliases': [
- 'basketball'
- ],
- 'tags': [
- 'sports'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'american football',
- 'category': 'Activity',
- 'aliases': [
- 'football'
- ],
- 'tags': [
- 'sports'
- ]
- },
- {
- 'emoji': 'โพ๏ธ',
- 'description': 'baseball',
- 'category': 'Activity',
- 'aliases': [
- 'baseball'
- ],
- 'tags': [
- 'sports'
- ]
- },
- {
- 'emoji': '๐พ',
- 'description': 'tennis',
- 'category': 'Activity',
- 'aliases': [
- 'tennis'
- ],
- 'tags': [
- 'sports'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'volleyball',
- 'category': 'Activity',
- 'aliases': [
- 'volleyball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rugby football',
- 'category': 'Activity',
- 'aliases': [
- 'rugby_football'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'pool 8 ball',
- 'category': 'Activity',
- 'aliases': [
- '8ball'
- ],
- 'tags': [
- 'pool',
- 'billiards'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'ping pong',
- 'category': 'Activity',
- 'aliases': [
- 'ping_pong'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'badminton',
- 'category': 'Activity',
- 'aliases': [
- 'badminton'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ
',
- 'description': 'goal net',
- 'category': 'Activity',
- 'aliases': [
- 'goal_net'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ice hockey',
- 'category': 'Activity',
- 'aliases': [
- 'ice_hockey'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'field hockey',
- 'category': 'Activity',
- 'aliases': [
- 'field_hockey'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cricket',
- 'category': 'Activity',
- 'aliases': [
- 'cricket'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โณ๏ธ',
- 'description': 'flag in hole',
- 'category': 'Activity',
- 'aliases': [
- 'golf'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'bow and arrow',
- 'category': 'Activity',
- 'aliases': [
- 'bow_and_arrow'
- ],
- 'tags': [
- 'archery'
- ]
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'fishing pole',
- 'category': 'Activity',
- 'aliases': [
- 'fishing_pole_and_fish'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'boxing glove',
- 'category': 'Activity',
- 'aliases': [
- 'boxing_glove'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'martial arts uniform',
- 'category': 'Activity',
- 'aliases': [
- 'martial_arts_uniform'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โธ',
- 'description': 'ice skate',
- 'category': 'Activity',
- 'aliases': [
- 'ice_skate'
- ],
- 'tags': [
- 'skating'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'skis',
- 'category': 'Activity',
- 'aliases': [
- 'ski'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โท',
- 'description': 'skier',
- 'category': 'Activity',
- 'aliases': [
- 'skier'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'snowboarder',
- 'category': 'Activity',
- 'aliases': [
- 'snowboarder'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐๏ธโโ๏ธ',
- 'description': 'woman lifting weights',
- 'category': 'Activity',
- 'aliases': [
- 'weight_lifting_woman'
- ],
- 'tags': [
- 'gym',
- 'workout'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'person lifting weights',
- 'category': 'Activity',
- 'aliases': [
- 'weight_lifting_man'
- ],
- 'tags': [
- 'gym',
- 'workout'
- ]
- },
- {
- 'emoji': '๐คบ',
- 'description': 'person fencing',
- 'category': 'Activity',
- 'aliases': [
- 'person_fencing'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คผโโ',
- 'description': 'women wrestling',
- 'category': 'Activity',
- 'aliases': [
- 'women_wrestling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คผโโ',
- 'description': 'men wrestling',
- 'category': 'Activity',
- 'aliases': [
- 'men_wrestling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คธโโ',
- 'description': 'woman cartwheeling',
- 'category': 'Activity',
- 'aliases': [
- 'woman_cartwheeling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คธโโ',
- 'description': 'man cartwheeling',
- 'category': 'Activity',
- 'aliases': [
- 'man_cartwheeling'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โน๏ธโโ๏ธ',
- 'description': 'woman bouncing ball',
- 'category': 'Activity',
- 'aliases': [
- 'basketball_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โน',
- 'description': 'person bouncing ball',
- 'category': 'Activity',
- 'aliases': [
- 'basketball_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คพโโ',
- 'description': 'woman playing handball',
- 'category': 'Activity',
- 'aliases': [
- 'woman_playing_handball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คพโโ',
- 'description': 'man playing handball',
- 'category': 'Activity',
- 'aliases': [
- 'man_playing_handball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐๏ธโโ๏ธ',
- 'description': 'woman golfing',
- 'category': 'Activity',
- 'aliases': [
- 'golfing_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person golfing',
- 'category': 'Activity',
- 'aliases': [
- 'golfing_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'woman surfing',
- 'category': 'Activity',
- 'aliases': [
- 'surfing_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person surfing',
- 'category': 'Activity',
- 'aliases': [
- 'surfing_man',
- 'surfer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐โโ',
- 'description': 'woman swimming',
- 'category': 'Activity',
- 'aliases': [
- 'swimming_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person swimming',
- 'category': 'Activity',
- 'aliases': [
- 'swimming_man',
- 'swimmer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฝโโ',
- 'description': 'woman playing water polo',
- 'category': 'Activity',
- 'aliases': [
- 'woman_playing_water_polo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คฝโโ',
- 'description': 'man playing water polo',
- 'category': 'Activity',
- 'aliases': [
- 'man_playing_water_polo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃโโ',
- 'description': 'woman rowing boat',
- 'category': 'Activity',
- 'aliases': [
- 'rowing_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'person rowing boat',
- 'category': 'Activity',
- 'aliases': [
- 'rowing_man',
- 'rowboat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'horse racing',
- 'category': 'Activity',
- 'aliases': [
- 'horse_racing'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ดโโ',
- 'description': 'woman biking',
- 'category': 'Activity',
- 'aliases': [
- 'biking_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'person biking',
- 'category': 'Activity',
- 'aliases': [
- 'biking_man',
- 'bicyclist'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ตโโ',
- 'description': 'woman mountain biking',
- 'category': 'Activity',
- 'aliases': [
- 'mountain_biking_woman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'person mountain biking',
- 'category': 'Activity',
- 'aliases': [
- 'mountain_biking_man',
- 'mountain_bicyclist'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'running shirt',
- 'category': 'Activity',
- 'aliases': [
- 'running_shirt_with_sash'
- ],
- 'tags': [
- 'marathon'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'sports medal',
- 'category': 'Activity',
- 'aliases': [
- 'medal_sports'
- ],
- 'tags': [
- 'gold',
- 'winner'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'military medal',
- 'category': 'Activity',
- 'aliases': [
- 'medal_military'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': '1st place medal',
- 'category': 'Activity',
- 'aliases': [
- '1st_place_medal'
- ],
- 'tags': [
- 'gold'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': '2nd place medal',
- 'category': 'Activity',
- 'aliases': [
- '2nd_place_medal'
- ],
- 'tags': [
- 'silver'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': '3rd place medal',
- 'category': 'Activity',
- 'aliases': [
- '3rd_place_medal'
- ],
- 'tags': [
- 'bronze'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'trophy',
- 'category': 'Activity',
- 'aliases': [
- 'trophy'
- ],
- 'tags': [
- 'award',
- 'contest',
- 'winner'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'rosette',
- 'category': 'Activity',
- 'aliases': [
- 'rosette'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'reminder ribbon',
- 'category': 'Activity',
- 'aliases': [
- 'reminder_ribbon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'ticket',
- 'category': 'Activity',
- 'aliases': [
- 'ticket'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'admission tickets',
- 'category': 'Activity',
- 'aliases': [
- 'tickets'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'circus tent',
- 'category': 'Activity',
- 'aliases': [
- 'circus_tent'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คนโโ',
- 'description': 'woman juggling',
- 'category': 'Activity',
- 'aliases': [
- 'woman_juggling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐คนโโ',
- 'description': 'man juggling',
- 'category': 'Activity',
- 'aliases': [
- 'man_juggling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'performing arts',
- 'category': 'Activity',
- 'aliases': [
- 'performing_arts'
- ],
- 'tags': [
- 'theater',
- 'drama'
- ]
- },
- {
- 'emoji': '๐จ',
- 'description': 'artist palette',
- 'category': 'Activity',
- 'aliases': [
- 'art'
- ],
- 'tags': [
- 'design',
- 'paint'
- ]
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'clapper board',
- 'category': 'Activity',
- 'aliases': [
- 'clapper'
- ],
- 'tags': [
- 'film'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'microphone',
- 'category': 'Activity',
- 'aliases': [
- 'microphone'
- ],
- 'tags': [
- 'sing'
- ]
- },
- {
- 'emoji': '๐ง',
- 'description': 'headphone',
- 'category': 'Activity',
- 'aliases': [
- 'headphones'
- ],
- 'tags': [
- 'music',
- 'earphones'
- ]
- },
- {
- 'emoji': '๐ผ',
- 'description': 'musical score',
- 'category': 'Activity',
- 'aliases': [
- 'musical_score'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'musical keyboard',
- 'category': 'Activity',
- 'aliases': [
- 'musical_keyboard'
- ],
- 'tags': [
- 'piano'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'drum',
- 'category': 'Activity',
- 'aliases': [
- 'drum'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'saxophone',
- 'category': 'Activity',
- 'aliases': [
- 'saxophone'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'trumpet',
- 'category': 'Activity',
- 'aliases': [
- 'trumpet'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'guitar',
- 'category': 'Activity',
- 'aliases': [
- 'guitar'
- ],
- 'tags': [
- 'rock'
- ]
- },
- {
- 'emoji': '๐ป',
- 'description': 'violin',
- 'category': 'Activity',
- 'aliases': [
- 'violin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'game die',
- 'category': 'Activity',
- 'aliases': [
- 'game_die'
- ],
- 'tags': [
- 'dice',
- 'gambling'
- ]
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'direct hit',
- 'category': 'Activity',
- 'aliases': [
- 'dart'
- ],
- 'tags': [
- 'target'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'bowling',
- 'category': 'Activity',
- 'aliases': [
- 'bowling'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'video game',
- 'category': 'Activity',
- 'aliases': [
- 'video_game'
- ],
- 'tags': [
- 'play',
- 'controller',
- 'console'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'slot machine',
- 'category': 'Activity',
- 'aliases': [
- 'slot_machine'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'automobile',
- 'category': 'Places',
- 'aliases': [
- 'car',
- 'red_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'taxi',
- 'category': 'Places',
- 'aliases': [
- 'taxi'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sport utility vehicle',
- 'category': 'Places',
- 'aliases': [
- 'blue_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bus',
- 'category': 'Places',
- 'aliases': [
- 'bus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'trolleybus',
- 'category': 'Places',
- 'aliases': [
- 'trolleybus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'racing car',
- 'category': 'Places',
- 'aliases': [
- 'racing_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'police car',
- 'category': 'Places',
- 'aliases': [
- 'police_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ambulance',
- 'category': 'Places',
- 'aliases': [
- 'ambulance'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'fire engine',
- 'category': 'Places',
- 'aliases': [
- 'fire_engine'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'minibus',
- 'category': 'Places',
- 'aliases': [
- 'minibus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'delivery truck',
- 'category': 'Places',
- 'aliases': [
- 'truck'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'articulated lorry',
- 'category': 'Places',
- 'aliases': [
- 'articulated_lorry'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tractor',
- 'category': 'Places',
- 'aliases': [
- 'tractor'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'kick scooter',
- 'category': 'Places',
- 'aliases': [
- 'kick_scooter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'bicycle',
- 'category': 'Places',
- 'aliases': [
- 'bike'
- ],
- 'tags': [
- 'bicycle'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'motor scooter',
- 'category': 'Places',
- 'aliases': [
- 'motor_scooter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'motorcycle',
- 'category': 'Places',
- 'aliases': [
- 'motorcycle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'police car light',
- 'category': 'Places',
- 'aliases': [
- 'rotating_light'
- ],
- 'tags': [
- '911',
- 'emergency'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'oncoming police car',
- 'category': 'Places',
- 'aliases': [
- 'oncoming_police_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'oncoming bus',
- 'category': 'Places',
- 'aliases': [
- 'oncoming_bus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'oncoming automobile',
- 'category': 'Places',
- 'aliases': [
- 'oncoming_automobile'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'oncoming taxi',
- 'category': 'Places',
- 'aliases': [
- 'oncoming_taxi'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'aerial tramway',
- 'category': 'Places',
- 'aliases': [
- 'aerial_tramway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'mountain cableway',
- 'category': 'Places',
- 'aliases': [
- 'mountain_cableway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'suspension railway',
- 'category': 'Places',
- 'aliases': [
- 'suspension_railway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'railway car',
- 'category': 'Places',
- 'aliases': [
- 'railway_car'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tram car',
- 'category': 'Places',
- 'aliases': [
- 'train'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'mountain railway',
- 'category': 'Places',
- 'aliases': [
- 'mountain_railway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'monorail',
- 'category': 'Places',
- 'aliases': [
- 'monorail'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'high-speed train',
- 'category': 'Places',
- 'aliases': [
- 'bullettrain_side'
- ],
- 'tags': [
- 'train'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'high-speed train with bullet nose',
- 'category': 'Places',
- 'aliases': [
- 'bullettrain_front'
- ],
- 'tags': [
- 'train'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'light rail',
- 'category': 'Places',
- 'aliases': [
- 'light_rail'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'locomotive',
- 'category': 'Places',
- 'aliases': [
- 'steam_locomotive'
- ],
- 'tags': [
- 'train'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'train',
- 'category': 'Places',
- 'aliases': [
- 'train2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'metro',
- 'category': 'Places',
- 'aliases': [
- 'metro'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tram',
- 'category': 'Places',
- 'aliases': [
- 'tram'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'station',
- 'category': 'Places',
- 'aliases': [
- 'station'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'helicopter',
- 'category': 'Places',
- 'aliases': [
- 'helicopter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'small airplane',
- 'category': 'Places',
- 'aliases': [
- 'small_airplane'
- ],
- 'tags': [
- 'flight'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'airplane',
- 'category': 'Places',
- 'aliases': [
- 'airplane'
- ],
- 'tags': [
- 'flight'
- ]
- },
- {
- 'emoji': '๐ซ',
- 'description': 'airplane departure',
- 'category': 'Places',
- 'aliases': [
- 'flight_departure'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'airplane arrival',
- 'category': 'Places',
- 'aliases': [
- 'flight_arrival'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rocket',
- 'category': 'Places',
- 'aliases': [
- 'rocket'
- ],
- 'tags': [
- 'ship',
- 'launch'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'satellite',
- 'category': 'Places',
- 'aliases': [
- 'artificial_satellite'
- ],
- 'tags': [
- 'orbit',
- 'space'
- ]
- },
- {
- 'emoji': '๐บ',
- 'description': 'seat',
- 'category': 'Places',
- 'aliases': [
- 'seat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'canoe',
- 'category': 'Places',
- 'aliases': [
- 'canoe'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โต๏ธ',
- 'description': 'sailboat',
- 'category': 'Places',
- 'aliases': [
- 'boat',
- 'sailboat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'motor boat',
- 'category': 'Places',
- 'aliases': [
- 'motor_boat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'speedboat',
- 'category': 'Places',
- 'aliases': [
- 'speedboat'
- ],
- 'tags': [
- 'ship'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'passenger ship',
- 'category': 'Places',
- 'aliases': [
- 'passenger_ship'
- ],
- 'tags': [
- 'cruise'
- ]
- },
- {
- 'emoji': 'โด',
- 'description': 'ferry',
- 'category': 'Places',
- 'aliases': [
- 'ferry'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'ship',
- 'category': 'Places',
- 'aliases': [
- 'ship'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'anchor',
- 'category': 'Places',
- 'aliases': [
- 'anchor'
- ],
- 'tags': [
- 'ship'
- ]
- },
- {
- 'emoji': '๐ง',
- 'description': 'construction',
- 'category': 'Places',
- 'aliases': [
- 'construction'
- ],
- 'tags': [
- 'wip'
- ]
- },
- {
- 'emoji': 'โฝ๏ธ',
- 'description': 'fuel pump',
- 'category': 'Places',
- 'aliases': [
- 'fuelpump'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bus stop',
- 'category': 'Places',
- 'aliases': [
- 'busstop'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'vertical traffic light',
- 'category': 'Places',
- 'aliases': [
- 'vertical_traffic_light'
- ],
- 'tags': [
- 'semaphore'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'horizontal traffic light',
- 'category': 'Places',
- 'aliases': [
- 'traffic_light'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'world map',
- 'category': 'Places',
- 'aliases': [
- 'world_map'
- ],
- 'tags': [
- 'travel'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'moai',
- 'category': 'Places',
- 'aliases': [
- 'moyai'
- ],
- 'tags': [
- 'stone'
- ]
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'Statue of Liberty',
- 'category': 'Places',
- 'aliases': [
- 'statue_of_liberty'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฒ๏ธ',
- 'description': 'fountain',
- 'category': 'Places',
- 'aliases': [
- 'fountain'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'Tokyo tower',
- 'category': 'Places',
- 'aliases': [
- 'tokyo_tower'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'castle',
- 'category': 'Places',
- 'aliases': [
- 'european_castle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'Japanese castle',
- 'category': 'Places',
- 'aliases': [
- 'japanese_castle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'stadium',
- 'category': 'Places',
- 'aliases': [
- 'stadium'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'ferris wheel',
- 'category': 'Places',
- 'aliases': [
- 'ferris_wheel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'roller coaster',
- 'category': 'Places',
- 'aliases': [
- 'roller_coaster'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'carousel horse',
- 'category': 'Places',
- 'aliases': [
- 'carousel_horse'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฑ',
- 'description': 'umbrella on ground',
- 'category': 'Places',
- 'aliases': [
- 'parasol_on_ground'
- ],
- 'tags': [
- 'beach_umbrella'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'beach with umbrella',
- 'category': 'Places',
- 'aliases': [
- 'beach_umbrella'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'desert island',
- 'category': 'Places',
- 'aliases': [
- 'desert_island'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฐ',
- 'description': 'mountain',
- 'category': 'Places',
- 'aliases': [
- 'mountain'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'snow-capped mountain',
- 'category': 'Places',
- 'aliases': [
- 'mountain_snow'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'mount fuji',
- 'category': 'Places',
- 'aliases': [
- 'mount_fuji'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'volcano',
- 'category': 'Places',
- 'aliases': [
- 'volcano'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'desert',
- 'category': 'Places',
- 'aliases': [
- 'desert'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'camping',
- 'category': 'Places',
- 'aliases': [
- 'camping'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โบ๏ธ',
- 'description': 'tent',
- 'category': 'Places',
- 'aliases': [
- 'tent'
- ],
- 'tags': [
- 'camping'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'railway track',
- 'category': 'Places',
- 'aliases': [
- 'railway_track'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'motorway',
- 'category': 'Places',
- 'aliases': [
- 'motorway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'building construction',
- 'category': 'Places',
- 'aliases': [
- 'building_construction'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'factory',
- 'category': 'Places',
- 'aliases': [
- 'factory'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'house',
- 'category': 'Places',
- 'aliases': [
- 'house'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'house with garden',
- 'category': 'Places',
- 'aliases': [
- 'house_with_garden'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'house',
- 'category': 'Places',
- 'aliases': [
- 'houses'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'derelict house',
- 'category': 'Places',
- 'aliases': [
- 'derelict_house'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'office building',
- 'category': 'Places',
- 'aliases': [
- 'office'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'department store',
- 'category': 'Places',
- 'aliases': [
- 'department_store'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'Japanese post office',
- 'category': 'Places',
- 'aliases': [
- 'post_office'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'post office',
- 'category': 'Places',
- 'aliases': [
- 'european_post_office'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'hospital',
- 'category': 'Places',
- 'aliases': [
- 'hospital'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'bank',
- 'category': 'Places',
- 'aliases': [
- 'bank'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'hotel',
- 'category': 'Places',
- 'aliases': [
- 'hotel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'convenience store',
- 'category': 'Places',
- 'aliases': [
- 'convenience_store'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'school',
- 'category': 'Places',
- 'aliases': [
- 'school'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'love hotel',
- 'category': 'Places',
- 'aliases': [
- 'love_hotel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'wedding',
- 'category': 'Places',
- 'aliases': [
- 'wedding'
- ],
- 'tags': [
- 'marriage'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'classical building',
- 'category': 'Places',
- 'aliases': [
- 'classical_building'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช๏ธ',
- 'description': 'church',
- 'category': 'Places',
- 'aliases': [
- 'church'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'mosque',
- 'category': 'Places',
- 'aliases': [
- 'mosque'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'synagogue',
- 'category': 'Places',
- 'aliases': [
- 'synagogue'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'kaaba',
- 'category': 'Places',
- 'aliases': [
- 'kaaba'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฉ',
- 'description': 'shinto shrine',
- 'category': 'Places',
- 'aliases': [
- 'shinto_shrine'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ',
- 'description': 'map of Japan',
- 'category': 'Places',
- 'aliases': [
- 'japan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'moon viewing ceremony',
- 'category': 'Places',
- 'aliases': [
- 'rice_scene'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'national park',
- 'category': 'Places',
- 'aliases': [
- 'national_park'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
',
- 'description': 'sunrise',
- 'category': 'Places',
- 'aliases': [
- 'sunrise'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sunrise over mountains',
- 'category': 'Places',
- 'aliases': [
- 'sunrise_over_mountains'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'shooting star',
- 'category': 'Places',
- 'aliases': [
- 'stars'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sparkler',
- 'category': 'Places',
- 'aliases': [
- 'sparkler'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'fireworks',
- 'category': 'Places',
- 'aliases': [
- 'fireworks'
- ],
- 'tags': [
- 'festival',
- 'celebration'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'sunset',
- 'category': 'Places',
- 'aliases': [
- 'city_sunrise'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cityscape at dusk',
- 'category': 'Places',
- 'aliases': [
- 'city_sunset'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cityscape',
- 'category': 'Places',
- 'aliases': [
- 'cityscape'
- ],
- 'tags': [
- 'skyline'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'night with stars',
- 'category': 'Places',
- 'aliases': [
- 'night_with_stars'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'milky way',
- 'category': 'Places',
- 'aliases': [
- 'milky_way'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bridge at night',
- 'category': 'Places',
- 'aliases': [
- 'bridge_at_night'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'foggy',
- 'category': 'Places',
- 'aliases': [
- 'foggy'
- ],
- 'tags': [
- 'karl'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'watch',
- 'category': 'Objects',
- 'aliases': [
- 'watch'
- ],
- 'tags': [
- 'time'
- ]
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'mobile phone',
- 'category': 'Objects',
- 'aliases': [
- 'iphone'
- ],
- 'tags': [
- 'smartphone',
- 'mobile'
- ]
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'mobile phone with arrow',
- 'category': 'Objects',
- 'aliases': [
- 'calling'
- ],
- 'tags': [
- 'call',
- 'incoming'
- ]
- },
- {
- 'emoji': '๐ป',
- 'description': 'laptop computer',
- 'category': 'Objects',
- 'aliases': [
- 'computer'
- ],
- 'tags': [
- 'desktop',
- 'screen'
- ]
- },
- {
- 'emoji': 'โจ๏ธ',
- 'description': 'keyboard',
- 'category': 'Objects',
- 'aliases': [
- 'keyboard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'desktop computer',
- 'category': 'Objects',
- 'aliases': [
- 'desktop_computer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'printer',
- 'category': 'Objects',
- 'aliases': [
- 'printer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'computer mouse',
- 'category': 'Objects',
- 'aliases': [
- 'computer_mouse'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'trackball',
- 'category': 'Objects',
- 'aliases': [
- 'trackball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'joystick',
- 'category': 'Objects',
- 'aliases': [
- 'joystick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'clamp',
- 'category': 'Objects',
- 'aliases': [
- 'clamp'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'computer disk',
- 'category': 'Objects',
- 'aliases': [
- 'minidisc'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ',
- 'description': 'floppy disk',
- 'category': 'Objects',
- 'aliases': [
- 'floppy_disk'
- ],
- 'tags': [
- 'save'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'optical disk',
- 'category': 'Objects',
- 'aliases': [
- 'cd'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'dvd',
- 'category': 'Objects',
- 'aliases': [
- 'dvd'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'videocassette',
- 'category': 'Objects',
- 'aliases': [
- 'vhs'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'camera',
- 'category': 'Objects',
- 'aliases': [
- 'camera'
- ],
- 'tags': [
- 'photo'
- ]
- },
- {
- 'emoji': '๐ธ',
- 'description': 'camera with flash',
- 'category': 'Objects',
- 'aliases': [
- 'camera_flash'
- ],
- 'tags': [
- 'photo'
- ]
- },
- {
- 'emoji': '๐น',
- 'description': 'video camera',
- 'category': 'Objects',
- 'aliases': [
- 'video_camera'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'movie camera',
- 'category': 'Objects',
- 'aliases': [
- 'movie_camera'
- ],
- 'tags': [
- 'film',
- 'video'
- ]
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'film projector',
- 'category': 'Objects',
- 'aliases': [
- 'film_projector'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'film frames',
- 'category': 'Objects',
- 'aliases': [
- 'film_strip'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'telephone receiver',
- 'category': 'Objects',
- 'aliases': [
- 'telephone_receiver'
- ],
- 'tags': [
- 'phone',
- 'call'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'telephone',
- 'category': 'Objects',
- 'aliases': [
- 'phone',
- 'telephone'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pager',
- 'category': 'Objects',
- 'aliases': [
- 'pager'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'fax machine',
- 'category': 'Objects',
- 'aliases': [
- 'fax'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'television',
- 'category': 'Objects',
- 'aliases': [
- 'tv'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'radio',
- 'category': 'Objects',
- 'aliases': [
- 'radio'
- ],
- 'tags': [
- 'podcast'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'studio microphone',
- 'category': 'Objects',
- 'aliases': [
- 'studio_microphone'
- ],
- 'tags': [
- 'podcast'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'level slider',
- 'category': 'Objects',
- 'aliases': [
- 'level_slider'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'control knobs',
- 'category': 'Objects',
- 'aliases': [
- 'control_knobs'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฑ',
- 'description': 'stopwatch',
- 'category': 'Objects',
- 'aliases': [
- 'stopwatch'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฒ',
- 'description': 'timer clock',
- 'category': 'Objects',
- 'aliases': [
- 'timer_clock'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฐ',
- 'description': 'alarm clock',
- 'category': 'Objects',
- 'aliases': [
- 'alarm_clock'
- ],
- 'tags': [
- 'morning'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'mantelpiece clock',
- 'category': 'Objects',
- 'aliases': [
- 'mantelpiece_clock'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'hourglass',
- 'category': 'Objects',
- 'aliases': [
- 'hourglass'
- ],
- 'tags': [
- 'time'
- ]
- },
- {
- 'emoji': 'โณ',
- 'description': 'hourglass with flowing sand',
- 'category': 'Objects',
- 'aliases': [
- 'hourglass_flowing_sand'
- ],
- 'tags': [
- 'time'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'satellite antenna',
- 'category': 'Objects',
- 'aliases': [
- 'satellite'
- ],
- 'tags': [
- 'signal'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'battery',
- 'category': 'Objects',
- 'aliases': [
- 'battery'
- ],
- 'tags': [
- 'power'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'electric plug',
- 'category': 'Objects',
- 'aliases': [
- 'electric_plug'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'light bulb',
- 'category': 'Objects',
- 'aliases': [
- 'bulb'
- ],
- 'tags': [
- 'idea',
- 'light'
- ]
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'flashlight',
- 'category': 'Objects',
- 'aliases': [
- 'flashlight'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'candle',
- 'category': 'Objects',
- 'aliases': [
- 'candle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'wastebasket',
- 'category': 'Objects',
- 'aliases': [
- 'wastebasket'
- ],
- 'tags': [
- 'trash'
- ]
- },
- {
- 'emoji': '๐ข',
- 'description': 'oil drum',
- 'category': 'Objects',
- 'aliases': [
- 'oil_drum'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'money with wings',
- 'category': 'Objects',
- 'aliases': [
- 'money_with_wings'
- ],
- 'tags': [
- 'dollar'
- ]
- },
- {
- 'emoji': '๐ต',
- 'description': 'dollar banknote',
- 'category': 'Objects',
- 'aliases': [
- 'dollar'
- ],
- 'tags': [
- 'money'
- ]
- },
- {
- 'emoji': '๐ด',
- 'description': 'yen banknote',
- 'category': 'Objects',
- 'aliases': [
- 'yen'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'euro banknote',
- 'category': 'Objects',
- 'aliases': [
- 'euro'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'pound banknote',
- 'category': 'Objects',
- 'aliases': [
- 'pound'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'money bag',
- 'category': 'Objects',
- 'aliases': [
- 'moneybag'
- ],
- 'tags': [
- 'dollar',
- 'cream'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'credit card',
- 'category': 'Objects',
- 'aliases': [
- 'credit_card'
- ],
- 'tags': [
- 'subscription'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'gem stone',
- 'category': 'Objects',
- 'aliases': [
- 'gem'
- ],
- 'tags': [
- 'diamond'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'balance scale',
- 'category': 'Objects',
- 'aliases': [
- 'balance_scale'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'wrench',
- 'category': 'Objects',
- 'aliases': [
- 'wrench'
- ],
- 'tags': [
- 'tool'
- ]
- },
- {
- 'emoji': '๐จ',
- 'description': 'hammer',
- 'category': 'Objects',
- 'aliases': [
- 'hammer'
- ],
- 'tags': [
- 'tool'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'hammer and pick',
- 'category': 'Objects',
- 'aliases': [
- 'hammer_and_pick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'hammer and wrench',
- 'category': 'Objects',
- 'aliases': [
- 'hammer_and_wrench'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'pick',
- 'category': 'Objects',
- 'aliases': [
- 'pick'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'nut and bolt',
- 'category': 'Objects',
- 'aliases': [
- 'nut_and_bolt'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'gear',
- 'category': 'Objects',
- 'aliases': [
- 'gear'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'chains',
- 'category': 'Objects',
- 'aliases': [
- 'chains'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'pistol',
- 'category': 'Objects',
- 'aliases': [
- 'gun'
- ],
- 'tags': [
- 'shoot',
- 'weapon'
- ]
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'bomb',
- 'category': 'Objects',
- 'aliases': [
- 'bomb'
- ],
- 'tags': [
- 'boom'
- ]
- },
- {
- 'emoji': '๐ช',
- 'description': 'kitchen knife',
- 'category': 'Objects',
- 'aliases': [
- 'hocho',
- 'knife'
- ],
- 'tags': [
- 'cut',
- 'chop'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'dagger',
- 'category': 'Objects',
- 'aliases': [
- 'dagger'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'crossed swords',
- 'category': 'Objects',
- 'aliases': [
- 'crossed_swords'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'shield',
- 'category': 'Objects',
- 'aliases': [
- 'shield'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'cigarette',
- 'category': 'Objects',
- 'aliases': [
- 'smoking'
- ],
- 'tags': [
- 'cigarette'
- ]
- },
- {
- 'emoji': 'โฐ๏ธ',
- 'description': 'coffin',
- 'category': 'Objects',
- 'aliases': [
- 'coffin'
- ],
- 'tags': [
- 'funeral'
- ]
- },
- {
- 'emoji': 'โฑ๏ธ',
- 'description': 'funeral urn',
- 'category': 'Objects',
- 'aliases': [
- 'funeral_urn'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'amphora',
- 'category': 'Objects',
- 'aliases': [
- 'amphora'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'crystal ball',
- 'category': 'Objects',
- 'aliases': [
- 'crystal_ball'
- ],
- 'tags': [
- 'fortune'
- ]
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'prayer beads',
- 'category': 'Objects',
- 'aliases': [
- 'prayer_beads'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'barber pole',
- 'category': 'Objects',
- 'aliases': [
- 'barber'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'alembic',
- 'category': 'Objects',
- 'aliases': [
- 'alembic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'telescope',
- 'category': 'Objects',
- 'aliases': [
- 'telescope'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'microscope',
- 'category': 'Objects',
- 'aliases': [
- 'microscope'
- ],
- 'tags': [
- 'science',
- 'laboratory',
- 'investigate'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'hole',
- 'category': 'Objects',
- 'aliases': [
- 'hole'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pill',
- 'category': 'Objects',
- 'aliases': [
- 'pill'
- ],
- 'tags': [
- 'health',
- 'medicine'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'syringe',
- 'category': 'Objects',
- 'aliases': [
- 'syringe'
- ],
- 'tags': [
- 'health',
- 'hospital',
- 'needle'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'thermometer',
- 'category': 'Objects',
- 'aliases': [
- 'thermometer'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'toilet',
- 'category': 'Objects',
- 'aliases': [
- 'toilet'
- ],
- 'tags': [
- 'wc'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'potable water',
- 'category': 'Objects',
- 'aliases': [
- 'potable_water'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ',
- 'description': 'shower',
- 'category': 'Objects',
- 'aliases': [
- 'shower'
- ],
- 'tags': [
- 'bath'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'bathtub',
- 'category': 'Objects',
- 'aliases': [
- 'bathtub'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person taking bath',
- 'category': 'Objects',
- 'aliases': [
- 'bath'
- ],
- 'tags': [
- 'shower'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'bellhop bell',
- 'category': 'Objects',
- 'aliases': [
- 'bellhop_bell'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'key',
- 'category': 'Objects',
- 'aliases': [
- 'key'
- ],
- 'tags': [
- 'lock',
- 'password'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'old key',
- 'category': 'Objects',
- 'aliases': [
- 'old_key'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช',
- 'description': 'door',
- 'category': 'Objects',
- 'aliases': [
- 'door'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'couch and lamp',
- 'category': 'Objects',
- 'aliases': [
- 'couch_and_lamp'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bed',
- 'category': 'Objects',
- 'aliases': [
- 'bed'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'person in bed',
- 'category': 'Objects',
- 'aliases': [
- 'sleeping_bed'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'framed picture',
- 'category': 'Objects',
- 'aliases': [
- 'framed_picture'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'shopping bags',
- 'category': 'Objects',
- 'aliases': [
- 'shopping'
- ],
- 'tags': [
- 'bags'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'shopping cart',
- 'category': 'Objects',
- 'aliases': [
- 'shopping_cart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'wrapped gift',
- 'category': 'Objects',
- 'aliases': [
- 'gift'
- ],
- 'tags': [
- 'present',
- 'birthday',
- 'christmas'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'balloon',
- 'category': 'Objects',
- 'aliases': [
- 'balloon'
- ],
- 'tags': [
- 'party',
- 'birthday'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'carp streamer',
- 'category': 'Objects',
- 'aliases': [
- 'flags'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ribbon',
- 'category': 'Objects',
- 'aliases': [
- 'ribbon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'confetti ball',
- 'category': 'Objects',
- 'aliases': [
- 'confetti_ball'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'party popper',
- 'category': 'Objects',
- 'aliases': [
- 'tada'
- ],
- 'tags': [
- 'hooray',
- 'party'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'Japanese dolls',
- 'category': 'Objects',
- 'aliases': [
- 'dolls'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'red paper lantern',
- 'category': 'Objects',
- 'aliases': [
- 'izakaya_lantern',
- 'lantern'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'wind chime',
- 'category': 'Objects',
- 'aliases': [
- 'wind_chime'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'envelope',
- 'category': 'Objects',
- 'aliases': [
- 'email',
- 'envelope'
- ],
- 'tags': [
- 'letter'
- ]
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'envelope with arrow',
- 'category': 'Objects',
- 'aliases': [
- 'envelope_with_arrow'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ',
- 'description': 'incoming envelope',
- 'category': 'Objects',
- 'aliases': [
- 'incoming_envelope'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'e-mail',
- 'category': 'Objects',
- 'aliases': [
- 'e-mail'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'love letter',
- 'category': 'Objects',
- 'aliases': [
- 'love_letter'
- ],
- 'tags': [
- 'email',
- 'envelope'
- ]
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'inbox tray',
- 'category': 'Objects',
- 'aliases': [
- 'inbox_tray'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'outbox tray',
- 'category': 'Objects',
- 'aliases': [
- 'outbox_tray'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'package',
- 'category': 'Objects',
- 'aliases': [
- 'package'
- ],
- 'tags': [
- 'shipping'
- ]
- },
- {
- 'emoji': '๐ท',
- 'description': 'label',
- 'category': 'Objects',
- 'aliases': [
- 'label'
- ],
- 'tags': [
- 'tag'
- ]
- },
- {
- 'emoji': '๐ช',
- 'description': 'closed mailbox with lowered flag',
- 'category': 'Objects',
- 'aliases': [
- 'mailbox_closed'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'closed mailbox with raised flag',
- 'category': 'Objects',
- 'aliases': [
- 'mailbox'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'open mailbox with raised flag',
- 'category': 'Objects',
- 'aliases': [
- 'mailbox_with_mail'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'open mailbox with lowered flag',
- 'category': 'Objects',
- 'aliases': [
- 'mailbox_with_no_mail'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'postbox',
- 'category': 'Objects',
- 'aliases': [
- 'postbox'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'postal horn',
- 'category': 'Objects',
- 'aliases': [
- 'postal_horn'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'scroll',
- 'category': 'Objects',
- 'aliases': [
- 'scroll'
- ],
- 'tags': [
- 'document'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'page with curl',
- 'category': 'Objects',
- 'aliases': [
- 'page_with_curl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'page facing up',
- 'category': 'Objects',
- 'aliases': [
- 'page_facing_up'
- ],
- 'tags': [
- 'document'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'bookmark tabs',
- 'category': 'Objects',
- 'aliases': [
- 'bookmark_tabs'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bar chart',
- 'category': 'Objects',
- 'aliases': [
- 'bar_chart'
- ],
- 'tags': [
- 'stats',
- 'metrics'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'chart increasing',
- 'category': 'Objects',
- 'aliases': [
- 'chart_with_upwards_trend'
- ],
- 'tags': [
- 'graph',
- 'metrics'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'chart decreasing',
- 'category': 'Objects',
- 'aliases': [
- 'chart_with_downwards_trend'
- ],
- 'tags': [
- 'graph',
- 'metrics'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'spiral notepad',
- 'category': 'Objects',
- 'aliases': [
- 'spiral_notepad'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'spiral calendar',
- 'category': 'Objects',
- 'aliases': [
- 'spiral_calendar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'tear-off calendar',
- 'category': 'Objects',
- 'aliases': [
- 'calendar'
- ],
- 'tags': [
- 'schedule'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'calendar',
- 'category': 'Objects',
- 'aliases': [
- 'date'
- ],
- 'tags': [
- 'calendar',
- 'schedule'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'card index',
- 'category': 'Objects',
- 'aliases': [
- 'card_index'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'card file box',
- 'category': 'Objects',
- 'aliases': [
- 'card_file_box'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'ballot box with ballot',
- 'category': 'Objects',
- 'aliases': [
- 'ballot_box'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'file cabinet',
- 'category': 'Objects',
- 'aliases': [
- 'file_cabinet'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'clipboard',
- 'category': 'Objects',
- 'aliases': [
- 'clipboard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'file folder',
- 'category': 'Objects',
- 'aliases': [
- 'file_folder'
- ],
- 'tags': [
- 'directory'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'open file folder',
- 'category': 'Objects',
- 'aliases': [
- 'open_file_folder'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'card index dividers',
- 'category': 'Objects',
- 'aliases': [
- 'card_index_dividers'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'rolled-up newspaper',
- 'category': 'Objects',
- 'aliases': [
- 'newspaper_roll'
- ],
- 'tags': [
- 'press'
- ]
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'newspaper',
- 'category': 'Objects',
- 'aliases': [
- 'newspaper'
- ],
- 'tags': [
- 'press'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'notebook',
- 'category': 'Objects',
- 'aliases': [
- 'notebook'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'notebook with decorative cover',
- 'category': 'Objects',
- 'aliases': [
- 'notebook_with_decorative_cover'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ledger',
- 'category': 'Objects',
- 'aliases': [
- 'ledger'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'closed book',
- 'category': 'Objects',
- 'aliases': [
- 'closed_book'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'green book',
- 'category': 'Objects',
- 'aliases': [
- 'green_book'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'blue book',
- 'category': 'Objects',
- 'aliases': [
- 'blue_book'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'orange book',
- 'category': 'Objects',
- 'aliases': [
- 'orange_book'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'books',
- 'category': 'Objects',
- 'aliases': [
- 'books'
- ],
- 'tags': [
- 'library'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'open book',
- 'category': 'Objects',
- 'aliases': [
- 'book',
- 'open_book'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bookmark',
- 'category': 'Objects',
- 'aliases': [
- 'bookmark'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'link',
- 'category': 'Objects',
- 'aliases': [
- 'link'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'paperclip',
- 'category': 'Objects',
- 'aliases': [
- 'paperclip'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'linked paperclips',
- 'category': 'Objects',
- 'aliases': [
- 'paperclips'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'triangular ruler',
- 'category': 'Objects',
- 'aliases': [
- 'triangular_ruler'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'straight ruler',
- 'category': 'Objects',
- 'aliases': [
- 'straight_ruler'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'pushpin',
- 'category': 'Objects',
- 'aliases': [
- 'pushpin'
- ],
- 'tags': [
- 'location'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'round pushpin',
- 'category': 'Objects',
- 'aliases': [
- 'round_pushpin'
- ],
- 'tags': [
- 'location'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'scissors',
- 'category': 'Objects',
- 'aliases': [
- 'scissors'
- ],
- 'tags': [
- 'cut'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'pen',
- 'category': 'Objects',
- 'aliases': [
- 'pen'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'fountain pen',
- 'category': 'Objects',
- 'aliases': [
- 'fountain_pen'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'black nib',
- 'category': 'Objects',
- 'aliases': [
- 'black_nib'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'paintbrush',
- 'category': 'Objects',
- 'aliases': [
- 'paintbrush'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'crayon',
- 'category': 'Objects',
- 'aliases': [
- 'crayon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'memo',
- 'category': 'Objects',
- 'aliases': [
- 'memo',
- 'pencil'
- ],
- 'tags': [
- 'document',
- 'note'
- ]
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'pencil',
- 'category': 'Objects',
- 'aliases': [
- 'pencil2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'left-pointing magnifying glass',
- 'category': 'Objects',
- 'aliases': [
- 'mag'
- ],
- 'tags': [
- 'search',
- 'zoom'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'right-pointing magnifying glass',
- 'category': 'Objects',
- 'aliases': [
- 'mag_right'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'locked with pen',
- 'category': 'Objects',
- 'aliases': [
- 'lock_with_ink_pen'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'locked with key',
- 'category': 'Objects',
- 'aliases': [
- 'closed_lock_with_key'
- ],
- 'tags': [
- 'security'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'locked',
- 'category': 'Objects',
- 'aliases': [
- 'lock'
- ],
- 'tags': [
- 'security',
- 'private'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'unlocked',
- 'category': 'Objects',
- 'aliases': [
- 'unlock'
- ],
- 'tags': [
- 'security'
- ]
- },
- {
- 'emoji': 'โค๏ธ',
- 'description': 'red heart',
- 'category': 'Symbols',
- 'aliases': [
- 'heart'
- ],
- 'tags': [
- 'love'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'yellow heart',
- 'category': 'Symbols',
- 'aliases': [
- 'yellow_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'green heart',
- 'category': 'Symbols',
- 'aliases': [
- 'green_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'blue heart',
- 'category': 'Symbols',
- 'aliases': [
- 'blue_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'purple heart',
- 'category': 'Symbols',
- 'aliases': [
- 'purple_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'black heart',
- 'category': 'Symbols',
- 'aliases': [
- 'black_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'broken heart',
- 'category': 'Symbols',
- 'aliases': [
- 'broken_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฃ๏ธ',
- 'description': 'heavy heart exclamation',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_heart_exclamation'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'two hearts',
- 'category': 'Symbols',
- 'aliases': [
- 'two_hearts'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'revolving hearts',
- 'category': 'Symbols',
- 'aliases': [
- 'revolving_hearts'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'beating heart',
- 'category': 'Symbols',
- 'aliases': [
- 'heartbeat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'growing heart',
- 'category': 'Symbols',
- 'aliases': [
- 'heartpulse'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'sparkling heart',
- 'category': 'Symbols',
- 'aliases': [
- 'sparkling_heart'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'heart with arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'cupid'
- ],
- 'tags': [
- 'love',
- 'heart'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'heart with ribbon',
- 'category': 'Symbols',
- 'aliases': [
- 'gift_heart'
- ],
- 'tags': [
- 'chocolates'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'heart decoration',
- 'category': 'Symbols',
- 'aliases': [
- 'heart_decoration'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฎ๏ธ',
- 'description': 'peace symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'peace_symbol'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'latin cross',
- 'category': 'Symbols',
- 'aliases': [
- 'latin_cross'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช๏ธ',
- 'description': 'star and crescent',
- 'category': 'Symbols',
- 'aliases': [
- 'star_and_crescent'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'om',
- 'category': 'Symbols',
- 'aliases': [
- 'om'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โธ๏ธ',
- 'description': 'wheel of dharma',
- 'category': 'Symbols',
- 'aliases': [
- 'wheel_of_dharma'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โก๏ธ',
- 'description': 'star of David',
- 'category': 'Symbols',
- 'aliases': [
- 'star_of_david'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'dotted six-pointed star',
- 'category': 'Symbols',
- 'aliases': [
- 'six_pointed_star'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'menorah',
- 'category': 'Symbols',
- 'aliases': [
- 'menorah'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฏ๏ธ',
- 'description': 'yin yang',
- 'category': 'Symbols',
- 'aliases': [
- 'yin_yang'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฆ๏ธ',
- 'description': 'orthodox cross',
- 'category': 'Symbols',
- 'aliases': [
- 'orthodox_cross'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'place of worship',
- 'category': 'Symbols',
- 'aliases': [
- 'place_of_worship'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'Ophiuchus',
- 'category': 'Symbols',
- 'aliases': [
- 'ophiuchus'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Aries',
- 'category': 'Symbols',
- 'aliases': [
- 'aries'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Taurus',
- 'category': 'Symbols',
- 'aliases': [
- 'taurus'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Gemini',
- 'category': 'Symbols',
- 'aliases': [
- 'gemini'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Cancer',
- 'category': 'Symbols',
- 'aliases': [
- 'cancer'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Leo',
- 'category': 'Symbols',
- 'aliases': [
- 'leo'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Virgo',
- 'category': 'Symbols',
- 'aliases': [
- 'virgo'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Libra',
- 'category': 'Symbols',
- 'aliases': [
- 'libra'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Scorpius',
- 'category': 'Symbols',
- 'aliases': [
- 'scorpius'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Sagittarius',
- 'category': 'Symbols',
- 'aliases': [
- 'sagittarius'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Capricorn',
- 'category': 'Symbols',
- 'aliases': [
- 'capricorn'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Aquarius',
- 'category': 'Symbols',
- 'aliases': [
- 'aquarius'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'Pisces',
- 'category': 'Symbols',
- 'aliases': [
- 'pisces'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ID button',
- 'category': 'Symbols',
- 'aliases': [
- 'id'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'atom symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'atom_symbol'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'Japanese โacceptableโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'accept'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โข๏ธ',
- 'description': 'radioactive',
- 'category': 'Symbols',
- 'aliases': [
- 'radioactive'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฃ๏ธ',
- 'description': 'biohazard',
- 'category': 'Symbols',
- 'aliases': [
- 'biohazard'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'mobile phone off',
- 'category': 'Symbols',
- 'aliases': [
- 'mobile_phone_off'
- ],
- 'tags': [
- 'mute',
- 'off'
- ]
- },
- {
- 'emoji': '๐ณ',
- 'description': 'vibration mode',
- 'category': 'Symbols',
- 'aliases': [
- 'vibration_mode'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'Japanese โnot free of chargeโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u6709'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐๏ธ',
- 'description': 'Japanese โfree of chargeโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u7121'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'Japanese โapplicationโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u7533'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'Japanese โopen for businessโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u55b6'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท๏ธ',
- 'description': 'Japanese โmonthly amountโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u6708'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โด๏ธ',
- 'description': 'eight-pointed star',
- 'category': 'Symbols',
- 'aliases': [
- 'eight_pointed_black_star'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'VS button',
- 'category': 'Symbols',
- 'aliases': [
- 'vs'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'white flower',
- 'category': 'Symbols',
- 'aliases': [
- 'white_flower'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'Japanese โbargainโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'ideograph_advantage'
- ],
- 'tags': []
- },
- {
- 'emoji': 'ใ๏ธ',
- 'description': 'Japanese โsecretโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'secret'
- ],
- 'tags': []
- },
- {
- 'emoji': 'ใ๏ธ',
- 'description': 'Japanese โcongratulationsโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'congratulations'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'Japanese โpassing gradeโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u5408'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'Japanese โno vacancyโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u6e80'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'Japanese โdiscountโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u5272'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'Japanese โprohibitedโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u7981'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
ฐ๏ธ',
- 'description': 'A button (blood type)',
- 'category': 'Symbols',
- 'aliases': [
- 'a'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
ฑ๏ธ',
- 'description': 'B button (blood type)',
- 'category': 'Symbols',
- 'aliases': [
- 'b'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'AB button (blood type)',
- 'category': 'Symbols',
- 'aliases': [
- 'ab'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'CL button',
- 'category': 'Symbols',
- 'aliases': [
- 'cl'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
พ๏ธ',
- 'description': 'O button (blood type)',
- 'category': 'Symbols',
- 'aliases': [
- 'o2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'SOS button',
- 'category': 'Symbols',
- 'aliases': [
- 'sos'
- ],
- 'tags': [
- 'help',
- 'emergency'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'cross mark',
- 'category': 'Symbols',
- 'aliases': [
- 'x'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โญ๏ธ',
- 'description': 'heavy large circle',
- 'category': 'Symbols',
- 'aliases': [
- 'o'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'stop sign',
- 'category': 'Symbols',
- 'aliases': [
- 'stop_sign'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'no entry',
- 'category': 'Symbols',
- 'aliases': [
- 'no_entry'
- ],
- 'tags': [
- 'limit'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'name badge',
- 'category': 'Symbols',
- 'aliases': [
- 'name_badge'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ',
- 'description': 'prohibited',
- 'category': 'Symbols',
- 'aliases': [
- 'no_entry_sign'
- ],
- 'tags': [
- 'block',
- 'forbidden'
- ]
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'hundred points',
- 'category': 'Symbols',
- 'aliases': [
- '100'
- ],
- 'tags': [
- 'score',
- 'perfect'
- ]
- },
- {
- 'emoji': '๐ข',
- 'description': 'anger symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'anger'
- ],
- 'tags': [
- 'angry'
- ]
- },
- {
- 'emoji': 'โจ๏ธ',
- 'description': 'hot springs',
- 'category': 'Symbols',
- 'aliases': [
- 'hotsprings'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'no pedestrians',
- 'category': 'Symbols',
- 'aliases': [
- 'no_pedestrians'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'no littering',
- 'category': 'Symbols',
- 'aliases': [
- 'do_not_litter'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'no bicycles',
- 'category': 'Symbols',
- 'aliases': [
- 'no_bicycles'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'non-potable water',
- 'category': 'Symbols',
- 'aliases': [
- 'non-potable_water'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'no one under eighteen',
- 'category': 'Symbols',
- 'aliases': [
- 'underage'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'no mobile phones',
- 'category': 'Symbols',
- 'aliases': [
- 'no_mobile_phones'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ',
- 'description': 'no smoking',
- 'category': 'Symbols',
- 'aliases': [
- 'no_smoking'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'exclamation mark',
- 'category': 'Symbols',
- 'aliases': [
- 'exclamation',
- 'heavy_exclamation_mark'
- ],
- 'tags': [
- 'bang'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'white exclamation mark',
- 'category': 'Symbols',
- 'aliases': [
- 'grey_exclamation'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'question mark',
- 'category': 'Symbols',
- 'aliases': [
- 'question'
- ],
- 'tags': [
- 'confused'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'white question mark',
- 'category': 'Symbols',
- 'aliases': [
- 'grey_question'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โผ๏ธ',
- 'description': 'double exclamation mark',
- 'category': 'Symbols',
- 'aliases': [
- 'bangbang'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'exclamation question mark',
- 'category': 'Symbols',
- 'aliases': [
- 'interrobang'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐
',
- 'description': 'dim button',
- 'category': 'Symbols',
- 'aliases': [
- 'low_brightness'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'bright button',
- 'category': 'Symbols',
- 'aliases': [
- 'high_brightness'
- ],
- 'tags': []
- },
- {
- 'emoji': 'ใฝ๏ธ',
- 'description': 'part alternation mark',
- 'category': 'Symbols',
- 'aliases': [
- 'part_alternation_mark'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ ๏ธ',
- 'description': 'warning',
- 'category': 'Symbols',
- 'aliases': [
- 'warning'
- ],
- 'tags': [
- 'wip'
- ]
- },
- {
- 'emoji': '๐ธ',
- 'description': 'children crossing',
- 'category': 'Symbols',
- 'aliases': [
- 'children_crossing'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'trident emblem',
- 'category': 'Symbols',
- 'aliases': [
- 'trident'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'fleur-de-lis',
- 'category': 'Symbols',
- 'aliases': [
- 'fleur_de_lis'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ',
- 'description': 'Japanese symbol for beginner',
- 'category': 'Symbols',
- 'aliases': [
- 'beginner'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โป๏ธ',
- 'description': 'recycling symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'recycle'
- ],
- 'tags': [
- 'environment',
- 'green'
- ]
- },
- {
- 'emoji': 'โ
',
- 'description': 'white heavy check mark',
- 'category': 'Symbols',
- 'aliases': [
- 'white_check_mark'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ๏ธ',
- 'description': 'Japanese โreservedโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u6307'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'chart increasing with yen',
- 'category': 'Symbols',
- 'aliases': [
- 'chart'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'sparkle',
- 'category': 'Symbols',
- 'aliases': [
- 'sparkle'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โณ๏ธ',
- 'description': 'eight-spoked asterisk',
- 'category': 'Symbols',
- 'aliases': [
- 'eight_spoked_asterisk'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'cross mark button',
- 'category': 'Symbols',
- 'aliases': [
- 'negative_squared_cross_mark'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'globe with meridians',
- 'category': 'Symbols',
- 'aliases': [
- 'globe_with_meridians'
- ],
- 'tags': [
- 'world',
- 'global',
- 'international'
- ]
- },
- {
- 'emoji': '๐ ',
- 'description': 'diamond with a dot',
- 'category': 'Symbols',
- 'aliases': [
- 'diamond_shape_with_a_dot_inside'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'circled M',
- 'category': 'Symbols',
- 'aliases': [
- 'm'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'cyclone',
- 'category': 'Symbols',
- 'aliases': [
- 'cyclone'
- ],
- 'tags': [
- 'swirl'
- ]
- },
- {
- 'emoji': '๐ค',
- 'description': 'zzz',
- 'category': 'Symbols',
- 'aliases': [
- 'zzz'
- ],
- 'tags': [
- 'sleeping'
- ]
- },
- {
- 'emoji': '๐ง',
- 'description': 'ATM sign',
- 'category': 'Symbols',
- 'aliases': [
- 'atm'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ',
- 'description': 'water closet',
- 'category': 'Symbols',
- 'aliases': [
- 'wc'
- ],
- 'tags': [
- 'toilet',
- 'restroom'
- ]
- },
- {
- 'emoji': 'โฟ๏ธ',
- 'description': 'wheelchair symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'wheelchair'
- ],
- 'tags': [
- 'accessibility'
- ]
- },
- {
- 'emoji': '๐
ฟ๏ธ',
- 'description': 'P button',
- 'category': 'Symbols',
- 'aliases': [
- 'parking'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'Japanese โvacancyโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'u7a7a'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐๏ธ',
- 'description': 'Japanese โservice chargeโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'sa'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'passport control',
- 'category': 'Symbols',
- 'aliases': [
- 'passport_control'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'customs',
- 'category': 'Symbols',
- 'aliases': [
- 'customs'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'baggage claim',
- 'category': 'Symbols',
- 'aliases': [
- 'baggage_claim'
- ],
- 'tags': [
- 'airport'
- ]
- },
- {
- 'emoji': '๐
',
- 'description': 'left luggage',
- 'category': 'Symbols',
- 'aliases': [
- 'left_luggage'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'menโs room',
- 'category': 'Symbols',
- 'aliases': [
- 'mens'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'womenโs room',
- 'category': 'Symbols',
- 'aliases': [
- 'womens'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'baby symbol',
- 'category': 'Symbols',
- 'aliases': [
- 'baby_symbol'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'restroom',
- 'category': 'Symbols',
- 'aliases': [
- 'restroom'
- ],
- 'tags': [
- 'toilet'
- ]
- },
- {
- 'emoji': '๐ฎ',
- 'description': 'litter in bin sign',
- 'category': 'Symbols',
- 'aliases': [
- 'put_litter_in_its_place'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'cinema',
- 'category': 'Symbols',
- 'aliases': [
- 'cinema'
- ],
- 'tags': [
- 'film',
- 'movie'
- ]
- },
- {
- 'emoji': '๐ถ',
- 'description': 'antenna bars',
- 'category': 'Symbols',
- 'aliases': [
- 'signal_strength'
- ],
- 'tags': [
- 'wifi'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'Japanese โhereโ button',
- 'category': 'Symbols',
- 'aliases': [
- 'koko'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'input symbols',
- 'category': 'Symbols',
- 'aliases': [
- 'symbols'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โน๏ธ',
- 'description': 'information',
- 'category': 'Symbols',
- 'aliases': [
- 'information_source'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'input latin letters',
- 'category': 'Symbols',
- 'aliases': [
- 'abc'
- ],
- 'tags': [
- 'alphabet'
- ]
- },
- {
- 'emoji': '๐ก',
- 'description': 'input latin lowercase',
- 'category': 'Symbols',
- 'aliases': [
- 'abcd'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'input latin uppercase',
- 'category': 'Symbols',
- 'aliases': [
- 'capital_abcd'
- ],
- 'tags': [
- 'letters'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'NG button',
- 'category': 'Symbols',
- 'aliases': [
- 'ng'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'OK button',
- 'category': 'Symbols',
- 'aliases': [
- 'ok'
- ],
- 'tags': [
- 'yes'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'UP! button',
- 'category': 'Symbols',
- 'aliases': [
- 'up'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'COOL button',
- 'category': 'Symbols',
- 'aliases': [
- 'cool'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'NEW button',
- 'category': 'Symbols',
- 'aliases': [
- 'new'
- ],
- 'tags': [
- 'fresh'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'FREE button',
- 'category': 'Symbols',
- 'aliases': [
- 'free'
- ],
- 'tags': []
- },
- {
- 'emoji': '0๏ธโฃ',
- 'description': 'keycap: 0',
- 'category': 'Symbols',
- 'aliases': [
- 'zero'
- ],
- 'tags': []
- },
- {
- 'emoji': '1๏ธโฃ',
- 'description': 'keycap: 1',
- 'category': 'Symbols',
- 'aliases': [
- 'one'
- ],
- 'tags': []
- },
- {
- 'emoji': '2๏ธโฃ',
- 'description': 'keycap: 2',
- 'category': 'Symbols',
- 'aliases': [
- 'two'
- ],
- 'tags': []
- },
- {
- 'emoji': '3๏ธโฃ',
- 'description': 'keycap: 3',
- 'category': 'Symbols',
- 'aliases': [
- 'three'
- ],
- 'tags': []
- },
- {
- 'emoji': '4๏ธโฃ',
- 'description': 'keycap: 4',
- 'category': 'Symbols',
- 'aliases': [
- 'four'
- ],
- 'tags': []
- },
- {
- 'emoji': '5๏ธโฃ',
- 'description': 'keycap: 5',
- 'category': 'Symbols',
- 'aliases': [
- 'five'
- ],
- 'tags': []
- },
- {
- 'emoji': '6๏ธโฃ',
- 'description': 'keycap: 6',
- 'category': 'Symbols',
- 'aliases': [
- 'six'
- ],
- 'tags': []
- },
- {
- 'emoji': '7๏ธโฃ',
- 'description': 'keycap: 7',
- 'category': 'Symbols',
- 'aliases': [
- 'seven'
- ],
- 'tags': []
- },
- {
- 'emoji': '8๏ธโฃ',
- 'description': 'keycap: 8',
- 'category': 'Symbols',
- 'aliases': [
- 'eight'
- ],
- 'tags': []
- },
- {
- 'emoji': '9๏ธโฃ',
- 'description': 'keycap: 9',
- 'category': 'Symbols',
- 'aliases': [
- 'nine'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'keycap 10',
- 'category': 'Symbols',
- 'aliases': [
- 'keycap_ten'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'input numbers',
- 'category': 'Symbols',
- 'aliases': [
- '1234'
- ],
- 'tags': [
- 'numbers'
- ]
- },
- {
- 'emoji': '#๏ธโฃ',
- 'description': 'keycap: #',
- 'category': 'Symbols',
- 'aliases': [
- 'hash'
- ],
- 'tags': [
- 'number'
- ]
- },
- {
- 'emoji': '*๏ธโฃ',
- 'description': 'keycap: *',
- 'category': 'Symbols',
- 'aliases': [
- 'asterisk'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โถ๏ธ',
- 'description': 'play button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_forward'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โธ',
- 'description': 'pause button',
- 'category': 'Symbols',
- 'aliases': [
- 'pause_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฏ',
- 'description': 'play or pause button',
- 'category': 'Symbols',
- 'aliases': [
- 'play_or_pause_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โน',
- 'description': 'stop button',
- 'category': 'Symbols',
- 'aliases': [
- 'stop_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โบ',
- 'description': 'record button',
- 'category': 'Symbols',
- 'aliases': [
- 'record_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โญ',
- 'description': 'next track button',
- 'category': 'Symbols',
- 'aliases': [
- 'next_track_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฎ',
- 'description': 'last track button',
- 'category': 'Symbols',
- 'aliases': [
- 'previous_track_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฉ',
- 'description': 'fast-forward button',
- 'category': 'Symbols',
- 'aliases': [
- 'fast_forward'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช',
- 'description': 'fast reverse button',
- 'category': 'Symbols',
- 'aliases': [
- 'rewind'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โซ',
- 'description': 'fast up button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_double_up'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ',
- 'description': 'fast down button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_double_down'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'reverse button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_backward'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ',
- 'description': 'up button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_up_small'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ',
- 'description': 'down button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_down_small'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โก๏ธ',
- 'description': 'right arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_right'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ
๏ธ',
- 'description': 'left arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_left'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ๏ธ',
- 'description': 'up arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_up'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ๏ธ',
- 'description': 'down arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_down'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'up-right arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_upper_right'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'down-right arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_lower_right'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'down-left arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_lower_left'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'up-left arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_upper_left'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'up-down arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_up_down'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'left-right arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'left_right_arrow'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช๏ธ',
- 'description': 'left arrow curving right',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_right_hook'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฉ๏ธ',
- 'description': 'right arrow curving left',
- 'category': 'Symbols',
- 'aliases': [
- 'leftwards_arrow_with_hook'
- ],
- 'tags': [
- 'return'
- ]
- },
- {
- 'emoji': 'โคด๏ธ',
- 'description': 'right arrow curving up',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_heading_up'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โคต๏ธ',
- 'description': 'right arrow curving down',
- 'category': 'Symbols',
- 'aliases': [
- 'arrow_heading_down'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'shuffle tracks button',
- 'category': 'Symbols',
- 'aliases': [
- 'twisted_rightwards_arrows'
- ],
- 'tags': [
- 'shuffle'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'repeat button',
- 'category': 'Symbols',
- 'aliases': [
- 'repeat'
- ],
- 'tags': [
- 'loop'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'repeat single button',
- 'category': 'Symbols',
- 'aliases': [
- 'repeat_one'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'anticlockwise arrows button',
- 'category': 'Symbols',
- 'aliases': [
- 'arrows_counterclockwise'
- ],
- 'tags': [
- 'sync'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'clockwise vertical arrows',
- 'category': 'Symbols',
- 'aliases': [
- 'arrows_clockwise'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'musical note',
- 'category': 'Symbols',
- 'aliases': [
- 'musical_note'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'musical notes',
- 'category': 'Symbols',
- 'aliases': [
- 'notes'
- ],
- 'tags': [
- 'music'
- ]
- },
- {
- 'emoji': 'โ',
- 'description': 'heavy plus sign',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_plus_sign'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'heavy minus sign',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_minus_sign'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ',
- 'description': 'heavy division sign',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_division_sign'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'heavy multiplication x',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_multiplication_x'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'heavy dollar sign',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_dollar_sign'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ',
- 'description': 'currency exchange',
- 'category': 'Symbols',
- 'aliases': [
- 'currency_exchange'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โข๏ธ',
- 'description': 'trade mark',
- 'category': 'Symbols',
- 'aliases': [
- 'tm'
- ],
- 'tags': [
- 'trademark'
- ]
- },
- {
- 'emoji': 'ยฉ๏ธ',
- 'description': 'copyright',
- 'category': 'Symbols',
- 'aliases': [
- 'copyright'
- ],
- 'tags': []
- },
- {
- 'emoji': 'ยฎ๏ธ',
- 'description': 'registered',
- 'category': 'Symbols',
- 'aliases': [
- 'registered'
- ],
- 'tags': []
- },
- {
- 'emoji': 'ใฐ๏ธ',
- 'description': 'wavy dash',
- 'category': 'Symbols',
- 'aliases': [
- 'wavy_dash'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฐ',
- 'description': 'curly loop',
- 'category': 'Symbols',
- 'aliases': [
- 'curly_loop'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฟ',
- 'description': 'double curly loop',
- 'category': 'Symbols',
- 'aliases': [
- 'loop'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'END arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'end'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'BACK arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'back'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ON! arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'on'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'TOP arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'top'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'SOON arrow',
- 'category': 'Symbols',
- 'aliases': [
- 'soon'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'heavy check mark',
- 'category': 'Symbols',
- 'aliases': [
- 'heavy_check_mark'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ๏ธ',
- 'description': 'ballot box with check',
- 'category': 'Symbols',
- 'aliases': [
- 'ballot_box_with_check'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'radio button',
- 'category': 'Symbols',
- 'aliases': [
- 'radio_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช๏ธ',
- 'description': 'white circle',
- 'category': 'Symbols',
- 'aliases': [
- 'white_circle'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โซ๏ธ',
- 'description': 'black circle',
- 'category': 'Symbols',
- 'aliases': [
- 'black_circle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'red circle',
- 'category': 'Symbols',
- 'aliases': [
- 'red_circle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต',
- 'description': 'blue circle',
- 'category': 'Symbols',
- 'aliases': [
- 'large_blue_circle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ',
- 'description': 'red triangle pointed up',
- 'category': 'Symbols',
- 'aliases': [
- 'small_red_triangle'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป',
- 'description': 'red triangle pointed down',
- 'category': 'Symbols',
- 'aliases': [
- 'small_red_triangle_down'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ',
- 'description': 'small orange diamond',
- 'category': 'Symbols',
- 'aliases': [
- 'small_orange_diamond'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น',
- 'description': 'small blue diamond',
- 'category': 'Symbols',
- 'aliases': [
- 'small_blue_diamond'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ',
- 'description': 'large orange diamond',
- 'category': 'Symbols',
- 'aliases': [
- 'large_orange_diamond'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท',
- 'description': 'large blue diamond',
- 'category': 'Symbols',
- 'aliases': [
- 'large_blue_diamond'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ',
- 'description': 'white square button',
- 'category': 'Symbols',
- 'aliases': [
- 'white_square_button'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ',
- 'description': 'black square button',
- 'category': 'Symbols',
- 'aliases': [
- 'black_square_button'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โช๏ธ',
- 'description': 'black small square',
- 'category': 'Symbols',
- 'aliases': [
- 'black_small_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โซ๏ธ',
- 'description': 'white small square',
- 'category': 'Symbols',
- 'aliases': [
- 'white_small_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โพ๏ธ',
- 'description': 'black medium-small square',
- 'category': 'Symbols',
- 'aliases': [
- 'black_medium_small_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฝ๏ธ',
- 'description': 'white medium-small square',
- 'category': 'Symbols',
- 'aliases': [
- 'white_medium_small_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โผ๏ธ',
- 'description': 'black medium square',
- 'category': 'Symbols',
- 'aliases': [
- 'black_medium_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โป๏ธ',
- 'description': 'white medium square',
- 'category': 'Symbols',
- 'aliases': [
- 'white_medium_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ๏ธ',
- 'description': 'black large square',
- 'category': 'Symbols',
- 'aliases': [
- 'black_large_square'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฌ๏ธ',
- 'description': 'white large square',
- 'category': 'Symbols',
- 'aliases': [
- 'white_large_square'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'speaker low volume',
- 'category': 'Symbols',
- 'aliases': [
- 'speaker'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'muted speaker',
- 'category': 'Symbols',
- 'aliases': [
- 'mute'
- ],
- 'tags': [
- 'sound',
- 'volume'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'speaker medium volume',
- 'category': 'Symbols',
- 'aliases': [
- 'sound'
- ],
- 'tags': [
- 'volume'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'speaker high volume',
- 'category': 'Symbols',
- 'aliases': [
- 'loud_sound'
- ],
- 'tags': [
- 'volume'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'bell',
- 'category': 'Symbols',
- 'aliases': [
- 'bell'
- ],
- 'tags': [
- 'sound',
- 'notification'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'bell with slash',
- 'category': 'Symbols',
- 'aliases': [
- 'no_bell'
- ],
- 'tags': [
- 'volume',
- 'off'
- ]
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'megaphone',
- 'category': 'Symbols',
- 'aliases': [
- 'mega'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'loudspeaker',
- 'category': 'Symbols',
- 'aliases': [
- 'loudspeaker'
- ],
- 'tags': [
- 'announcement'
- ]
- },
- {
- 'emoji': '๐โ๐จ',
- 'description': 'eye in speech bubble',
- 'category': 'Symbols',
- 'aliases': [
- 'eye_speech_bubble'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ',
- 'description': 'speech balloon',
- 'category': 'Symbols',
- 'aliases': [
- 'speech_balloon'
- ],
- 'tags': [
- 'comment'
- ]
- },
- {
- 'emoji': '๐ญ',
- 'description': 'thought balloon',
- 'category': 'Symbols',
- 'aliases': [
- 'thought_balloon'
- ],
- 'tags': [
- 'thinking'
- ]
- },
- {
- 'emoji': '๐ฏ',
- 'description': 'right anger bubble',
- 'category': 'Symbols',
- 'aliases': [
- 'right_anger_bubble'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โ ๏ธ',
- 'description': 'spade suit',
- 'category': 'Symbols',
- 'aliases': [
- 'spades'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฃ๏ธ',
- 'description': 'club suit',
- 'category': 'Symbols',
- 'aliases': [
- 'clubs'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฅ๏ธ',
- 'description': 'heart suit',
- 'category': 'Symbols',
- 'aliases': [
- 'hearts'
- ],
- 'tags': []
- },
- {
- 'emoji': 'โฆ๏ธ',
- 'description': 'diamond suit',
- 'category': 'Symbols',
- 'aliases': [
- 'diamonds'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'joker',
- 'category': 'Symbols',
- 'aliases': [
- 'black_joker'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'flower playing cards',
- 'category': 'Symbols',
- 'aliases': [
- 'flower_playing_cards'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐๏ธ',
- 'description': 'mahjong red dragon',
- 'category': 'Symbols',
- 'aliases': [
- 'mahjong'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'one oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock1'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'two oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock2'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'three oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock3'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'four oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock4'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'five oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock5'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'six oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock6'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'seven oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock7'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'eight oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock8'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'nine oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock9'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'ten oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock10'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'eleven oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock11'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'twelve oโclock',
- 'category': 'Symbols',
- 'aliases': [
- 'clock12'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'one-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock130'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'two-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock230'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'three-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock330'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'four-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock430'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ ',
- 'description': 'five-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock530'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ก',
- 'description': 'six-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock630'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ข',
- 'description': 'seven-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock730'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฃ',
- 'description': 'eight-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock830'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ค',
- 'description': 'nine-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock930'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฅ',
- 'description': 'ten-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock1030'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ',
- 'description': 'eleven-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock1130'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง',
- 'description': 'twelve-thirty',
- 'category': 'Symbols',
- 'aliases': [
- 'clock1230'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๏ธ',
- 'description': 'white flag',
- 'category': 'Flags',
- 'aliases': [
- 'white_flag'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด',
- 'description': 'black flag',
- 'category': 'Flags',
- 'aliases': [
- 'black_flag'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐',
- 'description': 'chequered flag',
- 'category': 'Flags',
- 'aliases': [
- 'checkered_flag'
- ],
- 'tags': [
- 'milestone',
- 'finish'
- ]
- },
- {
- 'emoji': '๐ฉ',
- 'description': 'triangular flag',
- 'category': 'Flags',
- 'aliases': [
- 'triangular_flag_on_post'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๏ธโ๐',
- 'description': 'rainbow flag',
- 'category': 'Flags',
- 'aliases': [
- 'rainbow_flag'
- ],
- 'tags': [
- 'pride'
- ]
- },
- {
- 'emoji': '๐ฆ๐ซ',
- 'description': 'Afghanistan',
- 'category': 'Flags',
- 'aliases': [
- 'afghanistan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฝ',
- 'description': 'ร
land Islands',
- 'category': 'Flags',
- 'aliases': [
- 'aland_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฑ',
- 'description': 'Albania',
- 'category': 'Flags',
- 'aliases': [
- 'albania'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ฟ',
- 'description': 'Algeria',
- 'category': 'Flags',
- 'aliases': [
- 'algeria'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ธ',
- 'description': 'American Samoa',
- 'category': 'Flags',
- 'aliases': [
- 'american_samoa'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฉ',
- 'description': 'Andorra',
- 'category': 'Flags',
- 'aliases': [
- 'andorra'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ด',
- 'description': 'Angola',
- 'category': 'Flags',
- 'aliases': [
- 'angola'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฎ',
- 'description': 'Anguilla',
- 'category': 'Flags',
- 'aliases': [
- 'anguilla'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ถ',
- 'description': 'Antarctica',
- 'category': 'Flags',
- 'aliases': [
- 'antarctica'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฌ',
- 'description': 'Antigua & Barbuda',
- 'category': 'Flags',
- 'aliases': [
- 'antigua_barbuda'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ท',
- 'description': 'Argentina',
- 'category': 'Flags',
- 'aliases': [
- 'argentina'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฒ',
- 'description': 'Armenia',
- 'category': 'Flags',
- 'aliases': [
- 'armenia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ผ',
- 'description': 'Aruba',
- 'category': 'Flags',
- 'aliases': [
- 'aruba'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐บ',
- 'description': 'Australia',
- 'category': 'Flags',
- 'aliases': [
- 'australia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐น',
- 'description': 'Austria',
- 'category': 'Flags',
- 'aliases': [
- 'austria'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ฟ',
- 'description': 'Azerbaijan',
- 'category': 'Flags',
- 'aliases': [
- 'azerbaijan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ธ',
- 'description': 'Bahamas',
- 'category': 'Flags',
- 'aliases': [
- 'bahamas'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ญ',
- 'description': 'Bahrain',
- 'category': 'Flags',
- 'aliases': [
- 'bahrain'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฉ',
- 'description': 'Bangladesh',
- 'category': 'Flags',
- 'aliases': [
- 'bangladesh'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ง',
- 'description': 'Barbados',
- 'category': 'Flags',
- 'aliases': [
- 'barbados'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐พ',
- 'description': 'Belarus',
- 'category': 'Flags',
- 'aliases': [
- 'belarus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ช',
- 'description': 'Belgium',
- 'category': 'Flags',
- 'aliases': [
- 'belgium'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฟ',
- 'description': 'Belize',
- 'category': 'Flags',
- 'aliases': [
- 'belize'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฏ',
- 'description': 'Benin',
- 'category': 'Flags',
- 'aliases': [
- 'benin'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฒ',
- 'description': 'Bermuda',
- 'category': 'Flags',
- 'aliases': [
- 'bermuda'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐น',
- 'description': 'Bhutan',
- 'category': 'Flags',
- 'aliases': [
- 'bhutan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ด',
- 'description': 'Bolivia',
- 'category': 'Flags',
- 'aliases': [
- 'bolivia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ถ',
- 'description': 'Caribbean Netherlands',
- 'category': 'Flags',
- 'aliases': [
- 'caribbean_netherlands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฆ',
- 'description': 'Bosnia & Herzegovina',
- 'category': 'Flags',
- 'aliases': [
- 'bosnia_herzegovina'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ผ',
- 'description': 'Botswana',
- 'category': 'Flags',
- 'aliases': [
- 'botswana'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ท',
- 'description': 'Brazil',
- 'category': 'Flags',
- 'aliases': [
- 'brazil'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ด',
- 'description': 'British Indian Ocean Territory',
- 'category': 'Flags',
- 'aliases': [
- 'british_indian_ocean_territory'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐ฌ',
- 'description': 'British Virgin Islands',
- 'category': 'Flags',
- 'aliases': [
- 'british_virgin_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ณ',
- 'description': 'Brunei',
- 'category': 'Flags',
- 'aliases': [
- 'brunei'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฌ',
- 'description': 'Bulgaria',
- 'category': 'Flags',
- 'aliases': [
- 'bulgaria'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ซ',
- 'description': 'Burkina Faso',
- 'category': 'Flags',
- 'aliases': [
- 'burkina_faso'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฎ',
- 'description': 'Burundi',
- 'category': 'Flags',
- 'aliases': [
- 'burundi'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ป',
- 'description': 'Cape Verde',
- 'category': 'Flags',
- 'aliases': [
- 'cape_verde'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ญ',
- 'description': 'Cambodia',
- 'category': 'Flags',
- 'aliases': [
- 'cambodia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฒ',
- 'description': 'Cameroon',
- 'category': 'Flags',
- 'aliases': [
- 'cameroon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฆ',
- 'description': 'Canada',
- 'category': 'Flags',
- 'aliases': [
- 'canada'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐จ',
- 'description': 'Canary Islands',
- 'category': 'Flags',
- 'aliases': [
- 'canary_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐พ',
- 'description': 'Cayman Islands',
- 'category': 'Flags',
- 'aliases': [
- 'cayman_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ซ',
- 'description': 'Central African Republic',
- 'category': 'Flags',
- 'aliases': [
- 'central_african_republic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฉ',
- 'description': 'Chad',
- 'category': 'Flags',
- 'aliases': [
- 'chad'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฑ',
- 'description': 'Chile',
- 'category': 'Flags',
- 'aliases': [
- 'chile'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ณ',
- 'description': 'China',
- 'category': 'Flags',
- 'aliases': [
- 'cn'
- ],
- 'tags': [
- 'china'
- ]
- },
- {
- 'emoji': '๐จ๐ฝ',
- 'description': 'Christmas Island',
- 'category': 'Flags',
- 'aliases': [
- 'christmas_island'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐จ',
- 'description': 'Cocos (Keeling) Islands',
- 'category': 'Flags',
- 'aliases': [
- 'cocos_islands'
- ],
- 'tags': [
- 'keeling'
- ]
- },
- {
- 'emoji': '๐จ๐ด',
- 'description': 'Colombia',
- 'category': 'Flags',
- 'aliases': [
- 'colombia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ฒ',
- 'description': 'Comoros',
- 'category': 'Flags',
- 'aliases': [
- 'comoros'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฌ',
- 'description': 'Congo - Brazzaville',
- 'category': 'Flags',
- 'aliases': [
- 'congo_brazzaville'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฉ',
- 'description': 'Congo - Kinshasa',
- 'category': 'Flags',
- 'aliases': [
- 'congo_kinshasa'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฐ',
- 'description': 'Cook Islands',
- 'category': 'Flags',
- 'aliases': [
- 'cook_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ท',
- 'description': 'Costa Rica',
- 'category': 'Flags',
- 'aliases': [
- 'costa_rica'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฎ',
- 'description': 'Cรดte dโIvoire',
- 'category': 'Flags',
- 'aliases': [
- 'cote_divoire'
- ],
- 'tags': [
- 'ivory'
- ]
- },
- {
- 'emoji': '๐ญ๐ท',
- 'description': 'Croatia',
- 'category': 'Flags',
- 'aliases': [
- 'croatia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐บ',
- 'description': 'Cuba',
- 'category': 'Flags',
- 'aliases': [
- 'cuba'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ผ',
- 'description': 'Curaรงao',
- 'category': 'Flags',
- 'aliases': [
- 'curacao'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐พ',
- 'description': 'Cyprus',
- 'category': 'Flags',
- 'aliases': [
- 'cyprus'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ฟ',
- 'description': 'Czech Republic',
- 'category': 'Flags',
- 'aliases': [
- 'czech_republic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ฐ',
- 'description': 'Denmark',
- 'category': 'Flags',
- 'aliases': [
- 'denmark'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ฏ',
- 'description': 'Djibouti',
- 'category': 'Flags',
- 'aliases': [
- 'djibouti'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ฒ',
- 'description': 'Dominica',
- 'category': 'Flags',
- 'aliases': [
- 'dominica'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ด',
- 'description': 'Dominican Republic',
- 'category': 'Flags',
- 'aliases': [
- 'dominican_republic'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐จ',
- 'description': 'Ecuador',
- 'category': 'Flags',
- 'aliases': [
- 'ecuador'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐ฌ',
- 'description': 'Egypt',
- 'category': 'Flags',
- 'aliases': [
- 'egypt'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ป',
- 'description': 'El Salvador',
- 'category': 'Flags',
- 'aliases': [
- 'el_salvador'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ถ',
- 'description': 'Equatorial Guinea',
- 'category': 'Flags',
- 'aliases': [
- 'equatorial_guinea'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐ท',
- 'description': 'Eritrea',
- 'category': 'Flags',
- 'aliases': [
- 'eritrea'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐ช',
- 'description': 'Estonia',
- 'category': 'Flags',
- 'aliases': [
- 'estonia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐น',
- 'description': 'Ethiopia',
- 'category': 'Flags',
- 'aliases': [
- 'ethiopia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐บ',
- 'description': 'European Union',
- 'category': 'Flags',
- 'aliases': [
- 'eu',
- 'european_union'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ฐ',
- 'description': 'Falkland Islands',
- 'category': 'Flags',
- 'aliases': [
- 'falkland_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ด',
- 'description': 'Faroe Islands',
- 'category': 'Flags',
- 'aliases': [
- 'faroe_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ฏ',
- 'description': 'Fiji',
- 'category': 'Flags',
- 'aliases': [
- 'fiji'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ฎ',
- 'description': 'Finland',
- 'category': 'Flags',
- 'aliases': [
- 'finland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ท',
- 'description': 'France',
- 'category': 'Flags',
- 'aliases': [
- 'fr'
- ],
- 'tags': [
- 'france',
- 'french'
- ]
- },
- {
- 'emoji': '๐ฌ๐ซ',
- 'description': 'French Guiana',
- 'category': 'Flags',
- 'aliases': [
- 'french_guiana'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ซ',
- 'description': 'French Polynesia',
- 'category': 'Flags',
- 'aliases': [
- 'french_polynesia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ซ',
- 'description': 'French Southern Territories',
- 'category': 'Flags',
- 'aliases': [
- 'french_southern_territories'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฆ',
- 'description': 'Gabon',
- 'category': 'Flags',
- 'aliases': [
- 'gabon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฒ',
- 'description': 'Gambia',
- 'category': 'Flags',
- 'aliases': [
- 'gambia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ช',
- 'description': 'Georgia',
- 'category': 'Flags',
- 'aliases': [
- 'georgia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฉ๐ช',
- 'description': 'Germany',
- 'category': 'Flags',
- 'aliases': [
- 'de'
- ],
- 'tags': [
- 'flag',
- 'germany'
- ]
- },
- {
- 'emoji': '๐ฌ๐ญ',
- 'description': 'Ghana',
- 'category': 'Flags',
- 'aliases': [
- 'ghana'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฎ',
- 'description': 'Gibraltar',
- 'category': 'Flags',
- 'aliases': [
- 'gibraltar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ท',
- 'description': 'Greece',
- 'category': 'Flags',
- 'aliases': [
- 'greece'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฑ',
- 'description': 'Greenland',
- 'category': 'Flags',
- 'aliases': [
- 'greenland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฉ',
- 'description': 'Grenada',
- 'category': 'Flags',
- 'aliases': [
- 'grenada'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ต',
- 'description': 'Guadeloupe',
- 'category': 'Flags',
- 'aliases': [
- 'guadeloupe'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐บ',
- 'description': 'Guam',
- 'category': 'Flags',
- 'aliases': [
- 'guam'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐น',
- 'description': 'Guatemala',
- 'category': 'Flags',
- 'aliases': [
- 'guatemala'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ฌ',
- 'description': 'Guernsey',
- 'category': 'Flags',
- 'aliases': [
- 'guernsey'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ณ',
- 'description': 'Guinea',
- 'category': 'Flags',
- 'aliases': [
- 'guinea'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ผ',
- 'description': 'Guinea-Bissau',
- 'category': 'Flags',
- 'aliases': [
- 'guinea_bissau'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐พ',
- 'description': 'Guyana',
- 'category': 'Flags',
- 'aliases': [
- 'guyana'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ๐น',
- 'description': 'Haiti',
- 'category': 'Flags',
- 'aliases': [
- 'haiti'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ๐ณ',
- 'description': 'Honduras',
- 'category': 'Flags',
- 'aliases': [
- 'honduras'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ๐ฐ',
- 'description': 'Hong Kong SAR China',
- 'category': 'Flags',
- 'aliases': [
- 'hong_kong'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ญ๐บ',
- 'description': 'Hungary',
- 'category': 'Flags',
- 'aliases': [
- 'hungary'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ธ',
- 'description': 'Iceland',
- 'category': 'Flags',
- 'aliases': [
- 'iceland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ณ',
- 'description': 'India',
- 'category': 'Flags',
- 'aliases': [
- 'india'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ฉ',
- 'description': 'Indonesia',
- 'category': 'Flags',
- 'aliases': [
- 'indonesia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ท',
- 'description': 'Iran',
- 'category': 'Flags',
- 'aliases': [
- 'iran'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ถ',
- 'description': 'Iraq',
- 'category': 'Flags',
- 'aliases': [
- 'iraq'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ช',
- 'description': 'Ireland',
- 'category': 'Flags',
- 'aliases': [
- 'ireland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ฒ',
- 'description': 'Isle of Man',
- 'category': 'Flags',
- 'aliases': [
- 'isle_of_man'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐ฑ',
- 'description': 'Israel',
- 'category': 'Flags',
- 'aliases': [
- 'israel'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฎ๐น',
- 'description': 'Italy',
- 'category': 'Flags',
- 'aliases': [
- 'it'
- ],
- 'tags': [
- 'italy'
- ]
- },
- {
- 'emoji': '๐ฏ๐ฒ',
- 'description': 'Jamaica',
- 'category': 'Flags',
- 'aliases': [
- 'jamaica'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ๐ต',
- 'description': 'Japan',
- 'category': 'Flags',
- 'aliases': [
- 'jp'
- ],
- 'tags': [
- 'japan'
- ]
- },
- {
- 'emoji': '๐',
- 'description': 'crossed flags',
- 'category': 'Flags',
- 'aliases': [
- 'crossed_flags'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ๐ช',
- 'description': 'Jersey',
- 'category': 'Flags',
- 'aliases': [
- 'jersey'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฏ๐ด',
- 'description': 'Jordan',
- 'category': 'Flags',
- 'aliases': [
- 'jordan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ฟ',
- 'description': 'Kazakhstan',
- 'category': 'Flags',
- 'aliases': [
- 'kazakhstan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ช',
- 'description': 'Kenya',
- 'category': 'Flags',
- 'aliases': [
- 'kenya'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ฎ',
- 'description': 'Kiribati',
- 'category': 'Flags',
- 'aliases': [
- 'kiribati'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฝ๐ฐ',
- 'description': 'Kosovo',
- 'category': 'Flags',
- 'aliases': [
- 'kosovo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ผ',
- 'description': 'Kuwait',
- 'category': 'Flags',
- 'aliases': [
- 'kuwait'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ฌ',
- 'description': 'Kyrgyzstan',
- 'category': 'Flags',
- 'aliases': [
- 'kyrgyzstan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ฆ',
- 'description': 'Laos',
- 'category': 'Flags',
- 'aliases': [
- 'laos'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ป',
- 'description': 'Latvia',
- 'category': 'Flags',
- 'aliases': [
- 'latvia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ง',
- 'description': 'Lebanon',
- 'category': 'Flags',
- 'aliases': [
- 'lebanon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ธ',
- 'description': 'Lesotho',
- 'category': 'Flags',
- 'aliases': [
- 'lesotho'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ท',
- 'description': 'Liberia',
- 'category': 'Flags',
- 'aliases': [
- 'liberia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐พ',
- 'description': 'Libya',
- 'category': 'Flags',
- 'aliases': [
- 'libya'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐ฎ',
- 'description': 'Liechtenstein',
- 'category': 'Flags',
- 'aliases': [
- 'liechtenstein'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐น',
- 'description': 'Lithuania',
- 'category': 'Flags',
- 'aliases': [
- 'lithuania'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐บ',
- 'description': 'Luxembourg',
- 'category': 'Flags',
- 'aliases': [
- 'luxembourg'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ด',
- 'description': 'Macau SAR China',
- 'category': 'Flags',
- 'aliases': [
- 'macau'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฐ',
- 'description': 'Macedonia',
- 'category': 'Flags',
- 'aliases': [
- 'macedonia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฌ',
- 'description': 'Madagascar',
- 'category': 'Flags',
- 'aliases': [
- 'madagascar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ผ',
- 'description': 'Malawi',
- 'category': 'Flags',
- 'aliases': [
- 'malawi'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐พ',
- 'description': 'Malaysia',
- 'category': 'Flags',
- 'aliases': [
- 'malaysia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ป',
- 'description': 'Maldives',
- 'category': 'Flags',
- 'aliases': [
- 'maldives'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฑ',
- 'description': 'Mali',
- 'category': 'Flags',
- 'aliases': [
- 'mali'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐น',
- 'description': 'Malta',
- 'category': 'Flags',
- 'aliases': [
- 'malta'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ญ',
- 'description': 'Marshall Islands',
- 'category': 'Flags',
- 'aliases': [
- 'marshall_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ถ',
- 'description': 'Martinique',
- 'category': 'Flags',
- 'aliases': [
- 'martinique'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ท',
- 'description': 'Mauritania',
- 'category': 'Flags',
- 'aliases': [
- 'mauritania'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐บ',
- 'description': 'Mauritius',
- 'category': 'Flags',
- 'aliases': [
- 'mauritius'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ๐น',
- 'description': 'Mayotte',
- 'category': 'Flags',
- 'aliases': [
- 'mayotte'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฝ',
- 'description': 'Mexico',
- 'category': 'Flags',
- 'aliases': [
- 'mexico'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ซ๐ฒ',
- 'description': 'Micronesia',
- 'category': 'Flags',
- 'aliases': [
- 'micronesia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฉ',
- 'description': 'Moldova',
- 'category': 'Flags',
- 'aliases': [
- 'moldova'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐จ',
- 'description': 'Monaco',
- 'category': 'Flags',
- 'aliases': [
- 'monaco'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ณ',
- 'description': 'Mongolia',
- 'category': 'Flags',
- 'aliases': [
- 'mongolia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ช',
- 'description': 'Montenegro',
- 'category': 'Flags',
- 'aliases': [
- 'montenegro'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ธ',
- 'description': 'Montserrat',
- 'category': 'Flags',
- 'aliases': [
- 'montserrat'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฆ',
- 'description': 'Morocco',
- 'category': 'Flags',
- 'aliases': [
- 'morocco'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฟ',
- 'description': 'Mozambique',
- 'category': 'Flags',
- 'aliases': [
- 'mozambique'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ฒ',
- 'description': 'Myanmar (Burma)',
- 'category': 'Flags',
- 'aliases': [
- 'myanmar'
- ],
- 'tags': [
- 'burma'
- ]
- },
- {
- 'emoji': '๐ณ๐ฆ',
- 'description': 'Namibia',
- 'category': 'Flags',
- 'aliases': [
- 'namibia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ท',
- 'description': 'Nauru',
- 'category': 'Flags',
- 'aliases': [
- 'nauru'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ต',
- 'description': 'Nepal',
- 'category': 'Flags',
- 'aliases': [
- 'nepal'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ฑ',
- 'description': 'Netherlands',
- 'category': 'Flags',
- 'aliases': [
- 'netherlands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐จ',
- 'description': 'New Caledonia',
- 'category': 'Flags',
- 'aliases': [
- 'new_caledonia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ฟ',
- 'description': 'New Zealand',
- 'category': 'Flags',
- 'aliases': [
- 'new_zealand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ฎ',
- 'description': 'Nicaragua',
- 'category': 'Flags',
- 'aliases': [
- 'nicaragua'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ช',
- 'description': 'Niger',
- 'category': 'Flags',
- 'aliases': [
- 'niger'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ฌ',
- 'description': 'Nigeria',
- 'category': 'Flags',
- 'aliases': [
- 'nigeria'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐บ',
- 'description': 'Niue',
- 'category': 'Flags',
- 'aliases': [
- 'niue'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ซ',
- 'description': 'Norfolk Island',
- 'category': 'Flags',
- 'aliases': [
- 'norfolk_island'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฒ๐ต',
- 'description': 'Northern Mariana Islands',
- 'category': 'Flags',
- 'aliases': [
- 'northern_mariana_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ต',
- 'description': 'North Korea',
- 'category': 'Flags',
- 'aliases': [
- 'north_korea'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ณ๐ด',
- 'description': 'Norway',
- 'category': 'Flags',
- 'aliases': [
- 'norway'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ด๐ฒ',
- 'description': 'Oman',
- 'category': 'Flags',
- 'aliases': [
- 'oman'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ฐ',
- 'description': 'Pakistan',
- 'category': 'Flags',
- 'aliases': [
- 'pakistan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ผ',
- 'description': 'Palau',
- 'category': 'Flags',
- 'aliases': [
- 'palau'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ธ',
- 'description': 'Palestinian Territories',
- 'category': 'Flags',
- 'aliases': [
- 'palestinian_territories'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ฆ',
- 'description': 'Panama',
- 'category': 'Flags',
- 'aliases': [
- 'panama'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ฌ',
- 'description': 'Papua New Guinea',
- 'category': 'Flags',
- 'aliases': [
- 'papua_new_guinea'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐พ',
- 'description': 'Paraguay',
- 'category': 'Flags',
- 'aliases': [
- 'paraguay'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ช',
- 'description': 'Peru',
- 'category': 'Flags',
- 'aliases': [
- 'peru'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ญ',
- 'description': 'Philippines',
- 'category': 'Flags',
- 'aliases': [
- 'philippines'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ณ',
- 'description': 'Pitcairn Islands',
- 'category': 'Flags',
- 'aliases': [
- 'pitcairn_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ฑ',
- 'description': 'Poland',
- 'category': 'Flags',
- 'aliases': [
- 'poland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐น',
- 'description': 'Portugal',
- 'category': 'Flags',
- 'aliases': [
- 'portugal'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ท',
- 'description': 'Puerto Rico',
- 'category': 'Flags',
- 'aliases': [
- 'puerto_rico'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ถ๐ฆ',
- 'description': 'Qatar',
- 'category': 'Flags',
- 'aliases': [
- 'qatar'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท๐ช',
- 'description': 'Rรฉunion',
- 'category': 'Flags',
- 'aliases': [
- 'reunion'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท๐ด',
- 'description': 'Romania',
- 'category': 'Flags',
- 'aliases': [
- 'romania'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท๐บ',
- 'description': 'Russia',
- 'category': 'Flags',
- 'aliases': [
- 'ru'
- ],
- 'tags': [
- 'russia'
- ]
- },
- {
- 'emoji': '๐ท๐ผ',
- 'description': 'Rwanda',
- 'category': 'Flags',
- 'aliases': [
- 'rwanda'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ง๐ฑ',
- 'description': 'St. Barthรฉlemy',
- 'category': 'Flags',
- 'aliases': [
- 'st_barthelemy'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ญ',
- 'description': 'St. Helena',
- 'category': 'Flags',
- 'aliases': [
- 'st_helena'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ณ',
- 'description': 'St. Kitts & Nevis',
- 'category': 'Flags',
- 'aliases': [
- 'st_kitts_nevis'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฑ๐จ',
- 'description': 'St. Lucia',
- 'category': 'Flags',
- 'aliases': [
- 'st_lucia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ต๐ฒ',
- 'description': 'St. Pierre & Miquelon',
- 'category': 'Flags',
- 'aliases': [
- 'st_pierre_miquelon'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐จ',
- 'description': 'St. Vincent & Grenadines',
- 'category': 'Flags',
- 'aliases': [
- 'st_vincent_grenadines'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ๐ธ',
- 'description': 'Samoa',
- 'category': 'Flags',
- 'aliases': [
- 'samoa'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฒ',
- 'description': 'San Marino',
- 'category': 'Flags',
- 'aliases': [
- 'san_marino'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐น',
- 'description': 'Sรฃo Tomรฉ & Prรญncipe',
- 'category': 'Flags',
- 'aliases': [
- 'sao_tome_principe'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฆ',
- 'description': 'Saudi Arabia',
- 'category': 'Flags',
- 'aliases': [
- 'saudi_arabia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ณ',
- 'description': 'Senegal',
- 'category': 'Flags',
- 'aliases': [
- 'senegal'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ท๐ธ',
- 'description': 'Serbia',
- 'category': 'Flags',
- 'aliases': [
- 'serbia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐จ',
- 'description': 'Seychelles',
- 'category': 'Flags',
- 'aliases': [
- 'seychelles'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฑ',
- 'description': 'Sierra Leone',
- 'category': 'Flags',
- 'aliases': [
- 'sierra_leone'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฌ',
- 'description': 'Singapore',
- 'category': 'Flags',
- 'aliases': [
- 'singapore'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฝ',
- 'description': 'Sint Maarten',
- 'category': 'Flags',
- 'aliases': [
- 'sint_maarten'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฐ',
- 'description': 'Slovakia',
- 'category': 'Flags',
- 'aliases': [
- 'slovakia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฎ',
- 'description': 'Slovenia',
- 'category': 'Flags',
- 'aliases': [
- 'slovenia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ง',
- 'description': 'Solomon Islands',
- 'category': 'Flags',
- 'aliases': [
- 'solomon_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ด',
- 'description': 'Somalia',
- 'category': 'Flags',
- 'aliases': [
- 'somalia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ๐ฆ',
- 'description': 'South Africa',
- 'category': 'Flags',
- 'aliases': [
- 'south_africa'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ธ',
- 'description': 'South Georgia & South Sandwich Islands',
- 'category': 'Flags',
- 'aliases': [
- 'south_georgia_south_sandwich_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฐ๐ท',
- 'description': 'South Korea',
- 'category': 'Flags',
- 'aliases': [
- 'kr'
- ],
- 'tags': [
- 'korea'
- ]
- },
- {
- 'emoji': '๐ธ๐ธ',
- 'description': 'South Sudan',
- 'category': 'Flags',
- 'aliases': [
- 'south_sudan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐ธ',
- 'description': 'Spain',
- 'category': 'Flags',
- 'aliases': [
- 'es'
- ],
- 'tags': [
- 'spain'
- ]
- },
- {
- 'emoji': '๐ฑ๐ฐ',
- 'description': 'Sri Lanka',
- 'category': 'Flags',
- 'aliases': [
- 'sri_lanka'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฉ',
- 'description': 'Sudan',
- 'category': 'Flags',
- 'aliases': [
- 'sudan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ท',
- 'description': 'Suriname',
- 'category': 'Flags',
- 'aliases': [
- 'suriname'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ฟ',
- 'description': 'Swaziland',
- 'category': 'Flags',
- 'aliases': [
- 'swaziland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐ช',
- 'description': 'Sweden',
- 'category': 'Flags',
- 'aliases': [
- 'sweden'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐จ๐ญ',
- 'description': 'Switzerland',
- 'category': 'Flags',
- 'aliases': [
- 'switzerland'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ธ๐พ',
- 'description': 'Syria',
- 'category': 'Flags',
- 'aliases': [
- 'syria'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ผ',
- 'description': 'Taiwan',
- 'category': 'Flags',
- 'aliases': [
- 'taiwan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฏ',
- 'description': 'Tajikistan',
- 'category': 'Flags',
- 'aliases': [
- 'tajikistan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฟ',
- 'description': 'Tanzania',
- 'category': 'Flags',
- 'aliases': [
- 'tanzania'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ญ',
- 'description': 'Thailand',
- 'category': 'Flags',
- 'aliases': [
- 'thailand'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฑ',
- 'description': 'Timor-Leste',
- 'category': 'Flags',
- 'aliases': [
- 'timor_leste'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฌ',
- 'description': 'Togo',
- 'category': 'Flags',
- 'aliases': [
- 'togo'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ฐ',
- 'description': 'Tokelau',
- 'category': 'Flags',
- 'aliases': [
- 'tokelau'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ด',
- 'description': 'Tonga',
- 'category': 'Flags',
- 'aliases': [
- 'tonga'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐น',
- 'description': 'Trinidad & Tobago',
- 'category': 'Flags',
- 'aliases': [
- 'trinidad_tobago'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ณ',
- 'description': 'Tunisia',
- 'category': 'Flags',
- 'aliases': [
- 'tunisia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ท',
- 'description': 'Turkey',
- 'category': 'Flags',
- 'aliases': [
- 'tr'
- ],
- 'tags': [
- 'turkey'
- ]
- },
- {
- 'emoji': '๐น๐ฒ',
- 'description': 'Turkmenistan',
- 'category': 'Flags',
- 'aliases': [
- 'turkmenistan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐จ',
- 'description': 'Turks & Caicos Islands',
- 'category': 'Flags',
- 'aliases': [
- 'turks_caicos_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐น๐ป',
- 'description': 'Tuvalu',
- 'category': 'Flags',
- 'aliases': [
- 'tuvalu'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ๐ฌ',
- 'description': 'Uganda',
- 'category': 'Flags',
- 'aliases': [
- 'uganda'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ๐ฆ',
- 'description': 'Ukraine',
- 'category': 'Flags',
- 'aliases': [
- 'ukraine'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฆ๐ช',
- 'description': 'United Arab Emirates',
- 'category': 'Flags',
- 'aliases': [
- 'united_arab_emirates'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฌ๐ง',
- 'description': 'United Kingdom',
- 'category': 'Flags',
- 'aliases': [
- 'gb',
- 'uk'
- ],
- 'tags': [
- 'flag',
- 'british'
- ]
- },
- {
- 'emoji': '๐บ๐ธ',
- 'description': 'United States',
- 'category': 'Flags',
- 'aliases': [
- 'us'
- ],
- 'tags': [
- 'flag',
- 'united',
- 'america'
- ]
- },
- {
- 'emoji': '๐ป๐ฎ',
- 'description': 'U.S. Virgin Islands',
- 'category': 'Flags',
- 'aliases': [
- 'us_virgin_islands'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ๐พ',
- 'description': 'Uruguay',
- 'category': 'Flags',
- 'aliases': [
- 'uruguay'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐บ๐ฟ',
- 'description': 'Uzbekistan',
- 'category': 'Flags',
- 'aliases': [
- 'uzbekistan'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐บ',
- 'description': 'Vanuatu',
- 'category': 'Flags',
- 'aliases': [
- 'vanuatu'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐ฆ',
- 'description': 'Vatican City',
- 'category': 'Flags',
- 'aliases': [
- 'vatican_city'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐ช',
- 'description': 'Venezuela',
- 'category': 'Flags',
- 'aliases': [
- 'venezuela'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ป๐ณ',
- 'description': 'Vietnam',
- 'category': 'Flags',
- 'aliases': [
- 'vietnam'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ผ๐ซ',
- 'description': 'Wallis & Futuna',
- 'category': 'Flags',
- 'aliases': [
- 'wallis_futuna'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ช๐ญ',
- 'description': 'Western Sahara',
- 'category': 'Flags',
- 'aliases': [
- 'western_sahara'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐พ๐ช',
- 'description': 'Yemen',
- 'category': 'Flags',
- 'aliases': [
- 'yemen'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ๐ฒ',
- 'description': 'Zambia',
- 'category': 'Flags',
- 'aliases': [
- 'zambia'
- ],
- 'tags': []
- },
- {
- 'emoji': '๐ฟ๐ผ',
- 'description': 'Zimbabwe',
- 'category': 'Flags',
- 'aliases': [
- 'zimbabwe'
- ],
- 'tags': []
- }
-]
-
-export default emojis
diff --git a/src/muya/lib/ui/emojis/emojisJson.json b/src/muya/lib/ui/emojis/emojisJson.json
new file mode 100644
index 00000000..97f9c820
--- /dev/null
+++ b/src/muya/lib/ui/emojis/emojisJson.json
@@ -0,0 +1,13958 @@
+[
+ {
+ "emoji": "๐",
+ "description": "grinning face",
+ "category": "People",
+ "aliases": [
+ "grinning"
+ ],
+ "tags": [
+ "smile",
+ "happy"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with open mouth",
+ "category": "People",
+ "aliases": [
+ "smiley"
+ ],
+ "tags": [
+ "happy",
+ "joy",
+ "haha"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with open mouth & smiling eyes",
+ "category": "People",
+ "aliases": [
+ "smile"
+ ],
+ "tags": [
+ "happy",
+ "joy",
+ "laugh",
+ "pleased"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "grinning face with smiling eyes",
+ "category": "People",
+ "aliases": [
+ "grin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with open mouth & closed eyes",
+ "category": "People",
+ "aliases": [
+ "laughing",
+ "satisfied"
+ ],
+ "tags": [
+ "happy",
+ "haha"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "smiling face with open mouth & cold sweat",
+ "category": "People",
+ "aliases": [
+ "sweat_smile"
+ ],
+ "tags": [
+ "hot"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with tears of joy",
+ "category": "People",
+ "aliases": [
+ "joy"
+ ],
+ "tags": [
+ "tears"
+ ]
+ },
+ {
+ "emoji": "๐คฃ",
+ "description": "rolling on the floor laughing",
+ "category": "People",
+ "aliases": [
+ "rofl"
+ ],
+ "tags": [
+ "lol",
+ "laughing"
+ ]
+ },
+ {
+ "emoji": "โบ๏ธ",
+ "description": "smiling face",
+ "category": "People",
+ "aliases": [
+ "relaxed"
+ ],
+ "tags": [
+ "blush",
+ "pleased"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with smiling eyes",
+ "category": "People",
+ "aliases": [
+ "blush"
+ ],
+ "tags": [
+ "proud"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with halo",
+ "category": "People",
+ "aliases": [
+ "innocent"
+ ],
+ "tags": [
+ "angel"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "slightly smiling face",
+ "category": "People",
+ "aliases": [
+ "slightly_smiling_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "upside-down face",
+ "category": "People",
+ "aliases": [
+ "upside_down_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "winking face",
+ "category": "People",
+ "aliases": [
+ "wink"
+ ],
+ "tags": [
+ "flirt"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "relieved face",
+ "category": "People",
+ "aliases": [
+ "relieved"
+ ],
+ "tags": [
+ "whew"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with heart-eyes",
+ "category": "People",
+ "aliases": [
+ "heart_eyes"
+ ],
+ "tags": [
+ "love",
+ "crush"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face blowing a kiss",
+ "category": "People",
+ "aliases": [
+ "kissing_heart"
+ ],
+ "tags": [
+ "flirt"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "kissing face",
+ "category": "People",
+ "aliases": [
+ "kissing"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "kissing face with smiling eyes",
+ "category": "People",
+ "aliases": [
+ "kissing_smiling_eyes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "kissing face with closed eyes",
+ "category": "People",
+ "aliases": [
+ "kissing_closed_eyes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "face savouring delicious food",
+ "category": "People",
+ "aliases": [
+ "yum"
+ ],
+ "tags": [
+ "tongue",
+ "lick"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with stuck-out tongue & winking eye",
+ "category": "People",
+ "aliases": [
+ "stuck_out_tongue_winking_eye"
+ ],
+ "tags": [
+ "prank",
+ "silly"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with stuck-out tongue & closed eyes",
+ "category": "People",
+ "aliases": [
+ "stuck_out_tongue_closed_eyes"
+ ],
+ "tags": [
+ "prank"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with stuck-out tongue",
+ "category": "People",
+ "aliases": [
+ "stuck_out_tongue"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "money-mouth face",
+ "category": "People",
+ "aliases": [
+ "money_mouth_face"
+ ],
+ "tags": [
+ "rich"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "hugging face",
+ "category": "People",
+ "aliases": [
+ "hugs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "nerd face",
+ "category": "People",
+ "aliases": [
+ "nerd_face"
+ ],
+ "tags": [
+ "geek",
+ "glasses"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with sunglasses",
+ "category": "People",
+ "aliases": [
+ "sunglasses"
+ ],
+ "tags": [
+ "cool"
+ ]
+ },
+ {
+ "emoji": "๐คก",
+ "description": "clown face",
+ "category": "People",
+ "aliases": [
+ "clown_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค ",
+ "description": "cowboy hat face",
+ "category": "People",
+ "aliases": [
+ "cowboy_hat_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "smirking face",
+ "category": "People",
+ "aliases": [
+ "smirk"
+ ],
+ "tags": [
+ "smug"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "unamused face",
+ "category": "People",
+ "aliases": [
+ "unamused"
+ ],
+ "tags": [
+ "meh"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "disappointed face",
+ "category": "People",
+ "aliases": [
+ "disappointed"
+ ],
+ "tags": [
+ "sad"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "pensive face",
+ "category": "People",
+ "aliases": [
+ "pensive"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "worried face",
+ "category": "People",
+ "aliases": [
+ "worried"
+ ],
+ "tags": [
+ "nervous"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "confused face",
+ "category": "People",
+ "aliases": [
+ "confused"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "slightly frowning face",
+ "category": "People",
+ "aliases": [
+ "slightly_frowning_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โน๏ธ",
+ "description": "frowning face",
+ "category": "People",
+ "aliases": [
+ "frowning_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "persevering face",
+ "category": "People",
+ "aliases": [
+ "persevere"
+ ],
+ "tags": [
+ "struggling"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "confounded face",
+ "category": "People",
+ "aliases": [
+ "confounded"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "tired face",
+ "category": "People",
+ "aliases": [
+ "tired_face"
+ ],
+ "tags": [
+ "upset",
+ "whine"
+ ]
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "weary face",
+ "category": "People",
+ "aliases": [
+ "weary"
+ ],
+ "tags": [
+ "tired"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "face with steam from nose",
+ "category": "People",
+ "aliases": [
+ "triumph"
+ ],
+ "tags": [
+ "smug"
+ ]
+ },
+ {
+ "emoji": "๐ ",
+ "description": "angry face",
+ "category": "People",
+ "aliases": [
+ "angry"
+ ],
+ "tags": [
+ "mad",
+ "annoyed"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "pouting face",
+ "category": "People",
+ "aliases": [
+ "rage",
+ "pout"
+ ],
+ "tags": [
+ "angry"
+ ]
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "face without mouth",
+ "category": "People",
+ "aliases": [
+ "no_mouth"
+ ],
+ "tags": [
+ "mute",
+ "silence"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "neutral face",
+ "category": "People",
+ "aliases": [
+ "neutral_face"
+ ],
+ "tags": [
+ "meh"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "expressionless face",
+ "category": "People",
+ "aliases": [
+ "expressionless"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "hushed face",
+ "category": "People",
+ "aliases": [
+ "hushed"
+ ],
+ "tags": [
+ "silence",
+ "speechless"
+ ]
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "frowning face with open mouth",
+ "category": "People",
+ "aliases": [
+ "frowning"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "anguished face",
+ "category": "People",
+ "aliases": [
+ "anguished"
+ ],
+ "tags": [
+ "stunned"
+ ]
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "face with open mouth",
+ "category": "People",
+ "aliases": [
+ "open_mouth"
+ ],
+ "tags": [
+ "surprise",
+ "impressed",
+ "wow"
+ ]
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "astonished face",
+ "category": "People",
+ "aliases": [
+ "astonished"
+ ],
+ "tags": [
+ "amazed",
+ "gasp"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "dizzy face",
+ "category": "People",
+ "aliases": [
+ "dizzy_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "flushed face",
+ "category": "People",
+ "aliases": [
+ "flushed"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "face screaming in fear",
+ "category": "People",
+ "aliases": [
+ "scream"
+ ],
+ "tags": [
+ "horror",
+ "shocked"
+ ]
+ },
+ {
+ "emoji": "๐จ",
+ "description": "fearful face",
+ "category": "People",
+ "aliases": [
+ "fearful"
+ ],
+ "tags": [
+ "scared",
+ "shocked",
+ "oops"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "face with open mouth & cold sweat",
+ "category": "People",
+ "aliases": [
+ "cold_sweat"
+ ],
+ "tags": [
+ "nervous"
+ ]
+ },
+ {
+ "emoji": "๐ข",
+ "description": "crying face",
+ "category": "People",
+ "aliases": [
+ "cry"
+ ],
+ "tags": [
+ "sad",
+ "tear"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "disappointed but relieved face",
+ "category": "People",
+ "aliases": [
+ "disappointed_relieved"
+ ],
+ "tags": [
+ "phew",
+ "sweat",
+ "nervous"
+ ]
+ },
+ {
+ "emoji": "๐คค",
+ "description": "drooling face",
+ "category": "People",
+ "aliases": [
+ "drooling_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "loudly crying face",
+ "category": "People",
+ "aliases": [
+ "sob"
+ ],
+ "tags": [
+ "sad",
+ "cry",
+ "bawling"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with cold sweat",
+ "category": "People",
+ "aliases": [
+ "sweat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "sleepy face",
+ "category": "People",
+ "aliases": [
+ "sleepy"
+ ],
+ "tags": [
+ "tired"
+ ]
+ },
+ {
+ "emoji": "๐ด",
+ "description": "sleeping face",
+ "category": "People",
+ "aliases": [
+ "sleeping"
+ ],
+ "tags": [
+ "zzz"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "face with rolling eyes",
+ "category": "People",
+ "aliases": [
+ "roll_eyes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "thinking face",
+ "category": "People",
+ "aliases": [
+ "thinking"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฅ",
+ "description": "lying face",
+ "category": "People",
+ "aliases": [
+ "lying_face"
+ ],
+ "tags": [
+ "liar"
+ ]
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "grimacing face",
+ "category": "People",
+ "aliases": [
+ "grimacing"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "zipper-mouth face",
+ "category": "People",
+ "aliases": [
+ "zipper_mouth_face"
+ ],
+ "tags": [
+ "silence",
+ "hush"
+ ]
+ },
+ {
+ "emoji": "๐คข",
+ "description": "nauseated face",
+ "category": "People",
+ "aliases": [
+ "nauseated_face"
+ ],
+ "tags": [
+ "sick",
+ "barf",
+ "disgusted"
+ ]
+ },
+ {
+ "emoji": "๐คง",
+ "description": "sneezing face",
+ "category": "People",
+ "aliases": [
+ "sneezing_face"
+ ],
+ "tags": [
+ "achoo",
+ "sick"
+ ]
+ },
+ {
+ "emoji": "๐ท",
+ "description": "face with medical mask",
+ "category": "People",
+ "aliases": [
+ "mask"
+ ],
+ "tags": [
+ "sick",
+ "ill"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "face with thermometer",
+ "category": "People",
+ "aliases": [
+ "face_with_thermometer"
+ ],
+ "tags": [
+ "sick"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "face with head-bandage",
+ "category": "People",
+ "aliases": [
+ "face_with_head_bandage"
+ ],
+ "tags": [
+ "hurt"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "smiling face with horns",
+ "category": "People",
+ "aliases": [
+ "smiling_imp"
+ ],
+ "tags": [
+ "devil",
+ "evil",
+ "horns"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "angry face with horns",
+ "category": "People",
+ "aliases": [
+ "imp"
+ ],
+ "tags": [
+ "angry",
+ "devil",
+ "evil",
+ "horns"
+ ]
+ },
+ {
+ "emoji": "๐น",
+ "description": "ogre",
+ "category": "People",
+ "aliases": [
+ "japanese_ogre"
+ ],
+ "tags": [
+ "monster"
+ ]
+ },
+ {
+ "emoji": "๐บ",
+ "description": "goblin",
+ "category": "People",
+ "aliases": [
+ "japanese_goblin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "pile of poo",
+ "category": "People",
+ "aliases": [
+ "hankey",
+ "poop",
+ "shit"
+ ],
+ "tags": [
+ "crap"
+ ]
+ },
+ {
+ "emoji": "๐ป",
+ "description": "ghost",
+ "category": "People",
+ "aliases": [
+ "ghost"
+ ],
+ "tags": [
+ "halloween"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "skull",
+ "category": "People",
+ "aliases": [
+ "skull"
+ ],
+ "tags": [
+ "dead",
+ "danger",
+ "poison"
+ ]
+ },
+ {
+ "emoji": "โ ๏ธ",
+ "description": "skull and crossbones",
+ "category": "People",
+ "aliases": [
+ "skull_and_crossbones"
+ ],
+ "tags": [
+ "danger",
+ "pirate"
+ ]
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "alien",
+ "category": "People",
+ "aliases": [
+ "alien"
+ ],
+ "tags": [
+ "ufo"
+ ]
+ },
+ {
+ "emoji": "๐พ",
+ "description": "alien monster",
+ "category": "People",
+ "aliases": [
+ "space_invader"
+ ],
+ "tags": [
+ "game",
+ "retro"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "robot face",
+ "category": "People",
+ "aliases": [
+ "robot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "jack-o-lantern",
+ "category": "People",
+ "aliases": [
+ "jack_o_lantern"
+ ],
+ "tags": [
+ "halloween"
+ ]
+ },
+ {
+ "emoji": "๐บ",
+ "description": "smiling cat face with open mouth",
+ "category": "People",
+ "aliases": [
+ "smiley_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "grinning cat face with smiling eyes",
+ "category": "People",
+ "aliases": [
+ "smile_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "cat face with tears of joy",
+ "category": "People",
+ "aliases": [
+ "joy_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "smiling cat face with heart-eyes",
+ "category": "People",
+ "aliases": [
+ "heart_eyes_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "cat face with wry smile",
+ "category": "People",
+ "aliases": [
+ "smirk_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "kissing cat face with closed eyes",
+ "category": "People",
+ "aliases": [
+ "kissing_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "weary cat face",
+ "category": "People",
+ "aliases": [
+ "scream_cat"
+ ],
+ "tags": [
+ "horror"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "crying cat face",
+ "category": "People",
+ "aliases": [
+ "crying_cat_face"
+ ],
+ "tags": [
+ "sad",
+ "tear"
+ ]
+ },
+ {
+ "emoji": "๐พ",
+ "description": "pouting cat face",
+ "category": "People",
+ "aliases": [
+ "pouting_cat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "open hands",
+ "category": "People",
+ "aliases": [
+ "open_hands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "raising hands",
+ "category": "People",
+ "aliases": [
+ "raised_hands"
+ ],
+ "tags": [
+ "hooray"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "clapping hands",
+ "category": "People",
+ "aliases": [
+ "clap"
+ ],
+ "tags": [
+ "praise",
+ "applause"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "folded hands",
+ "category": "People",
+ "aliases": [
+ "pray"
+ ],
+ "tags": [
+ "please",
+ "hope",
+ "wish"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "handshake",
+ "category": "People",
+ "aliases": [
+ "handshake"
+ ],
+ "tags": [
+ "deal"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "thumbs up",
+ "category": "People",
+ "aliases": [
+ "+1",
+ "thumbsup"
+ ],
+ "tags": [
+ "approve",
+ "ok"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "thumbs down",
+ "category": "People",
+ "aliases": [
+ "-1",
+ "thumbsdown"
+ ],
+ "tags": [
+ "disapprove",
+ "bury"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "oncoming fist",
+ "category": "People",
+ "aliases": [
+ "fist_oncoming",
+ "facepunch",
+ "punch"
+ ],
+ "tags": [
+ "attack"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "raised fist",
+ "category": "People",
+ "aliases": [
+ "fist_raised",
+ "fist"
+ ],
+ "tags": [
+ "power"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "left-facing fist",
+ "category": "People",
+ "aliases": [
+ "fist_left"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "right-facing fist",
+ "category": "People",
+ "aliases": [
+ "fist_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "crossed fingers",
+ "category": "People",
+ "aliases": [
+ "crossed_fingers"
+ ],
+ "tags": [
+ "luck",
+ "hopeful"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "victory hand",
+ "category": "People",
+ "aliases": [
+ "v"
+ ],
+ "tags": [
+ "victory",
+ "peace"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "sign of the horns",
+ "category": "People",
+ "aliases": [
+ "metal"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "OK hand",
+ "category": "People",
+ "aliases": [
+ "ok_hand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "backhand index pointing left",
+ "category": "People",
+ "aliases": [
+ "point_left"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "backhand index pointing right",
+ "category": "People",
+ "aliases": [
+ "point_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "backhand index pointing up",
+ "category": "People",
+ "aliases": [
+ "point_up_2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "backhand index pointing down",
+ "category": "People",
+ "aliases": [
+ "point_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "index pointing up",
+ "category": "People",
+ "aliases": [
+ "point_up"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "raised hand",
+ "category": "People",
+ "aliases": [
+ "hand",
+ "raised_hand"
+ ],
+ "tags": [
+ "highfive",
+ "stop"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "raised back of hand",
+ "category": "People",
+ "aliases": [
+ "raised_back_of_hand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "raised hand with fingers splayed",
+ "category": "People",
+ "aliases": [
+ "raised_hand_with_fingers_splayed"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "vulcan salute",
+ "category": "People",
+ "aliases": [
+ "vulcan_salute"
+ ],
+ "tags": [
+ "prosper",
+ "spock"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "waving hand",
+ "category": "People",
+ "aliases": [
+ "wave"
+ ],
+ "tags": [
+ "goodbye"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "call me hand",
+ "category": "People",
+ "aliases": [
+ "call_me_hand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "flexed biceps",
+ "category": "People",
+ "aliases": [
+ "muscle"
+ ],
+ "tags": [
+ "flex",
+ "bicep",
+ "strong",
+ "workout"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "middle finger",
+ "category": "People",
+ "aliases": [
+ "middle_finger",
+ "fu"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "writing hand",
+ "category": "People",
+ "aliases": [
+ "writing_hand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คณ",
+ "description": "selfie",
+ "category": "People",
+ "aliases": [
+ "selfie"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
",
+ "description": "nail polish",
+ "category": "People",
+ "aliases": [
+ "nail_care"
+ ],
+ "tags": [
+ "beauty",
+ "manicure"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "ring",
+ "category": "People",
+ "aliases": [
+ "ring"
+ ],
+ "tags": [
+ "wedding",
+ "marriage",
+ "engaged"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "lipstick",
+ "category": "People",
+ "aliases": [
+ "lipstick"
+ ],
+ "tags": [
+ "makeup"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "kiss mark",
+ "category": "People",
+ "aliases": [
+ "kiss"
+ ],
+ "tags": [
+ "lipstick"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "mouth",
+ "category": "People",
+ "aliases": [
+ "lips"
+ ],
+ "tags": [
+ "kiss"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "tongue",
+ "category": "People",
+ "aliases": [
+ "tongue"
+ ],
+ "tags": [
+ "taste"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "ear",
+ "category": "People",
+ "aliases": [
+ "ear"
+ ],
+ "tags": [
+ "hear",
+ "sound",
+ "listen"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "nose",
+ "category": "People",
+ "aliases": [
+ "nose"
+ ],
+ "tags": [
+ "smell"
+ ]
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "footprints",
+ "category": "People",
+ "aliases": [
+ "footprints"
+ ],
+ "tags": [
+ "feet",
+ "tracks"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "eye",
+ "category": "People",
+ "aliases": [
+ "eye"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "eyes",
+ "category": "People",
+ "aliases": [
+ "eyes"
+ ],
+ "tags": [
+ "look",
+ "see",
+ "watch"
+ ]
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "speaking head",
+ "category": "People",
+ "aliases": [
+ "speaking_head"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "bust in silhouette",
+ "category": "People",
+ "aliases": [
+ "bust_in_silhouette"
+ ],
+ "tags": [
+ "user"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "busts in silhouette",
+ "category": "People",
+ "aliases": [
+ "busts_in_silhouette"
+ ],
+ "tags": [
+ "users",
+ "group",
+ "team"
+ ]
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "baby",
+ "category": "People",
+ "aliases": [
+ "baby"
+ ],
+ "tags": [
+ "child",
+ "newborn"
+ ]
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "boy",
+ "category": "People",
+ "aliases": [
+ "boy"
+ ],
+ "tags": [
+ "child"
+ ]
+ },
+ {
+ "emoji": "๐ง",
+ "description": "girl",
+ "category": "People",
+ "aliases": [
+ "girl"
+ ],
+ "tags": [
+ "child"
+ ]
+ },
+ {
+ "emoji": "๐จ",
+ "description": "man",
+ "category": "People",
+ "aliases": [
+ "man"
+ ],
+ "tags": [
+ "mustache",
+ "father",
+ "dad"
+ ]
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "woman",
+ "category": "People",
+ "aliases": [
+ "woman"
+ ],
+ "tags": [
+ "girls"
+ ]
+ },
+ {
+ "emoji": "๐ฑโโ",
+ "description": "blond-haired woman",
+ "category": "People",
+ "aliases": [
+ "blonde_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "blond-haired person",
+ "category": "People",
+ "aliases": [
+ "blonde_man",
+ "person_with_blond_hair"
+ ],
+ "tags": [
+ "boy"
+ ]
+ },
+ {
+ "emoji": "๐ด",
+ "description": "old man",
+ "category": "People",
+ "aliases": [
+ "older_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "old woman",
+ "category": "People",
+ "aliases": [
+ "older_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "man with Chinese cap",
+ "category": "People",
+ "aliases": [
+ "man_with_gua_pi_mao"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณโโ",
+ "description": "woman wearing turban",
+ "category": "People",
+ "aliases": [
+ "woman_with_turban"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "person wearing turban",
+ "category": "People",
+ "aliases": [
+ "man_with_turban"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎโโ",
+ "description": "woman police officer",
+ "category": "People",
+ "aliases": [
+ "policewoman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "police officer",
+ "category": "People",
+ "aliases": [
+ "policeman",
+ "cop"
+ ],
+ "tags": [
+ "police",
+ "law"
+ ]
+ },
+ {
+ "emoji": "๐ทโโ",
+ "description": "woman construction worker",
+ "category": "People",
+ "aliases": [
+ "construction_worker_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "construction worker",
+ "category": "People",
+ "aliases": [
+ "construction_worker_man",
+ "construction_worker"
+ ],
+ "tags": [
+ "helmet"
+ ]
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "woman guard",
+ "category": "People",
+ "aliases": [
+ "guardswoman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "guard",
+ "category": "People",
+ "aliases": [
+ "guardsman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๏ธโโ๏ธ",
+ "description": "woman detective",
+ "category": "People",
+ "aliases": [
+ "female_detective"
+ ],
+ "tags": [
+ "sleuth"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "detective",
+ "category": "People",
+ "aliases": [
+ "male_detective",
+ "detective"
+ ],
+ "tags": [
+ "sleuth"
+ ]
+ },
+ {
+ "emoji": "๐ฉโโ",
+ "description": "woman health worker",
+ "category": "People",
+ "aliases": [
+ "woman_health_worker"
+ ],
+ "tags": [
+ "doctor",
+ "nurse"
+ ]
+ },
+ {
+ "emoji": "๐จโโ",
+ "description": "man health worker",
+ "category": "People",
+ "aliases": [
+ "man_health_worker"
+ ],
+ "tags": [
+ "doctor",
+ "nurse"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐พ",
+ "description": "woman farmer",
+ "category": "People",
+ "aliases": [
+ "woman_farmer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐พ",
+ "description": "man farmer",
+ "category": "People",
+ "aliases": [
+ "man_farmer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ณ",
+ "description": "woman cook",
+ "category": "People",
+ "aliases": [
+ "woman_cook"
+ ],
+ "tags": [
+ "chef"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ณ",
+ "description": "man cook",
+ "category": "People",
+ "aliases": [
+ "man_cook"
+ ],
+ "tags": [
+ "chef"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐",
+ "description": "woman student",
+ "category": "People",
+ "aliases": [
+ "woman_student"
+ ],
+ "tags": [
+ "graduation"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐",
+ "description": "man student",
+ "category": "People",
+ "aliases": [
+ "man_student"
+ ],
+ "tags": [
+ "graduation"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐ค",
+ "description": "woman singer",
+ "category": "People",
+ "aliases": [
+ "woman_singer"
+ ],
+ "tags": [
+ "rockstar"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ค",
+ "description": "man singer",
+ "category": "People",
+ "aliases": [
+ "man_singer"
+ ],
+ "tags": [
+ "rockstar"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐ซ",
+ "description": "woman teacher",
+ "category": "People",
+ "aliases": [
+ "woman_teacher"
+ ],
+ "tags": [
+ "school",
+ "professor"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ซ",
+ "description": "man teacher",
+ "category": "People",
+ "aliases": [
+ "man_teacher"
+ ],
+ "tags": [
+ "school",
+ "professor"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐ญ",
+ "description": "woman factory worker",
+ "category": "People",
+ "aliases": [
+ "woman_factory_worker"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ญ",
+ "description": "man factory worker",
+ "category": "People",
+ "aliases": [
+ "man_factory_worker"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ป",
+ "description": "woman technologist",
+ "category": "People",
+ "aliases": [
+ "woman_technologist"
+ ],
+ "tags": [
+ "coder"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ป",
+ "description": "man technologist",
+ "category": "People",
+ "aliases": [
+ "man_technologist"
+ ],
+ "tags": [
+ "coder"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐ผ",
+ "description": "woman office worker",
+ "category": "People",
+ "aliases": [
+ "woman_office_worker"
+ ],
+ "tags": [
+ "business"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ผ",
+ "description": "man office worker",
+ "category": "People",
+ "aliases": [
+ "man_office_worker"
+ ],
+ "tags": [
+ "business"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐ง",
+ "description": "woman mechanic",
+ "category": "People",
+ "aliases": [
+ "woman_mechanic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ง",
+ "description": "man mechanic",
+ "category": "People",
+ "aliases": [
+ "man_mechanic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฌ",
+ "description": "woman scientist",
+ "category": "People",
+ "aliases": [
+ "woman_scientist"
+ ],
+ "tags": [
+ "research"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ฌ",
+ "description": "man scientist",
+ "category": "People",
+ "aliases": [
+ "man_scientist"
+ ],
+ "tags": [
+ "research"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐จ",
+ "description": "woman artist",
+ "category": "People",
+ "aliases": [
+ "woman_artist"
+ ],
+ "tags": [
+ "painter"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐จ",
+ "description": "man artist",
+ "category": "People",
+ "aliases": [
+ "man_artist"
+ ],
+ "tags": [
+ "painter"
+ ]
+ },
+ {
+ "emoji": "๐ฉโ๐",
+ "description": "woman firefighter",
+ "category": "People",
+ "aliases": [
+ "woman_firefighter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐",
+ "description": "man firefighter",
+ "category": "People",
+ "aliases": [
+ "man_firefighter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโโ",
+ "description": "woman pilot",
+ "category": "People",
+ "aliases": [
+ "woman_pilot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโโ",
+ "description": "man pilot",
+ "category": "People",
+ "aliases": [
+ "man_pilot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐",
+ "description": "woman astronaut",
+ "category": "People",
+ "aliases": [
+ "woman_astronaut"
+ ],
+ "tags": [
+ "space"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐",
+ "description": "man astronaut",
+ "category": "People",
+ "aliases": [
+ "man_astronaut"
+ ],
+ "tags": [
+ "space"
+ ]
+ },
+ {
+ "emoji": "๐ฉโโ",
+ "description": "woman judge",
+ "category": "People",
+ "aliases": [
+ "woman_judge"
+ ],
+ "tags": [
+ "justice"
+ ]
+ },
+ {
+ "emoji": "๐จโโ",
+ "description": "man judge",
+ "category": "People",
+ "aliases": [
+ "man_judge"
+ ],
+ "tags": [
+ "justice"
+ ]
+ },
+ {
+ "emoji": "๐คถ",
+ "description": "Mrs. Claus",
+ "category": "People",
+ "aliases": [
+ "mrs_claus"
+ ],
+ "tags": [
+ "santa"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "Santa Claus",
+ "category": "People",
+ "aliases": [
+ "santa"
+ ],
+ "tags": [
+ "christmas"
+ ]
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "princess",
+ "category": "People",
+ "aliases": [
+ "princess"
+ ],
+ "tags": [
+ "blonde",
+ "crown",
+ "royal"
+ ]
+ },
+ {
+ "emoji": "๐คด",
+ "description": "prince",
+ "category": "People",
+ "aliases": [
+ "prince"
+ ],
+ "tags": [
+ "crown",
+ "royal"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "bride with veil",
+ "category": "People",
+ "aliases": [
+ "bride_with_veil"
+ ],
+ "tags": [
+ "marriage",
+ "wedding"
+ ]
+ },
+ {
+ "emoji": "๐คต",
+ "description": "man in tuxedo",
+ "category": "People",
+ "aliases": [
+ "man_in_tuxedo"
+ ],
+ "tags": [
+ "groom",
+ "marriage",
+ "wedding"
+ ]
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "baby angel",
+ "category": "People",
+ "aliases": [
+ "angel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฐ",
+ "description": "pregnant woman",
+ "category": "People",
+ "aliases": [
+ "pregnant_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "woman bowing",
+ "category": "People",
+ "aliases": [
+ "bowing_woman"
+ ],
+ "tags": [
+ "respect",
+ "thanks"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "person bowing",
+ "category": "People",
+ "aliases": [
+ "bowing_man",
+ "bow"
+ ],
+ "tags": [
+ "respect",
+ "thanks"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "person tipping hand",
+ "category": "People",
+ "aliases": [
+ "tipping_hand_woman",
+ "information_desk_person",
+ "sassy_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man tipping hand",
+ "category": "People",
+ "aliases": [
+ "tipping_hand_man",
+ "sassy_man"
+ ],
+ "tags": [
+ "information"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "person gesturing NO",
+ "category": "People",
+ "aliases": [
+ "no_good_woman",
+ "no_good",
+ "ng_woman"
+ ],
+ "tags": [
+ "stop",
+ "halt"
+ ]
+ },
+ {
+ "emoji": "๐
โโ",
+ "description": "man gesturing NO",
+ "category": "People",
+ "aliases": [
+ "no_good_man",
+ "ng_man"
+ ],
+ "tags": [
+ "stop",
+ "halt"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "person gesturing OK",
+ "category": "People",
+ "aliases": [
+ "ok_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man gesturing OK",
+ "category": "People",
+ "aliases": [
+ "ok_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person raising hand",
+ "category": "People",
+ "aliases": [
+ "raising_hand_woman",
+ "raising_hand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man raising hand",
+ "category": "People",
+ "aliases": [
+ "raising_hand_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฆโโ",
+ "description": "woman facepalming",
+ "category": "People",
+ "aliases": [
+ "woman_facepalming"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฆโโ",
+ "description": "man facepalming",
+ "category": "People",
+ "aliases": [
+ "man_facepalming"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คทโโ",
+ "description": "woman shrugging",
+ "category": "People",
+ "aliases": [
+ "woman_shrugging"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คทโโ",
+ "description": "man shrugging",
+ "category": "People",
+ "aliases": [
+ "man_shrugging"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person pouting",
+ "category": "People",
+ "aliases": [
+ "pouting_woman",
+ "person_with_pouting_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man pouting",
+ "category": "People",
+ "aliases": [
+ "pouting_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person frowning",
+ "category": "People",
+ "aliases": [
+ "frowning_woman",
+ "person_frowning"
+ ],
+ "tags": [
+ "sad"
+ ]
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man frowning",
+ "category": "People",
+ "aliases": [
+ "frowning_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person getting haircut",
+ "category": "People",
+ "aliases": [
+ "haircut_woman",
+ "haircut"
+ ],
+ "tags": [
+ "beauty"
+ ]
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man getting haircut",
+ "category": "People",
+ "aliases": [
+ "haircut_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person getting massage",
+ "category": "People",
+ "aliases": [
+ "massage_woman",
+ "massage"
+ ],
+ "tags": [
+ "spa"
+ ]
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "man getting massage",
+ "category": "People",
+ "aliases": [
+ "massage_man"
+ ],
+ "tags": [
+ "spa"
+ ]
+ },
+ {
+ "emoji": "๐ด",
+ "description": "man in business suit levitating",
+ "category": "People",
+ "aliases": [
+ "business_suit_levitating"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "woman dancing",
+ "category": "People",
+ "aliases": [
+ "dancer"
+ ],
+ "tags": [
+ "dress"
+ ]
+ },
+ {
+ "emoji": "๐บ",
+ "description": "man dancing",
+ "category": "People",
+ "aliases": [
+ "man_dancing"
+ ],
+ "tags": [
+ "dancer"
+ ]
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "people with bunny ears partying",
+ "category": "People",
+ "aliases": [
+ "dancing_women",
+ "dancers"
+ ],
+ "tags": [
+ "bunny"
+ ]
+ },
+ {
+ "emoji": "๐ฏโโ",
+ "description": "men with bunny ears partying",
+ "category": "People",
+ "aliases": [
+ "dancing_men"
+ ],
+ "tags": [
+ "bunny"
+ ]
+ },
+ {
+ "emoji": "๐ถโโ",
+ "description": "woman walking",
+ "category": "People",
+ "aliases": [
+ "walking_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "person walking",
+ "category": "People",
+ "aliases": [
+ "walking_man",
+ "walking"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "woman running",
+ "category": "People",
+ "aliases": [
+ "running_woman"
+ ],
+ "tags": [
+ "exercise",
+ "workout",
+ "marathon"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "person running",
+ "category": "People",
+ "aliases": [
+ "running_man",
+ "runner",
+ "running"
+ ],
+ "tags": [
+ "exercise",
+ "workout",
+ "marathon"
+ ]
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "man and woman holding hands",
+ "category": "People",
+ "aliases": [
+ "couple"
+ ],
+ "tags": [
+ "date"
+ ]
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "two women holding hands",
+ "category": "People",
+ "aliases": [
+ "two_women_holding_hands"
+ ],
+ "tags": [
+ "couple",
+ "date"
+ ]
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "two men holding hands",
+ "category": "People",
+ "aliases": [
+ "two_men_holding_hands"
+ ],
+ "tags": [
+ "couple",
+ "date"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "couple with heart",
+ "category": "People",
+ "aliases": [
+ "couple_with_heart_woman_man",
+ "couple_with_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโโค๏ธโ๐ฉ",
+ "description": "couple with heart: woman, woman",
+ "category": "People",
+ "aliases": [
+ "couple_with_heart_woman_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโโค๏ธโ๐จ",
+ "description": "couple with heart: man, man",
+ "category": "People",
+ "aliases": [
+ "couple_with_heart_man_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "kiss",
+ "category": "People",
+ "aliases": [
+ "couplekiss_man_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโโค๏ธโ๐โ๐ฉ",
+ "description": "kiss: woman, woman",
+ "category": "People",
+ "aliases": [
+ "couplekiss_woman_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโโค๏ธโ๐โ๐จ",
+ "description": "kiss: man, man",
+ "category": "People",
+ "aliases": [
+ "couplekiss_man_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "family",
+ "category": "People",
+ "aliases": [
+ "family_man_woman_boy",
+ "family"
+ ],
+ "tags": [
+ "home",
+ "parents",
+ "child"
+ ]
+ },
+ {
+ "emoji": "๐จโ๐ฉโ๐ง",
+ "description": "family: man, woman, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_woman_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ฉโ๐งโ๐ฆ",
+ "description": "family: man, woman, girl, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_woman_girl_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ฉโ๐ฆโ๐ฆ",
+ "description": "family: man, woman, boy, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_woman_boy_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ฉโ๐งโ๐ง",
+ "description": "family: man, woman, girl, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_woman_girl_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฉโ๐ฆ",
+ "description": "family: woman, woman, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_woman_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฉโ๐ง",
+ "description": "family: woman, woman, girl",
+ "category": "People",
+ "aliases": [
+ "family_woman_woman_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฉโ๐งโ๐ฆ",
+ "description": "family: woman, woman, girl, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_woman_girl_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฉโ๐ฆโ๐ฆ",
+ "description": "family: woman, woman, boy, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_woman_boy_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฉโ๐งโ๐ง",
+ "description": "family: woman, woman, girl, girl",
+ "category": "People",
+ "aliases": [
+ "family_woman_woman_girl_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐จโ๐ฆ",
+ "description": "family: man, man, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_man_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐จโ๐ง",
+ "description": "family: man, man, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_man_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐จโ๐งโ๐ฆ",
+ "description": "family: man, man, girl, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_man_girl_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐จโ๐ฆโ๐ฆ",
+ "description": "family: man, man, boy, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_man_boy_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐จโ๐งโ๐ง",
+ "description": "family: man, man, girl, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_man_girl_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฆ",
+ "description": "family: woman, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ง",
+ "description": "family: woman, girl",
+ "category": "People",
+ "aliases": [
+ "family_woman_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐งโ๐ฆ",
+ "description": "family: woman, girl, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_girl_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐ฆโ๐ฆ",
+ "description": "family: woman, boy, boy",
+ "category": "People",
+ "aliases": [
+ "family_woman_boy_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉโ๐งโ๐ง",
+ "description": "family: woman, girl, girl",
+ "category": "People",
+ "aliases": [
+ "family_woman_girl_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ฆ",
+ "description": "family: man, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ง",
+ "description": "family: man, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐งโ๐ฆ",
+ "description": "family: man, girl, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_girl_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐ฆโ๐ฆ",
+ "description": "family: man, boy, boy",
+ "category": "People",
+ "aliases": [
+ "family_man_boy_boy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จโ๐งโ๐ง",
+ "description": "family: man, girl, girl",
+ "category": "People",
+ "aliases": [
+ "family_man_girl_girl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "womanโs clothes",
+ "category": "People",
+ "aliases": [
+ "womans_clothes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "t-shirt",
+ "category": "People",
+ "aliases": [
+ "shirt",
+ "tshirt"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "jeans",
+ "category": "People",
+ "aliases": [
+ "jeans"
+ ],
+ "tags": [
+ "pants"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "necktie",
+ "category": "People",
+ "aliases": [
+ "necktie"
+ ],
+ "tags": [
+ "shirt",
+ "formal"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "dress",
+ "category": "People",
+ "aliases": [
+ "dress"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bikini",
+ "category": "People",
+ "aliases": [
+ "bikini"
+ ],
+ "tags": [
+ "beach"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "kimono",
+ "category": "People",
+ "aliases": [
+ "kimono"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "high-heeled shoe",
+ "category": "People",
+ "aliases": [
+ "high_heel"
+ ],
+ "tags": [
+ "shoe"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "womanโs sandal",
+ "category": "People",
+ "aliases": [
+ "sandal"
+ ],
+ "tags": [
+ "shoe"
+ ]
+ },
+ {
+ "emoji": "๐ข",
+ "description": "womanโs boot",
+ "category": "People",
+ "aliases": [
+ "boot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "manโs shoe",
+ "category": "People",
+ "aliases": [
+ "mans_shoe",
+ "shoe"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "running shoe",
+ "category": "People",
+ "aliases": [
+ "athletic_shoe"
+ ],
+ "tags": [
+ "sneaker",
+ "sport",
+ "running"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "womanโs hat",
+ "category": "People",
+ "aliases": [
+ "womans_hat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "top hat",
+ "category": "People",
+ "aliases": [
+ "tophat"
+ ],
+ "tags": [
+ "hat",
+ "classy"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "graduation cap",
+ "category": "People",
+ "aliases": [
+ "mortar_board"
+ ],
+ "tags": [
+ "education",
+ "college",
+ "university",
+ "graduation"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "crown",
+ "category": "People",
+ "aliases": [
+ "crown"
+ ],
+ "tags": [
+ "king",
+ "queen",
+ "royal"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "rescue workerโs helmet",
+ "category": "People",
+ "aliases": [
+ "rescue_worker_helmet"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "school backpack",
+ "category": "People",
+ "aliases": [
+ "school_satchel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "clutch bag",
+ "category": "People",
+ "aliases": [
+ "pouch"
+ ],
+ "tags": [
+ "bag"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "purse",
+ "category": "People",
+ "aliases": [
+ "purse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "handbag",
+ "category": "People",
+ "aliases": [
+ "handbag"
+ ],
+ "tags": [
+ "bag"
+ ]
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "briefcase",
+ "category": "People",
+ "aliases": [
+ "briefcase"
+ ],
+ "tags": [
+ "business"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "glasses",
+ "category": "People",
+ "aliases": [
+ "eyeglasses"
+ ],
+ "tags": [
+ "glasses"
+ ]
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "sunglasses",
+ "category": "People",
+ "aliases": [
+ "dark_sunglasses"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "closed umbrella",
+ "category": "People",
+ "aliases": [
+ "closed_umbrella"
+ ],
+ "tags": [
+ "weather",
+ "rain"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "umbrella",
+ "category": "People",
+ "aliases": [
+ "open_umbrella"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "dog face",
+ "category": "Nature",
+ "aliases": [
+ "dog"
+ ],
+ "tags": [
+ "pet"
+ ]
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "cat face",
+ "category": "Nature",
+ "aliases": [
+ "cat"
+ ],
+ "tags": [
+ "pet"
+ ]
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "mouse face",
+ "category": "Nature",
+ "aliases": [
+ "mouse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "hamster face",
+ "category": "Nature",
+ "aliases": [
+ "hamster"
+ ],
+ "tags": [
+ "pet"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "rabbit face",
+ "category": "Nature",
+ "aliases": [
+ "rabbit"
+ ],
+ "tags": [
+ "bunny"
+ ]
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "fox face",
+ "category": "Nature",
+ "aliases": [
+ "fox_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "bear face",
+ "category": "Nature",
+ "aliases": [
+ "bear"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "panda face",
+ "category": "Nature",
+ "aliases": [
+ "panda_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "koala",
+ "category": "Nature",
+ "aliases": [
+ "koala"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "tiger face",
+ "category": "Nature",
+ "aliases": [
+ "tiger"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "lion face",
+ "category": "Nature",
+ "aliases": [
+ "lion"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "cow face",
+ "category": "Nature",
+ "aliases": [
+ "cow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "pig face",
+ "category": "Nature",
+ "aliases": [
+ "pig"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "pig nose",
+ "category": "Nature",
+ "aliases": [
+ "pig_nose"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "frog face",
+ "category": "Nature",
+ "aliases": [
+ "frog"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "monkey face",
+ "category": "Nature",
+ "aliases": [
+ "monkey_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "see-no-evil monkey",
+ "category": "Nature",
+ "aliases": [
+ "see_no_evil"
+ ],
+ "tags": [
+ "monkey",
+ "blind",
+ "ignore"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "hear-no-evil monkey",
+ "category": "Nature",
+ "aliases": [
+ "hear_no_evil"
+ ],
+ "tags": [
+ "monkey",
+ "deaf"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "speak-no-evil monkey",
+ "category": "Nature",
+ "aliases": [
+ "speak_no_evil"
+ ],
+ "tags": [
+ "monkey",
+ "mute",
+ "hush"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "monkey",
+ "category": "Nature",
+ "aliases": [
+ "monkey"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "chicken",
+ "category": "Nature",
+ "aliases": [
+ "chicken"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "penguin",
+ "category": "Nature",
+ "aliases": [
+ "penguin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "bird",
+ "category": "Nature",
+ "aliases": [
+ "bird"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "baby chick",
+ "category": "Nature",
+ "aliases": [
+ "baby_chick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "hatching chick",
+ "category": "Nature",
+ "aliases": [
+ "hatching_chick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "front-facing baby chick",
+ "category": "Nature",
+ "aliases": [
+ "hatched_chick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "duck",
+ "category": "Nature",
+ "aliases": [
+ "duck"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ
",
+ "description": "eagle",
+ "category": "Nature",
+ "aliases": [
+ "eagle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "owl",
+ "category": "Nature",
+ "aliases": [
+ "owl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "bat",
+ "category": "Nature",
+ "aliases": [
+ "bat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "wolf face",
+ "category": "Nature",
+ "aliases": [
+ "wolf"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "boar",
+ "category": "Nature",
+ "aliases": [
+ "boar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "horse face",
+ "category": "Nature",
+ "aliases": [
+ "horse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "unicorn face",
+ "category": "Nature",
+ "aliases": [
+ "unicorn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "honeybee",
+ "category": "Nature",
+ "aliases": [
+ "bee",
+ "honeybee"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bug",
+ "category": "Nature",
+ "aliases": [
+ "bug"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "butterfly",
+ "category": "Nature",
+ "aliases": [
+ "butterfly"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "snail",
+ "category": "Nature",
+ "aliases": [
+ "snail"
+ ],
+ "tags": [
+ "slow"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "spiral shell",
+ "category": "Nature",
+ "aliases": [
+ "shell"
+ ],
+ "tags": [
+ "sea",
+ "beach"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "lady beetle",
+ "category": "Nature",
+ "aliases": [
+ "beetle"
+ ],
+ "tags": [
+ "bug"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "ant",
+ "category": "Nature",
+ "aliases": [
+ "ant"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "spider",
+ "category": "Nature",
+ "aliases": [
+ "spider"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "spider web",
+ "category": "Nature",
+ "aliases": [
+ "spider_web"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "turtle",
+ "category": "Nature",
+ "aliases": [
+ "turtle"
+ ],
+ "tags": [
+ "slow"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "snake",
+ "category": "Nature",
+ "aliases": [
+ "snake"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "lizard",
+ "category": "Nature",
+ "aliases": [
+ "lizard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "scorpion",
+ "category": "Nature",
+ "aliases": [
+ "scorpion"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "crab",
+ "category": "Nature",
+ "aliases": [
+ "crab"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "squid",
+ "category": "Nature",
+ "aliases": [
+ "squid"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "octopus",
+ "category": "Nature",
+ "aliases": [
+ "octopus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "shrimp",
+ "category": "Nature",
+ "aliases": [
+ "shrimp"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "tropical fish",
+ "category": "Nature",
+ "aliases": [
+ "tropical_fish"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "fish",
+ "category": "Nature",
+ "aliases": [
+ "fish"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "blowfish",
+ "category": "Nature",
+ "aliases": [
+ "blowfish"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "dolphin",
+ "category": "Nature",
+ "aliases": [
+ "dolphin",
+ "flipper"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "shark",
+ "category": "Nature",
+ "aliases": [
+ "shark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "spouting whale",
+ "category": "Nature",
+ "aliases": [
+ "whale"
+ ],
+ "tags": [
+ "sea"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "whale",
+ "category": "Nature",
+ "aliases": [
+ "whale2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "crocodile",
+ "category": "Nature",
+ "aliases": [
+ "crocodile"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "leopard",
+ "category": "Nature",
+ "aliases": [
+ "leopard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
",
+ "description": "tiger",
+ "category": "Nature",
+ "aliases": [
+ "tiger2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "water buffalo",
+ "category": "Nature",
+ "aliases": [
+ "water_buffalo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ox",
+ "category": "Nature",
+ "aliases": [
+ "ox"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cow",
+ "category": "Nature",
+ "aliases": [
+ "cow2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "deer",
+ "category": "Nature",
+ "aliases": [
+ "deer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "camel",
+ "category": "Nature",
+ "aliases": [
+ "dromedary_camel"
+ ],
+ "tags": [
+ "desert"
+ ]
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "two-hump camel",
+ "category": "Nature",
+ "aliases": [
+ "camel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "elephant",
+ "category": "Nature",
+ "aliases": [
+ "elephant"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "rhinoceros",
+ "category": "Nature",
+ "aliases": [
+ "rhinoceros"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "gorilla",
+ "category": "Nature",
+ "aliases": [
+ "gorilla"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "horse",
+ "category": "Nature",
+ "aliases": [
+ "racehorse"
+ ],
+ "tags": [
+ "speed"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "pig",
+ "category": "Nature",
+ "aliases": [
+ "pig2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "goat",
+ "category": "Nature",
+ "aliases": [
+ "goat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ram",
+ "category": "Nature",
+ "aliases": [
+ "ram"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sheep",
+ "category": "Nature",
+ "aliases": [
+ "sheep"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "dog",
+ "category": "Nature",
+ "aliases": [
+ "dog2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "poodle",
+ "category": "Nature",
+ "aliases": [
+ "poodle"
+ ],
+ "tags": [
+ "dog"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "cat",
+ "category": "Nature",
+ "aliases": [
+ "cat2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rooster",
+ "category": "Nature",
+ "aliases": [
+ "rooster"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "turkey",
+ "category": "Nature",
+ "aliases": [
+ "turkey"
+ ],
+ "tags": [
+ "thanksgiving"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "dove",
+ "category": "Nature",
+ "aliases": [
+ "dove"
+ ],
+ "tags": [
+ "peace"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "rabbit",
+ "category": "Nature",
+ "aliases": [
+ "rabbit2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "mouse",
+ "category": "Nature",
+ "aliases": [
+ "mouse2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rat",
+ "category": "Nature",
+ "aliases": [
+ "rat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "chipmunk",
+ "category": "Nature",
+ "aliases": [
+ "chipmunk"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ",
+ "description": "paw prints",
+ "category": "Nature",
+ "aliases": [
+ "feet",
+ "paw_prints"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "dragon",
+ "category": "Nature",
+ "aliases": [
+ "dragon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "dragon face",
+ "category": "Nature",
+ "aliases": [
+ "dragon_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "cactus",
+ "category": "Nature",
+ "aliases": [
+ "cactus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "Christmas tree",
+ "category": "Nature",
+ "aliases": [
+ "christmas_tree"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "evergreen tree",
+ "category": "Nature",
+ "aliases": [
+ "evergreen_tree"
+ ],
+ "tags": [
+ "wood"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "deciduous tree",
+ "category": "Nature",
+ "aliases": [
+ "deciduous_tree"
+ ],
+ "tags": [
+ "wood"
+ ]
+ },
+ {
+ "emoji": "๐ด",
+ "description": "palm tree",
+ "category": "Nature",
+ "aliases": [
+ "palm_tree"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "seedling",
+ "category": "Nature",
+ "aliases": [
+ "seedling"
+ ],
+ "tags": [
+ "plant"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "herb",
+ "category": "Nature",
+ "aliases": [
+ "herb"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "shamrock",
+ "category": "Nature",
+ "aliases": [
+ "shamrock"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "four leaf clover",
+ "category": "Nature",
+ "aliases": [
+ "four_leaf_clover"
+ ],
+ "tags": [
+ "luck"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "pine decoration",
+ "category": "Nature",
+ "aliases": [
+ "bamboo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tanabata tree",
+ "category": "Nature",
+ "aliases": [
+ "tanabata_tree"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "leaf fluttering in wind",
+ "category": "Nature",
+ "aliases": [
+ "leaves"
+ ],
+ "tags": [
+ "leaf"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "fallen leaf",
+ "category": "Nature",
+ "aliases": [
+ "fallen_leaf"
+ ],
+ "tags": [
+ "autumn"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "maple leaf",
+ "category": "Nature",
+ "aliases": [
+ "maple_leaf"
+ ],
+ "tags": [
+ "canada"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "mushroom",
+ "category": "Nature",
+ "aliases": [
+ "mushroom"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ",
+ "description": "sheaf of rice",
+ "category": "Nature",
+ "aliases": [
+ "ear_of_rice"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bouquet",
+ "category": "Nature",
+ "aliases": [
+ "bouquet"
+ ],
+ "tags": [
+ "flowers"
+ ]
+ },
+ {
+ "emoji": "๐ท",
+ "description": "tulip",
+ "category": "Nature",
+ "aliases": [
+ "tulip"
+ ],
+ "tags": [
+ "flower"
+ ]
+ },
+ {
+ "emoji": "๐น",
+ "description": "rose",
+ "category": "Nature",
+ "aliases": [
+ "rose"
+ ],
+ "tags": [
+ "flower"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "wilted flower",
+ "category": "Nature",
+ "aliases": [
+ "wilted_flower"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "sunflower",
+ "category": "Nature",
+ "aliases": [
+ "sunflower"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "blossom",
+ "category": "Nature",
+ "aliases": [
+ "blossom"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "cherry blossom",
+ "category": "Nature",
+ "aliases": [
+ "cherry_blossom"
+ ],
+ "tags": [
+ "flower",
+ "spring"
+ ]
+ },
+ {
+ "emoji": "๐บ",
+ "description": "hibiscus",
+ "category": "Nature",
+ "aliases": [
+ "hibiscus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "globe showing Americas",
+ "category": "Nature",
+ "aliases": [
+ "earth_americas"
+ ],
+ "tags": [
+ "globe",
+ "world",
+ "international"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "globe showing Europe-Africa",
+ "category": "Nature",
+ "aliases": [
+ "earth_africa"
+ ],
+ "tags": [
+ "globe",
+ "world",
+ "international"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "globe showing Asia-Australia",
+ "category": "Nature",
+ "aliases": [
+ "earth_asia"
+ ],
+ "tags": [
+ "globe",
+ "world",
+ "international"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "full moon",
+ "category": "Nature",
+ "aliases": [
+ "full_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "waning gibbous moon",
+ "category": "Nature",
+ "aliases": [
+ "waning_gibbous_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "last quarter moon",
+ "category": "Nature",
+ "aliases": [
+ "last_quarter_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "waning crescent moon",
+ "category": "Nature",
+ "aliases": [
+ "waning_crescent_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "new moon",
+ "category": "Nature",
+ "aliases": [
+ "new_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "waxing crescent moon",
+ "category": "Nature",
+ "aliases": [
+ "waxing_crescent_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "first quarter moon",
+ "category": "Nature",
+ "aliases": [
+ "first_quarter_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "waxing gibbous moon",
+ "category": "Nature",
+ "aliases": [
+ "moon",
+ "waxing_gibbous_moon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "new moon face",
+ "category": "Nature",
+ "aliases": [
+ "new_moon_with_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "full moon with face",
+ "category": "Nature",
+ "aliases": [
+ "full_moon_with_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sun with face",
+ "category": "Nature",
+ "aliases": [
+ "sun_with_face"
+ ],
+ "tags": [
+ "summer"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "first quarter moon with face",
+ "category": "Nature",
+ "aliases": [
+ "first_quarter_moon_with_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "last quarter moon with face",
+ "category": "Nature",
+ "aliases": [
+ "last_quarter_moon_with_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "crescent moon",
+ "category": "Nature",
+ "aliases": [
+ "crescent_moon"
+ ],
+ "tags": [
+ "night"
+ ]
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "dizzy",
+ "category": "Nature",
+ "aliases": [
+ "dizzy"
+ ],
+ "tags": [
+ "star"
+ ]
+ },
+ {
+ "emoji": "โญ๏ธ",
+ "description": "white medium star",
+ "category": "Nature",
+ "aliases": [
+ "star"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "glowing star",
+ "category": "Nature",
+ "aliases": [
+ "star2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โจ",
+ "description": "sparkles",
+ "category": "Nature",
+ "aliases": [
+ "sparkles"
+ ],
+ "tags": [
+ "shiny"
+ ]
+ },
+ {
+ "emoji": "โก๏ธ",
+ "description": "high voltage",
+ "category": "Nature",
+ "aliases": [
+ "zap"
+ ],
+ "tags": [
+ "lightning",
+ "thunder"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "fire",
+ "category": "Nature",
+ "aliases": [
+ "fire"
+ ],
+ "tags": [
+ "burn"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "collision",
+ "category": "Nature",
+ "aliases": [
+ "boom",
+ "collision"
+ ],
+ "tags": [
+ "explode"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "comet",
+ "category": "Nature",
+ "aliases": [
+ "comet"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "sun",
+ "category": "Nature",
+ "aliases": [
+ "sunny"
+ ],
+ "tags": [
+ "weather"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "sun behind small cloud",
+ "category": "Nature",
+ "aliases": [
+ "sun_behind_small_cloud"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ
๏ธ",
+ "description": "sun behind cloud",
+ "category": "Nature",
+ "aliases": [
+ "partly_sunny"
+ ],
+ "tags": [
+ "weather",
+ "cloud"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "sun behind large cloud",
+ "category": "Nature",
+ "aliases": [
+ "sun_behind_large_cloud"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "sun behind rain cloud",
+ "category": "Nature",
+ "aliases": [
+ "sun_behind_rain_cloud"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rainbow",
+ "category": "Nature",
+ "aliases": [
+ "rainbow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "cloud",
+ "category": "Nature",
+ "aliases": [
+ "cloud"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "cloud with rain",
+ "category": "Nature",
+ "aliases": [
+ "cloud_with_rain"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "cloud with lightning and rain",
+ "category": "Nature",
+ "aliases": [
+ "cloud_with_lightning_and_rain"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "cloud with lightning",
+ "category": "Nature",
+ "aliases": [
+ "cloud_with_lightning"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "cloud with snow",
+ "category": "Nature",
+ "aliases": [
+ "cloud_with_snow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "snowman",
+ "category": "Nature",
+ "aliases": [
+ "snowman_with_snow"
+ ],
+ "tags": [
+ "winter",
+ "christmas"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "snowman without snow",
+ "category": "Nature",
+ "aliases": [
+ "snowman"
+ ],
+ "tags": [
+ "winter"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "snowflake",
+ "category": "Nature",
+ "aliases": [
+ "snowflake"
+ ],
+ "tags": [
+ "winter",
+ "cold",
+ "weather"
+ ]
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "wind face",
+ "category": "Nature",
+ "aliases": [
+ "wind_face"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "dashing away",
+ "category": "Nature",
+ "aliases": [
+ "dash"
+ ],
+ "tags": [
+ "wind",
+ "blow",
+ "fast"
+ ]
+ },
+ {
+ "emoji": "๐ช",
+ "description": "tornado",
+ "category": "Nature",
+ "aliases": [
+ "tornado"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "fog",
+ "category": "Nature",
+ "aliases": [
+ "fog"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "water wave",
+ "category": "Nature",
+ "aliases": [
+ "ocean"
+ ],
+ "tags": [
+ "sea"
+ ]
+ },
+ {
+ "emoji": "๐ง",
+ "description": "droplet",
+ "category": "Nature",
+ "aliases": [
+ "droplet"
+ ],
+ "tags": [
+ "water"
+ ]
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "sweat droplets",
+ "category": "Nature",
+ "aliases": [
+ "sweat_drops"
+ ],
+ "tags": [
+ "water",
+ "workout"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "umbrella with rain drops",
+ "category": "Nature",
+ "aliases": [
+ "umbrella"
+ ],
+ "tags": [
+ "rain",
+ "weather"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "green apple",
+ "category": "Foods",
+ "aliases": [
+ "green_apple"
+ ],
+ "tags": [
+ "fruit"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "red apple",
+ "category": "Foods",
+ "aliases": [
+ "apple"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pear",
+ "category": "Foods",
+ "aliases": [
+ "pear"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tangerine",
+ "category": "Foods",
+ "aliases": [
+ "tangerine",
+ "orange",
+ "mandarin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "lemon",
+ "category": "Foods",
+ "aliases": [
+ "lemon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "banana",
+ "category": "Foods",
+ "aliases": [
+ "banana"
+ ],
+ "tags": [
+ "fruit"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "watermelon",
+ "category": "Foods",
+ "aliases": [
+ "watermelon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "grapes",
+ "category": "Foods",
+ "aliases": [
+ "grapes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "strawberry",
+ "category": "Foods",
+ "aliases": [
+ "strawberry"
+ ],
+ "tags": [
+ "fruit"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "melon",
+ "category": "Foods",
+ "aliases": [
+ "melon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cherries",
+ "category": "Foods",
+ "aliases": [
+ "cherries"
+ ],
+ "tags": [
+ "fruit"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "peach",
+ "category": "Foods",
+ "aliases": [
+ "peach"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pineapple",
+ "category": "Foods",
+ "aliases": [
+ "pineapple"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "kiwi fruit",
+ "category": "Foods",
+ "aliases": [
+ "kiwi_fruit"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "avocado",
+ "category": "Foods",
+ "aliases": [
+ "avocado"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
",
+ "description": "tomato",
+ "category": "Foods",
+ "aliases": [
+ "tomato"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "eggplant",
+ "category": "Foods",
+ "aliases": [
+ "eggplant"
+ ],
+ "tags": [
+ "aubergine"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "cucumber",
+ "category": "Foods",
+ "aliases": [
+ "cucumber"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "carrot",
+ "category": "Foods",
+ "aliases": [
+ "carrot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "ear of corn",
+ "category": "Foods",
+ "aliases": [
+ "corn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "hot pepper",
+ "category": "Foods",
+ "aliases": [
+ "hot_pepper"
+ ],
+ "tags": [
+ "spicy"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "potato",
+ "category": "Foods",
+ "aliases": [
+ "potato"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "roasted sweet potato",
+ "category": "Foods",
+ "aliases": [
+ "sweet_potato"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "chestnut",
+ "category": "Foods",
+ "aliases": [
+ "chestnut"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "peanuts",
+ "category": "Foods",
+ "aliases": [
+ "peanuts"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "honey pot",
+ "category": "Foods",
+ "aliases": [
+ "honey_pot"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "croissant",
+ "category": "Foods",
+ "aliases": [
+ "croissant"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bread",
+ "category": "Foods",
+ "aliases": [
+ "bread"
+ ],
+ "tags": [
+ "toast"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "baguette bread",
+ "category": "Foods",
+ "aliases": [
+ "baguette_bread"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "cheese wedge",
+ "category": "Foods",
+ "aliases": [
+ "cheese"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "egg",
+ "category": "Foods",
+ "aliases": [
+ "egg"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "cooking",
+ "category": "Foods",
+ "aliases": [
+ "fried_egg"
+ ],
+ "tags": [
+ "breakfast"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "bacon",
+ "category": "Foods",
+ "aliases": [
+ "bacon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "pancakes",
+ "category": "Foods",
+ "aliases": [
+ "pancakes"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "fried shrimp",
+ "category": "Foods",
+ "aliases": [
+ "fried_shrimp"
+ ],
+ "tags": [
+ "tempura"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "poultry leg",
+ "category": "Foods",
+ "aliases": [
+ "poultry_leg"
+ ],
+ "tags": [
+ "meat",
+ "chicken"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "meat on bone",
+ "category": "Foods",
+ "aliases": [
+ "meat_on_bone"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pizza",
+ "category": "Foods",
+ "aliases": [
+ "pizza"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "hot dog",
+ "category": "Foods",
+ "aliases": [
+ "hotdog"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "hamburger",
+ "category": "Foods",
+ "aliases": [
+ "hamburger"
+ ],
+ "tags": [
+ "burger"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "french fries",
+ "category": "Foods",
+ "aliases": [
+ "fries"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "stuffed flatbread",
+ "category": "Foods",
+ "aliases": [
+ "stuffed_flatbread"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "taco",
+ "category": "Foods",
+ "aliases": [
+ "taco"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "burrito",
+ "category": "Foods",
+ "aliases": [
+ "burrito"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "green salad",
+ "category": "Foods",
+ "aliases": [
+ "green_salad"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "shallow pan of food",
+ "category": "Foods",
+ "aliases": [
+ "shallow_pan_of_food"
+ ],
+ "tags": [
+ "paella",
+ "curry"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "spaghetti",
+ "category": "Foods",
+ "aliases": [
+ "spaghetti"
+ ],
+ "tags": [
+ "pasta"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "steaming bowl",
+ "category": "Foods",
+ "aliases": [
+ "ramen"
+ ],
+ "tags": [
+ "noodle"
+ ]
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "pot of food",
+ "category": "Foods",
+ "aliases": [
+ "stew"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "fish cake with swirl",
+ "category": "Foods",
+ "aliases": [
+ "fish_cake"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "sushi",
+ "category": "Foods",
+ "aliases": [
+ "sushi"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "bento box",
+ "category": "Foods",
+ "aliases": [
+ "bento"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "curry rice",
+ "category": "Foods",
+ "aliases": [
+ "curry"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cooked rice",
+ "category": "Foods",
+ "aliases": [
+ "rice"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rice ball",
+ "category": "Foods",
+ "aliases": [
+ "rice_ball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rice cracker",
+ "category": "Foods",
+ "aliases": [
+ "rice_cracker"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "oden",
+ "category": "Foods",
+ "aliases": [
+ "oden"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "dango",
+ "category": "Foods",
+ "aliases": [
+ "dango"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "shaved ice",
+ "category": "Foods",
+ "aliases": [
+ "shaved_ice"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "ice cream",
+ "category": "Foods",
+ "aliases": [
+ "ice_cream"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "soft ice cream",
+ "category": "Foods",
+ "aliases": [
+ "icecream"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "shortcake",
+ "category": "Foods",
+ "aliases": [
+ "cake"
+ ],
+ "tags": [
+ "dessert"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "birthday cake",
+ "category": "Foods",
+ "aliases": [
+ "birthday"
+ ],
+ "tags": [
+ "party"
+ ]
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "custard",
+ "category": "Foods",
+ "aliases": [
+ "custard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "lollipop",
+ "category": "Foods",
+ "aliases": [
+ "lollipop"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "candy",
+ "category": "Foods",
+ "aliases": [
+ "candy"
+ ],
+ "tags": [
+ "sweet"
+ ]
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "chocolate bar",
+ "category": "Foods",
+ "aliases": [
+ "chocolate_bar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "popcorn",
+ "category": "Foods",
+ "aliases": [
+ "popcorn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "doughnut",
+ "category": "Foods",
+ "aliases": [
+ "doughnut"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "cookie",
+ "category": "Foods",
+ "aliases": [
+ "cookie"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "glass of milk",
+ "category": "Foods",
+ "aliases": [
+ "milk_glass"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "baby bottle",
+ "category": "Foods",
+ "aliases": [
+ "baby_bottle"
+ ],
+ "tags": [
+ "milk"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "hot beverage",
+ "category": "Foods",
+ "aliases": [
+ "coffee"
+ ],
+ "tags": [
+ "cafe",
+ "espresso"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "teacup without handle",
+ "category": "Foods",
+ "aliases": [
+ "tea"
+ ],
+ "tags": [
+ "green",
+ "breakfast"
+ ]
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "sake",
+ "category": "Foods",
+ "aliases": [
+ "sake"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "beer mug",
+ "category": "Foods",
+ "aliases": [
+ "beer"
+ ],
+ "tags": [
+ "drink"
+ ]
+ },
+ {
+ "emoji": "๐ป",
+ "description": "clinking beer mugs",
+ "category": "Foods",
+ "aliases": [
+ "beers"
+ ],
+ "tags": [
+ "drinks"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "clinking glasses",
+ "category": "Foods",
+ "aliases": [
+ "clinking_glasses"
+ ],
+ "tags": [
+ "cheers",
+ "toast"
+ ]
+ },
+ {
+ "emoji": "๐ท",
+ "description": "wine glass",
+ "category": "Foods",
+ "aliases": [
+ "wine_glass"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "tumbler glass",
+ "category": "Foods",
+ "aliases": [
+ "tumbler_glass"
+ ],
+ "tags": [
+ "whisky"
+ ]
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "cocktail glass",
+ "category": "Foods",
+ "aliases": [
+ "cocktail"
+ ],
+ "tags": [
+ "drink"
+ ]
+ },
+ {
+ "emoji": "๐น",
+ "description": "tropical drink",
+ "category": "Foods",
+ "aliases": [
+ "tropical_drink"
+ ],
+ "tags": [
+ "summer",
+ "vacation"
+ ]
+ },
+ {
+ "emoji": "๐พ",
+ "description": "bottle with popping cork",
+ "category": "Foods",
+ "aliases": [
+ "champagne"
+ ],
+ "tags": [
+ "bottle",
+ "bubbly",
+ "celebration"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "spoon",
+ "category": "Foods",
+ "aliases": [
+ "spoon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "fork and knife",
+ "category": "Foods",
+ "aliases": [
+ "fork_and_knife"
+ ],
+ "tags": [
+ "cutlery"
+ ]
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "fork and knife with plate",
+ "category": "Foods",
+ "aliases": [
+ "plate_with_cutlery"
+ ],
+ "tags": [
+ "dining",
+ "dinner"
+ ]
+ },
+ {
+ "emoji": "โฝ๏ธ",
+ "description": "soccer ball",
+ "category": "Activity",
+ "aliases": [
+ "soccer"
+ ],
+ "tags": [
+ "sports"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "basketball",
+ "category": "Activity",
+ "aliases": [
+ "basketball"
+ ],
+ "tags": [
+ "sports"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "american football",
+ "category": "Activity",
+ "aliases": [
+ "football"
+ ],
+ "tags": [
+ "sports"
+ ]
+ },
+ {
+ "emoji": "โพ๏ธ",
+ "description": "baseball",
+ "category": "Activity",
+ "aliases": [
+ "baseball"
+ ],
+ "tags": [
+ "sports"
+ ]
+ },
+ {
+ "emoji": "๐พ",
+ "description": "tennis",
+ "category": "Activity",
+ "aliases": [
+ "tennis"
+ ],
+ "tags": [
+ "sports"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "volleyball",
+ "category": "Activity",
+ "aliases": [
+ "volleyball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rugby football",
+ "category": "Activity",
+ "aliases": [
+ "rugby_football"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "pool 8 ball",
+ "category": "Activity",
+ "aliases": [
+ "8ball"
+ ],
+ "tags": [
+ "pool",
+ "billiards"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "ping pong",
+ "category": "Activity",
+ "aliases": [
+ "ping_pong"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "badminton",
+ "category": "Activity",
+ "aliases": [
+ "badminton"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ
",
+ "description": "goal net",
+ "category": "Activity",
+ "aliases": [
+ "goal_net"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ice hockey",
+ "category": "Activity",
+ "aliases": [
+ "ice_hockey"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "field hockey",
+ "category": "Activity",
+ "aliases": [
+ "field_hockey"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cricket",
+ "category": "Activity",
+ "aliases": [
+ "cricket"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โณ๏ธ",
+ "description": "flag in hole",
+ "category": "Activity",
+ "aliases": [
+ "golf"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "bow and arrow",
+ "category": "Activity",
+ "aliases": [
+ "bow_and_arrow"
+ ],
+ "tags": [
+ "archery"
+ ]
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "fishing pole",
+ "category": "Activity",
+ "aliases": [
+ "fishing_pole_and_fish"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "boxing glove",
+ "category": "Activity",
+ "aliases": [
+ "boxing_glove"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "martial arts uniform",
+ "category": "Activity",
+ "aliases": [
+ "martial_arts_uniform"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โธ",
+ "description": "ice skate",
+ "category": "Activity",
+ "aliases": [
+ "ice_skate"
+ ],
+ "tags": [
+ "skating"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "skis",
+ "category": "Activity",
+ "aliases": [
+ "ski"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โท",
+ "description": "skier",
+ "category": "Activity",
+ "aliases": [
+ "skier"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "snowboarder",
+ "category": "Activity",
+ "aliases": [
+ "snowboarder"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐๏ธโโ๏ธ",
+ "description": "woman lifting weights",
+ "category": "Activity",
+ "aliases": [
+ "weight_lifting_woman"
+ ],
+ "tags": [
+ "gym",
+ "workout"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "person lifting weights",
+ "category": "Activity",
+ "aliases": [
+ "weight_lifting_man"
+ ],
+ "tags": [
+ "gym",
+ "workout"
+ ]
+ },
+ {
+ "emoji": "๐คบ",
+ "description": "person fencing",
+ "category": "Activity",
+ "aliases": [
+ "person_fencing"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คผโโ",
+ "description": "women wrestling",
+ "category": "Activity",
+ "aliases": [
+ "women_wrestling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คผโโ",
+ "description": "men wrestling",
+ "category": "Activity",
+ "aliases": [
+ "men_wrestling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คธโโ",
+ "description": "woman cartwheeling",
+ "category": "Activity",
+ "aliases": [
+ "woman_cartwheeling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คธโโ",
+ "description": "man cartwheeling",
+ "category": "Activity",
+ "aliases": [
+ "man_cartwheeling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โน๏ธโโ๏ธ",
+ "description": "woman bouncing ball",
+ "category": "Activity",
+ "aliases": [
+ "basketball_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โน",
+ "description": "person bouncing ball",
+ "category": "Activity",
+ "aliases": [
+ "basketball_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คพโโ",
+ "description": "woman playing handball",
+ "category": "Activity",
+ "aliases": [
+ "woman_playing_handball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คพโโ",
+ "description": "man playing handball",
+ "category": "Activity",
+ "aliases": [
+ "man_playing_handball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐๏ธโโ๏ธ",
+ "description": "woman golfing",
+ "category": "Activity",
+ "aliases": [
+ "golfing_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person golfing",
+ "category": "Activity",
+ "aliases": [
+ "golfing_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "woman surfing",
+ "category": "Activity",
+ "aliases": [
+ "surfing_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person surfing",
+ "category": "Activity",
+ "aliases": [
+ "surfing_man",
+ "surfer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐โโ",
+ "description": "woman swimming",
+ "category": "Activity",
+ "aliases": [
+ "swimming_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person swimming",
+ "category": "Activity",
+ "aliases": [
+ "swimming_man",
+ "swimmer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฝโโ",
+ "description": "woman playing water polo",
+ "category": "Activity",
+ "aliases": [
+ "woman_playing_water_polo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คฝโโ",
+ "description": "man playing water polo",
+ "category": "Activity",
+ "aliases": [
+ "man_playing_water_polo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃโโ",
+ "description": "woman rowing boat",
+ "category": "Activity",
+ "aliases": [
+ "rowing_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "person rowing boat",
+ "category": "Activity",
+ "aliases": [
+ "rowing_man",
+ "rowboat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "horse racing",
+ "category": "Activity",
+ "aliases": [
+ "horse_racing"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ดโโ",
+ "description": "woman biking",
+ "category": "Activity",
+ "aliases": [
+ "biking_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "person biking",
+ "category": "Activity",
+ "aliases": [
+ "biking_man",
+ "bicyclist"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ตโโ",
+ "description": "woman mountain biking",
+ "category": "Activity",
+ "aliases": [
+ "mountain_biking_woman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "person mountain biking",
+ "category": "Activity",
+ "aliases": [
+ "mountain_biking_man",
+ "mountain_bicyclist"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "running shirt",
+ "category": "Activity",
+ "aliases": [
+ "running_shirt_with_sash"
+ ],
+ "tags": [
+ "marathon"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "sports medal",
+ "category": "Activity",
+ "aliases": [
+ "medal_sports"
+ ],
+ "tags": [
+ "gold",
+ "winner"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "military medal",
+ "category": "Activity",
+ "aliases": [
+ "medal_military"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "1st place medal",
+ "category": "Activity",
+ "aliases": [
+ "1st_place_medal"
+ ],
+ "tags": [
+ "gold"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "2nd place medal",
+ "category": "Activity",
+ "aliases": [
+ "2nd_place_medal"
+ ],
+ "tags": [
+ "silver"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "3rd place medal",
+ "category": "Activity",
+ "aliases": [
+ "3rd_place_medal"
+ ],
+ "tags": [
+ "bronze"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "trophy",
+ "category": "Activity",
+ "aliases": [
+ "trophy"
+ ],
+ "tags": [
+ "award",
+ "contest",
+ "winner"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "rosette",
+ "category": "Activity",
+ "aliases": [
+ "rosette"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "reminder ribbon",
+ "category": "Activity",
+ "aliases": [
+ "reminder_ribbon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "ticket",
+ "category": "Activity",
+ "aliases": [
+ "ticket"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "admission tickets",
+ "category": "Activity",
+ "aliases": [
+ "tickets"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "circus tent",
+ "category": "Activity",
+ "aliases": [
+ "circus_tent"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คนโโ",
+ "description": "woman juggling",
+ "category": "Activity",
+ "aliases": [
+ "woman_juggling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐คนโโ",
+ "description": "man juggling",
+ "category": "Activity",
+ "aliases": [
+ "man_juggling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "performing arts",
+ "category": "Activity",
+ "aliases": [
+ "performing_arts"
+ ],
+ "tags": [
+ "theater",
+ "drama"
+ ]
+ },
+ {
+ "emoji": "๐จ",
+ "description": "artist palette",
+ "category": "Activity",
+ "aliases": [
+ "art"
+ ],
+ "tags": [
+ "design",
+ "paint"
+ ]
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "clapper board",
+ "category": "Activity",
+ "aliases": [
+ "clapper"
+ ],
+ "tags": [
+ "film"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "microphone",
+ "category": "Activity",
+ "aliases": [
+ "microphone"
+ ],
+ "tags": [
+ "sing"
+ ]
+ },
+ {
+ "emoji": "๐ง",
+ "description": "headphone",
+ "category": "Activity",
+ "aliases": [
+ "headphones"
+ ],
+ "tags": [
+ "music",
+ "earphones"
+ ]
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "musical score",
+ "category": "Activity",
+ "aliases": [
+ "musical_score"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "musical keyboard",
+ "category": "Activity",
+ "aliases": [
+ "musical_keyboard"
+ ],
+ "tags": [
+ "piano"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "drum",
+ "category": "Activity",
+ "aliases": [
+ "drum"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "saxophone",
+ "category": "Activity",
+ "aliases": [
+ "saxophone"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "trumpet",
+ "category": "Activity",
+ "aliases": [
+ "trumpet"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "guitar",
+ "category": "Activity",
+ "aliases": [
+ "guitar"
+ ],
+ "tags": [
+ "rock"
+ ]
+ },
+ {
+ "emoji": "๐ป",
+ "description": "violin",
+ "category": "Activity",
+ "aliases": [
+ "violin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "game die",
+ "category": "Activity",
+ "aliases": [
+ "game_die"
+ ],
+ "tags": [
+ "dice",
+ "gambling"
+ ]
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "direct hit",
+ "category": "Activity",
+ "aliases": [
+ "dart"
+ ],
+ "tags": [
+ "target"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "bowling",
+ "category": "Activity",
+ "aliases": [
+ "bowling"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "video game",
+ "category": "Activity",
+ "aliases": [
+ "video_game"
+ ],
+ "tags": [
+ "play",
+ "controller",
+ "console"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "slot machine",
+ "category": "Activity",
+ "aliases": [
+ "slot_machine"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "automobile",
+ "category": "Places",
+ "aliases": [
+ "car",
+ "red_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "taxi",
+ "category": "Places",
+ "aliases": [
+ "taxi"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sport utility vehicle",
+ "category": "Places",
+ "aliases": [
+ "blue_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bus",
+ "category": "Places",
+ "aliases": [
+ "bus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "trolleybus",
+ "category": "Places",
+ "aliases": [
+ "trolleybus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "racing car",
+ "category": "Places",
+ "aliases": [
+ "racing_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "police car",
+ "category": "Places",
+ "aliases": [
+ "police_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ambulance",
+ "category": "Places",
+ "aliases": [
+ "ambulance"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "fire engine",
+ "category": "Places",
+ "aliases": [
+ "fire_engine"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "minibus",
+ "category": "Places",
+ "aliases": [
+ "minibus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "delivery truck",
+ "category": "Places",
+ "aliases": [
+ "truck"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "articulated lorry",
+ "category": "Places",
+ "aliases": [
+ "articulated_lorry"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tractor",
+ "category": "Places",
+ "aliases": [
+ "tractor"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "kick scooter",
+ "category": "Places",
+ "aliases": [
+ "kick_scooter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "bicycle",
+ "category": "Places",
+ "aliases": [
+ "bike"
+ ],
+ "tags": [
+ "bicycle"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "motor scooter",
+ "category": "Places",
+ "aliases": [
+ "motor_scooter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "motorcycle",
+ "category": "Places",
+ "aliases": [
+ "motorcycle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "police car light",
+ "category": "Places",
+ "aliases": [
+ "rotating_light"
+ ],
+ "tags": [
+ "911",
+ "emergency"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "oncoming police car",
+ "category": "Places",
+ "aliases": [
+ "oncoming_police_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "oncoming bus",
+ "category": "Places",
+ "aliases": [
+ "oncoming_bus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "oncoming automobile",
+ "category": "Places",
+ "aliases": [
+ "oncoming_automobile"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "oncoming taxi",
+ "category": "Places",
+ "aliases": [
+ "oncoming_taxi"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "aerial tramway",
+ "category": "Places",
+ "aliases": [
+ "aerial_tramway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "mountain cableway",
+ "category": "Places",
+ "aliases": [
+ "mountain_cableway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "suspension railway",
+ "category": "Places",
+ "aliases": [
+ "suspension_railway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "railway car",
+ "category": "Places",
+ "aliases": [
+ "railway_car"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tram car",
+ "category": "Places",
+ "aliases": [
+ "train"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "mountain railway",
+ "category": "Places",
+ "aliases": [
+ "mountain_railway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "monorail",
+ "category": "Places",
+ "aliases": [
+ "monorail"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "high-speed train",
+ "category": "Places",
+ "aliases": [
+ "bullettrain_side"
+ ],
+ "tags": [
+ "train"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "high-speed train with bullet nose",
+ "category": "Places",
+ "aliases": [
+ "bullettrain_front"
+ ],
+ "tags": [
+ "train"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "light rail",
+ "category": "Places",
+ "aliases": [
+ "light_rail"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "locomotive",
+ "category": "Places",
+ "aliases": [
+ "steam_locomotive"
+ ],
+ "tags": [
+ "train"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "train",
+ "category": "Places",
+ "aliases": [
+ "train2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "metro",
+ "category": "Places",
+ "aliases": [
+ "metro"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tram",
+ "category": "Places",
+ "aliases": [
+ "tram"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "station",
+ "category": "Places",
+ "aliases": [
+ "station"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "helicopter",
+ "category": "Places",
+ "aliases": [
+ "helicopter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "small airplane",
+ "category": "Places",
+ "aliases": [
+ "small_airplane"
+ ],
+ "tags": [
+ "flight"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "airplane",
+ "category": "Places",
+ "aliases": [
+ "airplane"
+ ],
+ "tags": [
+ "flight"
+ ]
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "airplane departure",
+ "category": "Places",
+ "aliases": [
+ "flight_departure"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "airplane arrival",
+ "category": "Places",
+ "aliases": [
+ "flight_arrival"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rocket",
+ "category": "Places",
+ "aliases": [
+ "rocket"
+ ],
+ "tags": [
+ "ship",
+ "launch"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "satellite",
+ "category": "Places",
+ "aliases": [
+ "artificial_satellite"
+ ],
+ "tags": [
+ "orbit",
+ "space"
+ ]
+ },
+ {
+ "emoji": "๐บ",
+ "description": "seat",
+ "category": "Places",
+ "aliases": [
+ "seat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "canoe",
+ "category": "Places",
+ "aliases": [
+ "canoe"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โต๏ธ",
+ "description": "sailboat",
+ "category": "Places",
+ "aliases": [
+ "boat",
+ "sailboat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "motor boat",
+ "category": "Places",
+ "aliases": [
+ "motor_boat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "speedboat",
+ "category": "Places",
+ "aliases": [
+ "speedboat"
+ ],
+ "tags": [
+ "ship"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "passenger ship",
+ "category": "Places",
+ "aliases": [
+ "passenger_ship"
+ ],
+ "tags": [
+ "cruise"
+ ]
+ },
+ {
+ "emoji": "โด",
+ "description": "ferry",
+ "category": "Places",
+ "aliases": [
+ "ferry"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "ship",
+ "category": "Places",
+ "aliases": [
+ "ship"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "anchor",
+ "category": "Places",
+ "aliases": [
+ "anchor"
+ ],
+ "tags": [
+ "ship"
+ ]
+ },
+ {
+ "emoji": "๐ง",
+ "description": "construction",
+ "category": "Places",
+ "aliases": [
+ "construction"
+ ],
+ "tags": [
+ "wip"
+ ]
+ },
+ {
+ "emoji": "โฝ๏ธ",
+ "description": "fuel pump",
+ "category": "Places",
+ "aliases": [
+ "fuelpump"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bus stop",
+ "category": "Places",
+ "aliases": [
+ "busstop"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "vertical traffic light",
+ "category": "Places",
+ "aliases": [
+ "vertical_traffic_light"
+ ],
+ "tags": [
+ "semaphore"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "horizontal traffic light",
+ "category": "Places",
+ "aliases": [
+ "traffic_light"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "world map",
+ "category": "Places",
+ "aliases": [
+ "world_map"
+ ],
+ "tags": [
+ "travel"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "moai",
+ "category": "Places",
+ "aliases": [
+ "moyai"
+ ],
+ "tags": [
+ "stone"
+ ]
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "Statue of Liberty",
+ "category": "Places",
+ "aliases": [
+ "statue_of_liberty"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฒ๏ธ",
+ "description": "fountain",
+ "category": "Places",
+ "aliases": [
+ "fountain"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "Tokyo tower",
+ "category": "Places",
+ "aliases": [
+ "tokyo_tower"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "castle",
+ "category": "Places",
+ "aliases": [
+ "european_castle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "Japanese castle",
+ "category": "Places",
+ "aliases": [
+ "japanese_castle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "stadium",
+ "category": "Places",
+ "aliases": [
+ "stadium"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "ferris wheel",
+ "category": "Places",
+ "aliases": [
+ "ferris_wheel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "roller coaster",
+ "category": "Places",
+ "aliases": [
+ "roller_coaster"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "carousel horse",
+ "category": "Places",
+ "aliases": [
+ "carousel_horse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฑ",
+ "description": "umbrella on ground",
+ "category": "Places",
+ "aliases": [
+ "parasol_on_ground"
+ ],
+ "tags": [
+ "beach_umbrella"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "beach with umbrella",
+ "category": "Places",
+ "aliases": [
+ "beach_umbrella"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "desert island",
+ "category": "Places",
+ "aliases": [
+ "desert_island"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฐ",
+ "description": "mountain",
+ "category": "Places",
+ "aliases": [
+ "mountain"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "snow-capped mountain",
+ "category": "Places",
+ "aliases": [
+ "mountain_snow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "mount fuji",
+ "category": "Places",
+ "aliases": [
+ "mount_fuji"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "volcano",
+ "category": "Places",
+ "aliases": [
+ "volcano"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "desert",
+ "category": "Places",
+ "aliases": [
+ "desert"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "camping",
+ "category": "Places",
+ "aliases": [
+ "camping"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โบ๏ธ",
+ "description": "tent",
+ "category": "Places",
+ "aliases": [
+ "tent"
+ ],
+ "tags": [
+ "camping"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "railway track",
+ "category": "Places",
+ "aliases": [
+ "railway_track"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "motorway",
+ "category": "Places",
+ "aliases": [
+ "motorway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "building construction",
+ "category": "Places",
+ "aliases": [
+ "building_construction"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "factory",
+ "category": "Places",
+ "aliases": [
+ "factory"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "house",
+ "category": "Places",
+ "aliases": [
+ "house"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "house with garden",
+ "category": "Places",
+ "aliases": [
+ "house_with_garden"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "house",
+ "category": "Places",
+ "aliases": [
+ "houses"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "derelict house",
+ "category": "Places",
+ "aliases": [
+ "derelict_house"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "office building",
+ "category": "Places",
+ "aliases": [
+ "office"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "department store",
+ "category": "Places",
+ "aliases": [
+ "department_store"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "Japanese post office",
+ "category": "Places",
+ "aliases": [
+ "post_office"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "post office",
+ "category": "Places",
+ "aliases": [
+ "european_post_office"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "hospital",
+ "category": "Places",
+ "aliases": [
+ "hospital"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "bank",
+ "category": "Places",
+ "aliases": [
+ "bank"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "hotel",
+ "category": "Places",
+ "aliases": [
+ "hotel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "convenience store",
+ "category": "Places",
+ "aliases": [
+ "convenience_store"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "school",
+ "category": "Places",
+ "aliases": [
+ "school"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "love hotel",
+ "category": "Places",
+ "aliases": [
+ "love_hotel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "wedding",
+ "category": "Places",
+ "aliases": [
+ "wedding"
+ ],
+ "tags": [
+ "marriage"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "classical building",
+ "category": "Places",
+ "aliases": [
+ "classical_building"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช๏ธ",
+ "description": "church",
+ "category": "Places",
+ "aliases": [
+ "church"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "mosque",
+ "category": "Places",
+ "aliases": [
+ "mosque"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "synagogue",
+ "category": "Places",
+ "aliases": [
+ "synagogue"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "kaaba",
+ "category": "Places",
+ "aliases": [
+ "kaaba"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฉ",
+ "description": "shinto shrine",
+ "category": "Places",
+ "aliases": [
+ "shinto_shrine"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ",
+ "description": "map of Japan",
+ "category": "Places",
+ "aliases": [
+ "japan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "moon viewing ceremony",
+ "category": "Places",
+ "aliases": [
+ "rice_scene"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "national park",
+ "category": "Places",
+ "aliases": [
+ "national_park"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
",
+ "description": "sunrise",
+ "category": "Places",
+ "aliases": [
+ "sunrise"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sunrise over mountains",
+ "category": "Places",
+ "aliases": [
+ "sunrise_over_mountains"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "shooting star",
+ "category": "Places",
+ "aliases": [
+ "stars"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sparkler",
+ "category": "Places",
+ "aliases": [
+ "sparkler"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "fireworks",
+ "category": "Places",
+ "aliases": [
+ "fireworks"
+ ],
+ "tags": [
+ "festival",
+ "celebration"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "sunset",
+ "category": "Places",
+ "aliases": [
+ "city_sunrise"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cityscape at dusk",
+ "category": "Places",
+ "aliases": [
+ "city_sunset"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cityscape",
+ "category": "Places",
+ "aliases": [
+ "cityscape"
+ ],
+ "tags": [
+ "skyline"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "night with stars",
+ "category": "Places",
+ "aliases": [
+ "night_with_stars"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "milky way",
+ "category": "Places",
+ "aliases": [
+ "milky_way"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bridge at night",
+ "category": "Places",
+ "aliases": [
+ "bridge_at_night"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "foggy",
+ "category": "Places",
+ "aliases": [
+ "foggy"
+ ],
+ "tags": [
+ "karl"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "watch",
+ "category": "Objects",
+ "aliases": [
+ "watch"
+ ],
+ "tags": [
+ "time"
+ ]
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "mobile phone",
+ "category": "Objects",
+ "aliases": [
+ "iphone"
+ ],
+ "tags": [
+ "smartphone",
+ "mobile"
+ ]
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "mobile phone with arrow",
+ "category": "Objects",
+ "aliases": [
+ "calling"
+ ],
+ "tags": [
+ "call",
+ "incoming"
+ ]
+ },
+ {
+ "emoji": "๐ป",
+ "description": "laptop computer",
+ "category": "Objects",
+ "aliases": [
+ "computer"
+ ],
+ "tags": [
+ "desktop",
+ "screen"
+ ]
+ },
+ {
+ "emoji": "โจ๏ธ",
+ "description": "keyboard",
+ "category": "Objects",
+ "aliases": [
+ "keyboard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "desktop computer",
+ "category": "Objects",
+ "aliases": [
+ "desktop_computer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "printer",
+ "category": "Objects",
+ "aliases": [
+ "printer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "computer mouse",
+ "category": "Objects",
+ "aliases": [
+ "computer_mouse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "trackball",
+ "category": "Objects",
+ "aliases": [
+ "trackball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "joystick",
+ "category": "Objects",
+ "aliases": [
+ "joystick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "clamp",
+ "category": "Objects",
+ "aliases": [
+ "clamp"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "computer disk",
+ "category": "Objects",
+ "aliases": [
+ "minidisc"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ",
+ "description": "floppy disk",
+ "category": "Objects",
+ "aliases": [
+ "floppy_disk"
+ ],
+ "tags": [
+ "save"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "optical disk",
+ "category": "Objects",
+ "aliases": [
+ "cd"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "dvd",
+ "category": "Objects",
+ "aliases": [
+ "dvd"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "videocassette",
+ "category": "Objects",
+ "aliases": [
+ "vhs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "camera",
+ "category": "Objects",
+ "aliases": [
+ "camera"
+ ],
+ "tags": [
+ "photo"
+ ]
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "camera with flash",
+ "category": "Objects",
+ "aliases": [
+ "camera_flash"
+ ],
+ "tags": [
+ "photo"
+ ]
+ },
+ {
+ "emoji": "๐น",
+ "description": "video camera",
+ "category": "Objects",
+ "aliases": [
+ "video_camera"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "movie camera",
+ "category": "Objects",
+ "aliases": [
+ "movie_camera"
+ ],
+ "tags": [
+ "film",
+ "video"
+ ]
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "film projector",
+ "category": "Objects",
+ "aliases": [
+ "film_projector"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "film frames",
+ "category": "Objects",
+ "aliases": [
+ "film_strip"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "telephone receiver",
+ "category": "Objects",
+ "aliases": [
+ "telephone_receiver"
+ ],
+ "tags": [
+ "phone",
+ "call"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "telephone",
+ "category": "Objects",
+ "aliases": [
+ "phone",
+ "telephone"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pager",
+ "category": "Objects",
+ "aliases": [
+ "pager"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "fax machine",
+ "category": "Objects",
+ "aliases": [
+ "fax"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "television",
+ "category": "Objects",
+ "aliases": [
+ "tv"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "radio",
+ "category": "Objects",
+ "aliases": [
+ "radio"
+ ],
+ "tags": [
+ "podcast"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "studio microphone",
+ "category": "Objects",
+ "aliases": [
+ "studio_microphone"
+ ],
+ "tags": [
+ "podcast"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "level slider",
+ "category": "Objects",
+ "aliases": [
+ "level_slider"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "control knobs",
+ "category": "Objects",
+ "aliases": [
+ "control_knobs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฑ",
+ "description": "stopwatch",
+ "category": "Objects",
+ "aliases": [
+ "stopwatch"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฒ",
+ "description": "timer clock",
+ "category": "Objects",
+ "aliases": [
+ "timer_clock"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฐ",
+ "description": "alarm clock",
+ "category": "Objects",
+ "aliases": [
+ "alarm_clock"
+ ],
+ "tags": [
+ "morning"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "mantelpiece clock",
+ "category": "Objects",
+ "aliases": [
+ "mantelpiece_clock"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "hourglass",
+ "category": "Objects",
+ "aliases": [
+ "hourglass"
+ ],
+ "tags": [
+ "time"
+ ]
+ },
+ {
+ "emoji": "โณ",
+ "description": "hourglass with flowing sand",
+ "category": "Objects",
+ "aliases": [
+ "hourglass_flowing_sand"
+ ],
+ "tags": [
+ "time"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "satellite antenna",
+ "category": "Objects",
+ "aliases": [
+ "satellite"
+ ],
+ "tags": [
+ "signal"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "battery",
+ "category": "Objects",
+ "aliases": [
+ "battery"
+ ],
+ "tags": [
+ "power"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "electric plug",
+ "category": "Objects",
+ "aliases": [
+ "electric_plug"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "light bulb",
+ "category": "Objects",
+ "aliases": [
+ "bulb"
+ ],
+ "tags": [
+ "idea",
+ "light"
+ ]
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "flashlight",
+ "category": "Objects",
+ "aliases": [
+ "flashlight"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "candle",
+ "category": "Objects",
+ "aliases": [
+ "candle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "wastebasket",
+ "category": "Objects",
+ "aliases": [
+ "wastebasket"
+ ],
+ "tags": [
+ "trash"
+ ]
+ },
+ {
+ "emoji": "๐ข",
+ "description": "oil drum",
+ "category": "Objects",
+ "aliases": [
+ "oil_drum"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "money with wings",
+ "category": "Objects",
+ "aliases": [
+ "money_with_wings"
+ ],
+ "tags": [
+ "dollar"
+ ]
+ },
+ {
+ "emoji": "๐ต",
+ "description": "dollar banknote",
+ "category": "Objects",
+ "aliases": [
+ "dollar"
+ ],
+ "tags": [
+ "money"
+ ]
+ },
+ {
+ "emoji": "๐ด",
+ "description": "yen banknote",
+ "category": "Objects",
+ "aliases": [
+ "yen"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "euro banknote",
+ "category": "Objects",
+ "aliases": [
+ "euro"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "pound banknote",
+ "category": "Objects",
+ "aliases": [
+ "pound"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "money bag",
+ "category": "Objects",
+ "aliases": [
+ "moneybag"
+ ],
+ "tags": [
+ "dollar",
+ "cream"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "credit card",
+ "category": "Objects",
+ "aliases": [
+ "credit_card"
+ ],
+ "tags": [
+ "subscription"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "gem stone",
+ "category": "Objects",
+ "aliases": [
+ "gem"
+ ],
+ "tags": [
+ "diamond"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "balance scale",
+ "category": "Objects",
+ "aliases": [
+ "balance_scale"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "wrench",
+ "category": "Objects",
+ "aliases": [
+ "wrench"
+ ],
+ "tags": [
+ "tool"
+ ]
+ },
+ {
+ "emoji": "๐จ",
+ "description": "hammer",
+ "category": "Objects",
+ "aliases": [
+ "hammer"
+ ],
+ "tags": [
+ "tool"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "hammer and pick",
+ "category": "Objects",
+ "aliases": [
+ "hammer_and_pick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "hammer and wrench",
+ "category": "Objects",
+ "aliases": [
+ "hammer_and_wrench"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "pick",
+ "category": "Objects",
+ "aliases": [
+ "pick"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "nut and bolt",
+ "category": "Objects",
+ "aliases": [
+ "nut_and_bolt"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "gear",
+ "category": "Objects",
+ "aliases": [
+ "gear"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "chains",
+ "category": "Objects",
+ "aliases": [
+ "chains"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "pistol",
+ "category": "Objects",
+ "aliases": [
+ "gun"
+ ],
+ "tags": [
+ "shoot",
+ "weapon"
+ ]
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "bomb",
+ "category": "Objects",
+ "aliases": [
+ "bomb"
+ ],
+ "tags": [
+ "boom"
+ ]
+ },
+ {
+ "emoji": "๐ช",
+ "description": "kitchen knife",
+ "category": "Objects",
+ "aliases": [
+ "hocho",
+ "knife"
+ ],
+ "tags": [
+ "cut",
+ "chop"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "dagger",
+ "category": "Objects",
+ "aliases": [
+ "dagger"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "crossed swords",
+ "category": "Objects",
+ "aliases": [
+ "crossed_swords"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "shield",
+ "category": "Objects",
+ "aliases": [
+ "shield"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "cigarette",
+ "category": "Objects",
+ "aliases": [
+ "smoking"
+ ],
+ "tags": [
+ "cigarette"
+ ]
+ },
+ {
+ "emoji": "โฐ๏ธ",
+ "description": "coffin",
+ "category": "Objects",
+ "aliases": [
+ "coffin"
+ ],
+ "tags": [
+ "funeral"
+ ]
+ },
+ {
+ "emoji": "โฑ๏ธ",
+ "description": "funeral urn",
+ "category": "Objects",
+ "aliases": [
+ "funeral_urn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "amphora",
+ "category": "Objects",
+ "aliases": [
+ "amphora"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "crystal ball",
+ "category": "Objects",
+ "aliases": [
+ "crystal_ball"
+ ],
+ "tags": [
+ "fortune"
+ ]
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "prayer beads",
+ "category": "Objects",
+ "aliases": [
+ "prayer_beads"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "barber pole",
+ "category": "Objects",
+ "aliases": [
+ "barber"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "alembic",
+ "category": "Objects",
+ "aliases": [
+ "alembic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "telescope",
+ "category": "Objects",
+ "aliases": [
+ "telescope"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "microscope",
+ "category": "Objects",
+ "aliases": [
+ "microscope"
+ ],
+ "tags": [
+ "science",
+ "laboratory",
+ "investigate"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "hole",
+ "category": "Objects",
+ "aliases": [
+ "hole"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pill",
+ "category": "Objects",
+ "aliases": [
+ "pill"
+ ],
+ "tags": [
+ "health",
+ "medicine"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "syringe",
+ "category": "Objects",
+ "aliases": [
+ "syringe"
+ ],
+ "tags": [
+ "health",
+ "hospital",
+ "needle"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "thermometer",
+ "category": "Objects",
+ "aliases": [
+ "thermometer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "toilet",
+ "category": "Objects",
+ "aliases": [
+ "toilet"
+ ],
+ "tags": [
+ "wc"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "potable water",
+ "category": "Objects",
+ "aliases": [
+ "potable_water"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ",
+ "description": "shower",
+ "category": "Objects",
+ "aliases": [
+ "shower"
+ ],
+ "tags": [
+ "bath"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "bathtub",
+ "category": "Objects",
+ "aliases": [
+ "bathtub"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person taking bath",
+ "category": "Objects",
+ "aliases": [
+ "bath"
+ ],
+ "tags": [
+ "shower"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "bellhop bell",
+ "category": "Objects",
+ "aliases": [
+ "bellhop_bell"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "key",
+ "category": "Objects",
+ "aliases": [
+ "key"
+ ],
+ "tags": [
+ "lock",
+ "password"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "old key",
+ "category": "Objects",
+ "aliases": [
+ "old_key"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช",
+ "description": "door",
+ "category": "Objects",
+ "aliases": [
+ "door"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "couch and lamp",
+ "category": "Objects",
+ "aliases": [
+ "couch_and_lamp"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bed",
+ "category": "Objects",
+ "aliases": [
+ "bed"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "person in bed",
+ "category": "Objects",
+ "aliases": [
+ "sleeping_bed"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "framed picture",
+ "category": "Objects",
+ "aliases": [
+ "framed_picture"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "shopping bags",
+ "category": "Objects",
+ "aliases": [
+ "shopping"
+ ],
+ "tags": [
+ "bags"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "shopping cart",
+ "category": "Objects",
+ "aliases": [
+ "shopping_cart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "wrapped gift",
+ "category": "Objects",
+ "aliases": [
+ "gift"
+ ],
+ "tags": [
+ "present",
+ "birthday",
+ "christmas"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "balloon",
+ "category": "Objects",
+ "aliases": [
+ "balloon"
+ ],
+ "tags": [
+ "party",
+ "birthday"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "carp streamer",
+ "category": "Objects",
+ "aliases": [
+ "flags"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ribbon",
+ "category": "Objects",
+ "aliases": [
+ "ribbon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "confetti ball",
+ "category": "Objects",
+ "aliases": [
+ "confetti_ball"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "party popper",
+ "category": "Objects",
+ "aliases": [
+ "tada"
+ ],
+ "tags": [
+ "hooray",
+ "party"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "Japanese dolls",
+ "category": "Objects",
+ "aliases": [
+ "dolls"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "red paper lantern",
+ "category": "Objects",
+ "aliases": [
+ "izakaya_lantern",
+ "lantern"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "wind chime",
+ "category": "Objects",
+ "aliases": [
+ "wind_chime"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "envelope",
+ "category": "Objects",
+ "aliases": [
+ "email",
+ "envelope"
+ ],
+ "tags": [
+ "letter"
+ ]
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "envelope with arrow",
+ "category": "Objects",
+ "aliases": [
+ "envelope_with_arrow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ",
+ "description": "incoming envelope",
+ "category": "Objects",
+ "aliases": [
+ "incoming_envelope"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "e-mail",
+ "category": "Objects",
+ "aliases": [
+ "e-mail"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "love letter",
+ "category": "Objects",
+ "aliases": [
+ "love_letter"
+ ],
+ "tags": [
+ "email",
+ "envelope"
+ ]
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "inbox tray",
+ "category": "Objects",
+ "aliases": [
+ "inbox_tray"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "outbox tray",
+ "category": "Objects",
+ "aliases": [
+ "outbox_tray"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "package",
+ "category": "Objects",
+ "aliases": [
+ "package"
+ ],
+ "tags": [
+ "shipping"
+ ]
+ },
+ {
+ "emoji": "๐ท",
+ "description": "label",
+ "category": "Objects",
+ "aliases": [
+ "label"
+ ],
+ "tags": [
+ "tag"
+ ]
+ },
+ {
+ "emoji": "๐ช",
+ "description": "closed mailbox with lowered flag",
+ "category": "Objects",
+ "aliases": [
+ "mailbox_closed"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "closed mailbox with raised flag",
+ "category": "Objects",
+ "aliases": [
+ "mailbox"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "open mailbox with raised flag",
+ "category": "Objects",
+ "aliases": [
+ "mailbox_with_mail"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "open mailbox with lowered flag",
+ "category": "Objects",
+ "aliases": [
+ "mailbox_with_no_mail"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "postbox",
+ "category": "Objects",
+ "aliases": [
+ "postbox"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "postal horn",
+ "category": "Objects",
+ "aliases": [
+ "postal_horn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "scroll",
+ "category": "Objects",
+ "aliases": [
+ "scroll"
+ ],
+ "tags": [
+ "document"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "page with curl",
+ "category": "Objects",
+ "aliases": [
+ "page_with_curl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "page facing up",
+ "category": "Objects",
+ "aliases": [
+ "page_facing_up"
+ ],
+ "tags": [
+ "document"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "bookmark tabs",
+ "category": "Objects",
+ "aliases": [
+ "bookmark_tabs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bar chart",
+ "category": "Objects",
+ "aliases": [
+ "bar_chart"
+ ],
+ "tags": [
+ "stats",
+ "metrics"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "chart increasing",
+ "category": "Objects",
+ "aliases": [
+ "chart_with_upwards_trend"
+ ],
+ "tags": [
+ "graph",
+ "metrics"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "chart decreasing",
+ "category": "Objects",
+ "aliases": [
+ "chart_with_downwards_trend"
+ ],
+ "tags": [
+ "graph",
+ "metrics"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "spiral notepad",
+ "category": "Objects",
+ "aliases": [
+ "spiral_notepad"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "spiral calendar",
+ "category": "Objects",
+ "aliases": [
+ "spiral_calendar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "tear-off calendar",
+ "category": "Objects",
+ "aliases": [
+ "calendar"
+ ],
+ "tags": [
+ "schedule"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "calendar",
+ "category": "Objects",
+ "aliases": [
+ "date"
+ ],
+ "tags": [
+ "calendar",
+ "schedule"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "card index",
+ "category": "Objects",
+ "aliases": [
+ "card_index"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "card file box",
+ "category": "Objects",
+ "aliases": [
+ "card_file_box"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "ballot box with ballot",
+ "category": "Objects",
+ "aliases": [
+ "ballot_box"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "file cabinet",
+ "category": "Objects",
+ "aliases": [
+ "file_cabinet"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "clipboard",
+ "category": "Objects",
+ "aliases": [
+ "clipboard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "file folder",
+ "category": "Objects",
+ "aliases": [
+ "file_folder"
+ ],
+ "tags": [
+ "directory"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "open file folder",
+ "category": "Objects",
+ "aliases": [
+ "open_file_folder"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "card index dividers",
+ "category": "Objects",
+ "aliases": [
+ "card_index_dividers"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "rolled-up newspaper",
+ "category": "Objects",
+ "aliases": [
+ "newspaper_roll"
+ ],
+ "tags": [
+ "press"
+ ]
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "newspaper",
+ "category": "Objects",
+ "aliases": [
+ "newspaper"
+ ],
+ "tags": [
+ "press"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "notebook",
+ "category": "Objects",
+ "aliases": [
+ "notebook"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "notebook with decorative cover",
+ "category": "Objects",
+ "aliases": [
+ "notebook_with_decorative_cover"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ledger",
+ "category": "Objects",
+ "aliases": [
+ "ledger"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "closed book",
+ "category": "Objects",
+ "aliases": [
+ "closed_book"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "green book",
+ "category": "Objects",
+ "aliases": [
+ "green_book"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "blue book",
+ "category": "Objects",
+ "aliases": [
+ "blue_book"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "orange book",
+ "category": "Objects",
+ "aliases": [
+ "orange_book"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "books",
+ "category": "Objects",
+ "aliases": [
+ "books"
+ ],
+ "tags": [
+ "library"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "open book",
+ "category": "Objects",
+ "aliases": [
+ "book",
+ "open_book"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bookmark",
+ "category": "Objects",
+ "aliases": [
+ "bookmark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "link",
+ "category": "Objects",
+ "aliases": [
+ "link"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "paperclip",
+ "category": "Objects",
+ "aliases": [
+ "paperclip"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "linked paperclips",
+ "category": "Objects",
+ "aliases": [
+ "paperclips"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "triangular ruler",
+ "category": "Objects",
+ "aliases": [
+ "triangular_ruler"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "straight ruler",
+ "category": "Objects",
+ "aliases": [
+ "straight_ruler"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "pushpin",
+ "category": "Objects",
+ "aliases": [
+ "pushpin"
+ ],
+ "tags": [
+ "location"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "round pushpin",
+ "category": "Objects",
+ "aliases": [
+ "round_pushpin"
+ ],
+ "tags": [
+ "location"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "scissors",
+ "category": "Objects",
+ "aliases": [
+ "scissors"
+ ],
+ "tags": [
+ "cut"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "pen",
+ "category": "Objects",
+ "aliases": [
+ "pen"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "fountain pen",
+ "category": "Objects",
+ "aliases": [
+ "fountain_pen"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "black nib",
+ "category": "Objects",
+ "aliases": [
+ "black_nib"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "paintbrush",
+ "category": "Objects",
+ "aliases": [
+ "paintbrush"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "crayon",
+ "category": "Objects",
+ "aliases": [
+ "crayon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "memo",
+ "category": "Objects",
+ "aliases": [
+ "memo",
+ "pencil"
+ ],
+ "tags": [
+ "document",
+ "note"
+ ]
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "pencil",
+ "category": "Objects",
+ "aliases": [
+ "pencil2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "left-pointing magnifying glass",
+ "category": "Objects",
+ "aliases": [
+ "mag"
+ ],
+ "tags": [
+ "search",
+ "zoom"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "right-pointing magnifying glass",
+ "category": "Objects",
+ "aliases": [
+ "mag_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "locked with pen",
+ "category": "Objects",
+ "aliases": [
+ "lock_with_ink_pen"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "locked with key",
+ "category": "Objects",
+ "aliases": [
+ "closed_lock_with_key"
+ ],
+ "tags": [
+ "security"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "locked",
+ "category": "Objects",
+ "aliases": [
+ "lock"
+ ],
+ "tags": [
+ "security",
+ "private"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "unlocked",
+ "category": "Objects",
+ "aliases": [
+ "unlock"
+ ],
+ "tags": [
+ "security"
+ ]
+ },
+ {
+ "emoji": "โค๏ธ",
+ "description": "red heart",
+ "category": "Symbols",
+ "aliases": [
+ "heart"
+ ],
+ "tags": [
+ "love"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "yellow heart",
+ "category": "Symbols",
+ "aliases": [
+ "yellow_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "green heart",
+ "category": "Symbols",
+ "aliases": [
+ "green_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "blue heart",
+ "category": "Symbols",
+ "aliases": [
+ "blue_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "purple heart",
+ "category": "Symbols",
+ "aliases": [
+ "purple_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "black heart",
+ "category": "Symbols",
+ "aliases": [
+ "black_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "broken heart",
+ "category": "Symbols",
+ "aliases": [
+ "broken_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฃ๏ธ",
+ "description": "heavy heart exclamation",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_heart_exclamation"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "two hearts",
+ "category": "Symbols",
+ "aliases": [
+ "two_hearts"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "revolving hearts",
+ "category": "Symbols",
+ "aliases": [
+ "revolving_hearts"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "beating heart",
+ "category": "Symbols",
+ "aliases": [
+ "heartbeat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "growing heart",
+ "category": "Symbols",
+ "aliases": [
+ "heartpulse"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "sparkling heart",
+ "category": "Symbols",
+ "aliases": [
+ "sparkling_heart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "heart with arrow",
+ "category": "Symbols",
+ "aliases": [
+ "cupid"
+ ],
+ "tags": [
+ "love",
+ "heart"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "heart with ribbon",
+ "category": "Symbols",
+ "aliases": [
+ "gift_heart"
+ ],
+ "tags": [
+ "chocolates"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "heart decoration",
+ "category": "Symbols",
+ "aliases": [
+ "heart_decoration"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฎ๏ธ",
+ "description": "peace symbol",
+ "category": "Symbols",
+ "aliases": [
+ "peace_symbol"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "latin cross",
+ "category": "Symbols",
+ "aliases": [
+ "latin_cross"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช๏ธ",
+ "description": "star and crescent",
+ "category": "Symbols",
+ "aliases": [
+ "star_and_crescent"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "om",
+ "category": "Symbols",
+ "aliases": [
+ "om"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โธ๏ธ",
+ "description": "wheel of dharma",
+ "category": "Symbols",
+ "aliases": [
+ "wheel_of_dharma"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โก๏ธ",
+ "description": "star of David",
+ "category": "Symbols",
+ "aliases": [
+ "star_of_david"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "dotted six-pointed star",
+ "category": "Symbols",
+ "aliases": [
+ "six_pointed_star"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "menorah",
+ "category": "Symbols",
+ "aliases": [
+ "menorah"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฏ๏ธ",
+ "description": "yin yang",
+ "category": "Symbols",
+ "aliases": [
+ "yin_yang"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฆ๏ธ",
+ "description": "orthodox cross",
+ "category": "Symbols",
+ "aliases": [
+ "orthodox_cross"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "place of worship",
+ "category": "Symbols",
+ "aliases": [
+ "place_of_worship"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "Ophiuchus",
+ "category": "Symbols",
+ "aliases": [
+ "ophiuchus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Aries",
+ "category": "Symbols",
+ "aliases": [
+ "aries"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Taurus",
+ "category": "Symbols",
+ "aliases": [
+ "taurus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Gemini",
+ "category": "Symbols",
+ "aliases": [
+ "gemini"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Cancer",
+ "category": "Symbols",
+ "aliases": [
+ "cancer"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Leo",
+ "category": "Symbols",
+ "aliases": [
+ "leo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Virgo",
+ "category": "Symbols",
+ "aliases": [
+ "virgo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Libra",
+ "category": "Symbols",
+ "aliases": [
+ "libra"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Scorpius",
+ "category": "Symbols",
+ "aliases": [
+ "scorpius"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Sagittarius",
+ "category": "Symbols",
+ "aliases": [
+ "sagittarius"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Capricorn",
+ "category": "Symbols",
+ "aliases": [
+ "capricorn"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Aquarius",
+ "category": "Symbols",
+ "aliases": [
+ "aquarius"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "Pisces",
+ "category": "Symbols",
+ "aliases": [
+ "pisces"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ID button",
+ "category": "Symbols",
+ "aliases": [
+ "id"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "atom symbol",
+ "category": "Symbols",
+ "aliases": [
+ "atom_symbol"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "Japanese โacceptableโ button",
+ "category": "Symbols",
+ "aliases": [
+ "accept"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โข๏ธ",
+ "description": "radioactive",
+ "category": "Symbols",
+ "aliases": [
+ "radioactive"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฃ๏ธ",
+ "description": "biohazard",
+ "category": "Symbols",
+ "aliases": [
+ "biohazard"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "mobile phone off",
+ "category": "Symbols",
+ "aliases": [
+ "mobile_phone_off"
+ ],
+ "tags": [
+ "mute",
+ "off"
+ ]
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "vibration mode",
+ "category": "Symbols",
+ "aliases": [
+ "vibration_mode"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "Japanese โnot free of chargeโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u6709"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐๏ธ",
+ "description": "Japanese โfree of chargeโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u7121"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "Japanese โapplicationโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u7533"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "Japanese โopen for businessโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u55b6"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท๏ธ",
+ "description": "Japanese โmonthly amountโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u6708"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โด๏ธ",
+ "description": "eight-pointed star",
+ "category": "Symbols",
+ "aliases": [
+ "eight_pointed_black_star"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "VS button",
+ "category": "Symbols",
+ "aliases": [
+ "vs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "white flower",
+ "category": "Symbols",
+ "aliases": [
+ "white_flower"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "Japanese โbargainโ button",
+ "category": "Symbols",
+ "aliases": [
+ "ideograph_advantage"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "ใ๏ธ",
+ "description": "Japanese โsecretโ button",
+ "category": "Symbols",
+ "aliases": [
+ "secret"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "ใ๏ธ",
+ "description": "Japanese โcongratulationsโ button",
+ "category": "Symbols",
+ "aliases": [
+ "congratulations"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "Japanese โpassing gradeโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u5408"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "Japanese โno vacancyโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u6e80"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "Japanese โdiscountโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u5272"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "Japanese โprohibitedโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u7981"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
ฐ๏ธ",
+ "description": "A button (blood type)",
+ "category": "Symbols",
+ "aliases": [
+ "a"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
ฑ๏ธ",
+ "description": "B button (blood type)",
+ "category": "Symbols",
+ "aliases": [
+ "b"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "AB button (blood type)",
+ "category": "Symbols",
+ "aliases": [
+ "ab"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "CL button",
+ "category": "Symbols",
+ "aliases": [
+ "cl"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
พ๏ธ",
+ "description": "O button (blood type)",
+ "category": "Symbols",
+ "aliases": [
+ "o2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "SOS button",
+ "category": "Symbols",
+ "aliases": [
+ "sos"
+ ],
+ "tags": [
+ "help",
+ "emergency"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "cross mark",
+ "category": "Symbols",
+ "aliases": [
+ "x"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โญ๏ธ",
+ "description": "heavy large circle",
+ "category": "Symbols",
+ "aliases": [
+ "o"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "stop sign",
+ "category": "Symbols",
+ "aliases": [
+ "stop_sign"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "no entry",
+ "category": "Symbols",
+ "aliases": [
+ "no_entry"
+ ],
+ "tags": [
+ "limit"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "name badge",
+ "category": "Symbols",
+ "aliases": [
+ "name_badge"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ",
+ "description": "prohibited",
+ "category": "Symbols",
+ "aliases": [
+ "no_entry_sign"
+ ],
+ "tags": [
+ "block",
+ "forbidden"
+ ]
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "hundred points",
+ "category": "Symbols",
+ "aliases": [
+ "100"
+ ],
+ "tags": [
+ "score",
+ "perfect"
+ ]
+ },
+ {
+ "emoji": "๐ข",
+ "description": "anger symbol",
+ "category": "Symbols",
+ "aliases": [
+ "anger"
+ ],
+ "tags": [
+ "angry"
+ ]
+ },
+ {
+ "emoji": "โจ๏ธ",
+ "description": "hot springs",
+ "category": "Symbols",
+ "aliases": [
+ "hotsprings"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "no pedestrians",
+ "category": "Symbols",
+ "aliases": [
+ "no_pedestrians"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "no littering",
+ "category": "Symbols",
+ "aliases": [
+ "do_not_litter"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "no bicycles",
+ "category": "Symbols",
+ "aliases": [
+ "no_bicycles"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "non-potable water",
+ "category": "Symbols",
+ "aliases": [
+ "non-potable_water"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "no one under eighteen",
+ "category": "Symbols",
+ "aliases": [
+ "underage"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "no mobile phones",
+ "category": "Symbols",
+ "aliases": [
+ "no_mobile_phones"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "no smoking",
+ "category": "Symbols",
+ "aliases": [
+ "no_smoking"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "exclamation mark",
+ "category": "Symbols",
+ "aliases": [
+ "exclamation",
+ "heavy_exclamation_mark"
+ ],
+ "tags": [
+ "bang"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "white exclamation mark",
+ "category": "Symbols",
+ "aliases": [
+ "grey_exclamation"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "question mark",
+ "category": "Symbols",
+ "aliases": [
+ "question"
+ ],
+ "tags": [
+ "confused"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "white question mark",
+ "category": "Symbols",
+ "aliases": [
+ "grey_question"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โผ๏ธ",
+ "description": "double exclamation mark",
+ "category": "Symbols",
+ "aliases": [
+ "bangbang"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "exclamation question mark",
+ "category": "Symbols",
+ "aliases": [
+ "interrobang"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐
",
+ "description": "dim button",
+ "category": "Symbols",
+ "aliases": [
+ "low_brightness"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "bright button",
+ "category": "Symbols",
+ "aliases": [
+ "high_brightness"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "ใฝ๏ธ",
+ "description": "part alternation mark",
+ "category": "Symbols",
+ "aliases": [
+ "part_alternation_mark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ ๏ธ",
+ "description": "warning",
+ "category": "Symbols",
+ "aliases": [
+ "warning"
+ ],
+ "tags": [
+ "wip"
+ ]
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "children crossing",
+ "category": "Symbols",
+ "aliases": [
+ "children_crossing"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "trident emblem",
+ "category": "Symbols",
+ "aliases": [
+ "trident"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "fleur-de-lis",
+ "category": "Symbols",
+ "aliases": [
+ "fleur_de_lis"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ",
+ "description": "Japanese symbol for beginner",
+ "category": "Symbols",
+ "aliases": [
+ "beginner"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โป๏ธ",
+ "description": "recycling symbol",
+ "category": "Symbols",
+ "aliases": [
+ "recycle"
+ ],
+ "tags": [
+ "environment",
+ "green"
+ ]
+ },
+ {
+ "emoji": "โ
",
+ "description": "white heavy check mark",
+ "category": "Symbols",
+ "aliases": [
+ "white_check_mark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ๏ธ",
+ "description": "Japanese โreservedโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u6307"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "chart increasing with yen",
+ "category": "Symbols",
+ "aliases": [
+ "chart"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "sparkle",
+ "category": "Symbols",
+ "aliases": [
+ "sparkle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โณ๏ธ",
+ "description": "eight-spoked asterisk",
+ "category": "Symbols",
+ "aliases": [
+ "eight_spoked_asterisk"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "cross mark button",
+ "category": "Symbols",
+ "aliases": [
+ "negative_squared_cross_mark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "globe with meridians",
+ "category": "Symbols",
+ "aliases": [
+ "globe_with_meridians"
+ ],
+ "tags": [
+ "world",
+ "global",
+ "international"
+ ]
+ },
+ {
+ "emoji": "๐ ",
+ "description": "diamond with a dot",
+ "category": "Symbols",
+ "aliases": [
+ "diamond_shape_with_a_dot_inside"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "circled M",
+ "category": "Symbols",
+ "aliases": [
+ "m"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "cyclone",
+ "category": "Symbols",
+ "aliases": [
+ "cyclone"
+ ],
+ "tags": [
+ "swirl"
+ ]
+ },
+ {
+ "emoji": "๐ค",
+ "description": "zzz",
+ "category": "Symbols",
+ "aliases": [
+ "zzz"
+ ],
+ "tags": [
+ "sleeping"
+ ]
+ },
+ {
+ "emoji": "๐ง",
+ "description": "ATM sign",
+ "category": "Symbols",
+ "aliases": [
+ "atm"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ",
+ "description": "water closet",
+ "category": "Symbols",
+ "aliases": [
+ "wc"
+ ],
+ "tags": [
+ "toilet",
+ "restroom"
+ ]
+ },
+ {
+ "emoji": "โฟ๏ธ",
+ "description": "wheelchair symbol",
+ "category": "Symbols",
+ "aliases": [
+ "wheelchair"
+ ],
+ "tags": [
+ "accessibility"
+ ]
+ },
+ {
+ "emoji": "๐
ฟ๏ธ",
+ "description": "P button",
+ "category": "Symbols",
+ "aliases": [
+ "parking"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "Japanese โvacancyโ button",
+ "category": "Symbols",
+ "aliases": [
+ "u7a7a"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐๏ธ",
+ "description": "Japanese โservice chargeโ button",
+ "category": "Symbols",
+ "aliases": [
+ "sa"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "passport control",
+ "category": "Symbols",
+ "aliases": [
+ "passport_control"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "customs",
+ "category": "Symbols",
+ "aliases": [
+ "customs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "baggage claim",
+ "category": "Symbols",
+ "aliases": [
+ "baggage_claim"
+ ],
+ "tags": [
+ "airport"
+ ]
+ },
+ {
+ "emoji": "๐
",
+ "description": "left luggage",
+ "category": "Symbols",
+ "aliases": [
+ "left_luggage"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "menโs room",
+ "category": "Symbols",
+ "aliases": [
+ "mens"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "womenโs room",
+ "category": "Symbols",
+ "aliases": [
+ "womens"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "baby symbol",
+ "category": "Symbols",
+ "aliases": [
+ "baby_symbol"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "restroom",
+ "category": "Symbols",
+ "aliases": [
+ "restroom"
+ ],
+ "tags": [
+ "toilet"
+ ]
+ },
+ {
+ "emoji": "๐ฎ",
+ "description": "litter in bin sign",
+ "category": "Symbols",
+ "aliases": [
+ "put_litter_in_its_place"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "cinema",
+ "category": "Symbols",
+ "aliases": [
+ "cinema"
+ ],
+ "tags": [
+ "film",
+ "movie"
+ ]
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "antenna bars",
+ "category": "Symbols",
+ "aliases": [
+ "signal_strength"
+ ],
+ "tags": [
+ "wifi"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "Japanese โhereโ button",
+ "category": "Symbols",
+ "aliases": [
+ "koko"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "input symbols",
+ "category": "Symbols",
+ "aliases": [
+ "symbols"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โน๏ธ",
+ "description": "information",
+ "category": "Symbols",
+ "aliases": [
+ "information_source"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "input latin letters",
+ "category": "Symbols",
+ "aliases": [
+ "abc"
+ ],
+ "tags": [
+ "alphabet"
+ ]
+ },
+ {
+ "emoji": "๐ก",
+ "description": "input latin lowercase",
+ "category": "Symbols",
+ "aliases": [
+ "abcd"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "input latin uppercase",
+ "category": "Symbols",
+ "aliases": [
+ "capital_abcd"
+ ],
+ "tags": [
+ "letters"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "NG button",
+ "category": "Symbols",
+ "aliases": [
+ "ng"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "OK button",
+ "category": "Symbols",
+ "aliases": [
+ "ok"
+ ],
+ "tags": [
+ "yes"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "UP! button",
+ "category": "Symbols",
+ "aliases": [
+ "up"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "COOL button",
+ "category": "Symbols",
+ "aliases": [
+ "cool"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "NEW button",
+ "category": "Symbols",
+ "aliases": [
+ "new"
+ ],
+ "tags": [
+ "fresh"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "FREE button",
+ "category": "Symbols",
+ "aliases": [
+ "free"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "0๏ธโฃ",
+ "description": "keycap: 0",
+ "category": "Symbols",
+ "aliases": [
+ "zero"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "1๏ธโฃ",
+ "description": "keycap: 1",
+ "category": "Symbols",
+ "aliases": [
+ "one"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "2๏ธโฃ",
+ "description": "keycap: 2",
+ "category": "Symbols",
+ "aliases": [
+ "two"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "3๏ธโฃ",
+ "description": "keycap: 3",
+ "category": "Symbols",
+ "aliases": [
+ "three"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "4๏ธโฃ",
+ "description": "keycap: 4",
+ "category": "Symbols",
+ "aliases": [
+ "four"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "5๏ธโฃ",
+ "description": "keycap: 5",
+ "category": "Symbols",
+ "aliases": [
+ "five"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "6๏ธโฃ",
+ "description": "keycap: 6",
+ "category": "Symbols",
+ "aliases": [
+ "six"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "7๏ธโฃ",
+ "description": "keycap: 7",
+ "category": "Symbols",
+ "aliases": [
+ "seven"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "8๏ธโฃ",
+ "description": "keycap: 8",
+ "category": "Symbols",
+ "aliases": [
+ "eight"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "9๏ธโฃ",
+ "description": "keycap: 9",
+ "category": "Symbols",
+ "aliases": [
+ "nine"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "keycap 10",
+ "category": "Symbols",
+ "aliases": [
+ "keycap_ten"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "input numbers",
+ "category": "Symbols",
+ "aliases": [
+ "1234"
+ ],
+ "tags": [
+ "numbers"
+ ]
+ },
+ {
+ "emoji": "#๏ธโฃ",
+ "description": "keycap: #",
+ "category": "Symbols",
+ "aliases": [
+ "hash"
+ ],
+ "tags": [
+ "number"
+ ]
+ },
+ {
+ "emoji": "*๏ธโฃ",
+ "description": "keycap: *",
+ "category": "Symbols",
+ "aliases": [
+ "asterisk"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โถ๏ธ",
+ "description": "play button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_forward"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โธ",
+ "description": "pause button",
+ "category": "Symbols",
+ "aliases": [
+ "pause_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฏ",
+ "description": "play or pause button",
+ "category": "Symbols",
+ "aliases": [
+ "play_or_pause_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โน",
+ "description": "stop button",
+ "category": "Symbols",
+ "aliases": [
+ "stop_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โบ",
+ "description": "record button",
+ "category": "Symbols",
+ "aliases": [
+ "record_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โญ",
+ "description": "next track button",
+ "category": "Symbols",
+ "aliases": [
+ "next_track_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฎ",
+ "description": "last track button",
+ "category": "Symbols",
+ "aliases": [
+ "previous_track_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฉ",
+ "description": "fast-forward button",
+ "category": "Symbols",
+ "aliases": [
+ "fast_forward"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช",
+ "description": "fast reverse button",
+ "category": "Symbols",
+ "aliases": [
+ "rewind"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โซ",
+ "description": "fast up button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_double_up"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ",
+ "description": "fast down button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_double_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "reverse button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_backward"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ",
+ "description": "up button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_up_small"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ",
+ "description": "down button",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_down_small"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โก๏ธ",
+ "description": "right arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ
๏ธ",
+ "description": "left arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_left"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ๏ธ",
+ "description": "up arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_up"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ๏ธ",
+ "description": "down arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "up-right arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_upper_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "down-right arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_lower_right"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "down-left arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_lower_left"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "up-left arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_upper_left"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "up-down arrow",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_up_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "left-right arrow",
+ "category": "Symbols",
+ "aliases": [
+ "left_right_arrow"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช๏ธ",
+ "description": "left arrow curving right",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_right_hook"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฉ๏ธ",
+ "description": "right arrow curving left",
+ "category": "Symbols",
+ "aliases": [
+ "leftwards_arrow_with_hook"
+ ],
+ "tags": [
+ "return"
+ ]
+ },
+ {
+ "emoji": "โคด๏ธ",
+ "description": "right arrow curving up",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_heading_up"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โคต๏ธ",
+ "description": "right arrow curving down",
+ "category": "Symbols",
+ "aliases": [
+ "arrow_heading_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "shuffle tracks button",
+ "category": "Symbols",
+ "aliases": [
+ "twisted_rightwards_arrows"
+ ],
+ "tags": [
+ "shuffle"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "repeat button",
+ "category": "Symbols",
+ "aliases": [
+ "repeat"
+ ],
+ "tags": [
+ "loop"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "repeat single button",
+ "category": "Symbols",
+ "aliases": [
+ "repeat_one"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "anticlockwise arrows button",
+ "category": "Symbols",
+ "aliases": [
+ "arrows_counterclockwise"
+ ],
+ "tags": [
+ "sync"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "clockwise vertical arrows",
+ "category": "Symbols",
+ "aliases": [
+ "arrows_clockwise"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "musical note",
+ "category": "Symbols",
+ "aliases": [
+ "musical_note"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "musical notes",
+ "category": "Symbols",
+ "aliases": [
+ "notes"
+ ],
+ "tags": [
+ "music"
+ ]
+ },
+ {
+ "emoji": "โ",
+ "description": "heavy plus sign",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_plus_sign"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "heavy minus sign",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_minus_sign"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ",
+ "description": "heavy division sign",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_division_sign"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "heavy multiplication x",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_multiplication_x"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "heavy dollar sign",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_dollar_sign"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ",
+ "description": "currency exchange",
+ "category": "Symbols",
+ "aliases": [
+ "currency_exchange"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โข๏ธ",
+ "description": "trade mark",
+ "category": "Symbols",
+ "aliases": [
+ "tm"
+ ],
+ "tags": [
+ "trademark"
+ ]
+ },
+ {
+ "emoji": "ยฉ๏ธ",
+ "description": "copyright",
+ "category": "Symbols",
+ "aliases": [
+ "copyright"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "ยฎ๏ธ",
+ "description": "registered",
+ "category": "Symbols",
+ "aliases": [
+ "registered"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "ใฐ๏ธ",
+ "description": "wavy dash",
+ "category": "Symbols",
+ "aliases": [
+ "wavy_dash"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฐ",
+ "description": "curly loop",
+ "category": "Symbols",
+ "aliases": [
+ "curly_loop"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฟ",
+ "description": "double curly loop",
+ "category": "Symbols",
+ "aliases": [
+ "loop"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "END arrow",
+ "category": "Symbols",
+ "aliases": [
+ "end"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "BACK arrow",
+ "category": "Symbols",
+ "aliases": [
+ "back"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ON! arrow",
+ "category": "Symbols",
+ "aliases": [
+ "on"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "TOP arrow",
+ "category": "Symbols",
+ "aliases": [
+ "top"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "SOON arrow",
+ "category": "Symbols",
+ "aliases": [
+ "soon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "heavy check mark",
+ "category": "Symbols",
+ "aliases": [
+ "heavy_check_mark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ๏ธ",
+ "description": "ballot box with check",
+ "category": "Symbols",
+ "aliases": [
+ "ballot_box_with_check"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "radio button",
+ "category": "Symbols",
+ "aliases": [
+ "radio_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช๏ธ",
+ "description": "white circle",
+ "category": "Symbols",
+ "aliases": [
+ "white_circle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โซ๏ธ",
+ "description": "black circle",
+ "category": "Symbols",
+ "aliases": [
+ "black_circle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "red circle",
+ "category": "Symbols",
+ "aliases": [
+ "red_circle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต",
+ "description": "blue circle",
+ "category": "Symbols",
+ "aliases": [
+ "large_blue_circle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ",
+ "description": "red triangle pointed up",
+ "category": "Symbols",
+ "aliases": [
+ "small_red_triangle"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป",
+ "description": "red triangle pointed down",
+ "category": "Symbols",
+ "aliases": [
+ "small_red_triangle_down"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ",
+ "description": "small orange diamond",
+ "category": "Symbols",
+ "aliases": [
+ "small_orange_diamond"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น",
+ "description": "small blue diamond",
+ "category": "Symbols",
+ "aliases": [
+ "small_blue_diamond"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ",
+ "description": "large orange diamond",
+ "category": "Symbols",
+ "aliases": [
+ "large_orange_diamond"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท",
+ "description": "large blue diamond",
+ "category": "Symbols",
+ "aliases": [
+ "large_blue_diamond"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ",
+ "description": "white square button",
+ "category": "Symbols",
+ "aliases": [
+ "white_square_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ",
+ "description": "black square button",
+ "category": "Symbols",
+ "aliases": [
+ "black_square_button"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โช๏ธ",
+ "description": "black small square",
+ "category": "Symbols",
+ "aliases": [
+ "black_small_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โซ๏ธ",
+ "description": "white small square",
+ "category": "Symbols",
+ "aliases": [
+ "white_small_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โพ๏ธ",
+ "description": "black medium-small square",
+ "category": "Symbols",
+ "aliases": [
+ "black_medium_small_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฝ๏ธ",
+ "description": "white medium-small square",
+ "category": "Symbols",
+ "aliases": [
+ "white_medium_small_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โผ๏ธ",
+ "description": "black medium square",
+ "category": "Symbols",
+ "aliases": [
+ "black_medium_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โป๏ธ",
+ "description": "white medium square",
+ "category": "Symbols",
+ "aliases": [
+ "white_medium_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ๏ธ",
+ "description": "black large square",
+ "category": "Symbols",
+ "aliases": [
+ "black_large_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฌ๏ธ",
+ "description": "white large square",
+ "category": "Symbols",
+ "aliases": [
+ "white_large_square"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "speaker low volume",
+ "category": "Symbols",
+ "aliases": [
+ "speaker"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "muted speaker",
+ "category": "Symbols",
+ "aliases": [
+ "mute"
+ ],
+ "tags": [
+ "sound",
+ "volume"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "speaker medium volume",
+ "category": "Symbols",
+ "aliases": [
+ "sound"
+ ],
+ "tags": [
+ "volume"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "speaker high volume",
+ "category": "Symbols",
+ "aliases": [
+ "loud_sound"
+ ],
+ "tags": [
+ "volume"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "bell",
+ "category": "Symbols",
+ "aliases": [
+ "bell"
+ ],
+ "tags": [
+ "sound",
+ "notification"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "bell with slash",
+ "category": "Symbols",
+ "aliases": [
+ "no_bell"
+ ],
+ "tags": [
+ "volume",
+ "off"
+ ]
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "megaphone",
+ "category": "Symbols",
+ "aliases": [
+ "mega"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "loudspeaker",
+ "category": "Symbols",
+ "aliases": [
+ "loudspeaker"
+ ],
+ "tags": [
+ "announcement"
+ ]
+ },
+ {
+ "emoji": "๐โ๐จ",
+ "description": "eye in speech bubble",
+ "category": "Symbols",
+ "aliases": [
+ "eye_speech_bubble"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ",
+ "description": "speech balloon",
+ "category": "Symbols",
+ "aliases": [
+ "speech_balloon"
+ ],
+ "tags": [
+ "comment"
+ ]
+ },
+ {
+ "emoji": "๐ญ",
+ "description": "thought balloon",
+ "category": "Symbols",
+ "aliases": [
+ "thought_balloon"
+ ],
+ "tags": [
+ "thinking"
+ ]
+ },
+ {
+ "emoji": "๐ฏ",
+ "description": "right anger bubble",
+ "category": "Symbols",
+ "aliases": [
+ "right_anger_bubble"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โ ๏ธ",
+ "description": "spade suit",
+ "category": "Symbols",
+ "aliases": [
+ "spades"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฃ๏ธ",
+ "description": "club suit",
+ "category": "Symbols",
+ "aliases": [
+ "clubs"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฅ๏ธ",
+ "description": "heart suit",
+ "category": "Symbols",
+ "aliases": [
+ "hearts"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "โฆ๏ธ",
+ "description": "diamond suit",
+ "category": "Symbols",
+ "aliases": [
+ "diamonds"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "joker",
+ "category": "Symbols",
+ "aliases": [
+ "black_joker"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "flower playing cards",
+ "category": "Symbols",
+ "aliases": [
+ "flower_playing_cards"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐๏ธ",
+ "description": "mahjong red dragon",
+ "category": "Symbols",
+ "aliases": [
+ "mahjong"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "one oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock1"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "two oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock2"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "three oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock3"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "four oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock4"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "five oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock5"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "six oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock6"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "seven oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock7"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "eight oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock8"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "nine oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock9"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "ten oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock10"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "eleven oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock11"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "twelve oโclock",
+ "category": "Symbols",
+ "aliases": [
+ "clock12"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "one-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock130"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "two-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock230"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "three-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock330"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "four-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock430"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ ",
+ "description": "five-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock530"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ก",
+ "description": "six-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock630"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ข",
+ "description": "seven-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock730"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฃ",
+ "description": "eight-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock830"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ค",
+ "description": "nine-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock930"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฅ",
+ "description": "ten-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock1030"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ",
+ "description": "eleven-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock1130"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง",
+ "description": "twelve-thirty",
+ "category": "Symbols",
+ "aliases": [
+ "clock1230"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๏ธ",
+ "description": "white flag",
+ "category": "Flags",
+ "aliases": [
+ "white_flag"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด",
+ "description": "black flag",
+ "category": "Flags",
+ "aliases": [
+ "black_flag"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐",
+ "description": "chequered flag",
+ "category": "Flags",
+ "aliases": [
+ "checkered_flag"
+ ],
+ "tags": [
+ "milestone",
+ "finish"
+ ]
+ },
+ {
+ "emoji": "๐ฉ",
+ "description": "triangular flag",
+ "category": "Flags",
+ "aliases": [
+ "triangular_flag_on_post"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๏ธโ๐",
+ "description": "rainbow flag",
+ "category": "Flags",
+ "aliases": [
+ "rainbow_flag"
+ ],
+ "tags": [
+ "pride"
+ ]
+ },
+ {
+ "emoji": "๐ฆ๐ซ",
+ "description": "Afghanistan",
+ "category": "Flags",
+ "aliases": [
+ "afghanistan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฝ",
+ "description": "ร
land Islands",
+ "category": "Flags",
+ "aliases": [
+ "aland_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฑ",
+ "description": "Albania",
+ "category": "Flags",
+ "aliases": [
+ "albania"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ฟ",
+ "description": "Algeria",
+ "category": "Flags",
+ "aliases": [
+ "algeria"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ธ",
+ "description": "American Samoa",
+ "category": "Flags",
+ "aliases": [
+ "american_samoa"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฉ",
+ "description": "Andorra",
+ "category": "Flags",
+ "aliases": [
+ "andorra"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ด",
+ "description": "Angola",
+ "category": "Flags",
+ "aliases": [
+ "angola"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฎ",
+ "description": "Anguilla",
+ "category": "Flags",
+ "aliases": [
+ "anguilla"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ถ",
+ "description": "Antarctica",
+ "category": "Flags",
+ "aliases": [
+ "antarctica"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฌ",
+ "description": "Antigua & Barbuda",
+ "category": "Flags",
+ "aliases": [
+ "antigua_barbuda"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ท",
+ "description": "Argentina",
+ "category": "Flags",
+ "aliases": [
+ "argentina"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฒ",
+ "description": "Armenia",
+ "category": "Flags",
+ "aliases": [
+ "armenia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ผ",
+ "description": "Aruba",
+ "category": "Flags",
+ "aliases": [
+ "aruba"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐บ",
+ "description": "Australia",
+ "category": "Flags",
+ "aliases": [
+ "australia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐น",
+ "description": "Austria",
+ "category": "Flags",
+ "aliases": [
+ "austria"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ฟ",
+ "description": "Azerbaijan",
+ "category": "Flags",
+ "aliases": [
+ "azerbaijan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ธ",
+ "description": "Bahamas",
+ "category": "Flags",
+ "aliases": [
+ "bahamas"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ญ",
+ "description": "Bahrain",
+ "category": "Flags",
+ "aliases": [
+ "bahrain"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฉ",
+ "description": "Bangladesh",
+ "category": "Flags",
+ "aliases": [
+ "bangladesh"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ง",
+ "description": "Barbados",
+ "category": "Flags",
+ "aliases": [
+ "barbados"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐พ",
+ "description": "Belarus",
+ "category": "Flags",
+ "aliases": [
+ "belarus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ช",
+ "description": "Belgium",
+ "category": "Flags",
+ "aliases": [
+ "belgium"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฟ",
+ "description": "Belize",
+ "category": "Flags",
+ "aliases": [
+ "belize"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฏ",
+ "description": "Benin",
+ "category": "Flags",
+ "aliases": [
+ "benin"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฒ",
+ "description": "Bermuda",
+ "category": "Flags",
+ "aliases": [
+ "bermuda"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐น",
+ "description": "Bhutan",
+ "category": "Flags",
+ "aliases": [
+ "bhutan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ด",
+ "description": "Bolivia",
+ "category": "Flags",
+ "aliases": [
+ "bolivia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ถ",
+ "description": "Caribbean Netherlands",
+ "category": "Flags",
+ "aliases": [
+ "caribbean_netherlands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฆ",
+ "description": "Bosnia & Herzegovina",
+ "category": "Flags",
+ "aliases": [
+ "bosnia_herzegovina"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ผ",
+ "description": "Botswana",
+ "category": "Flags",
+ "aliases": [
+ "botswana"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ท",
+ "description": "Brazil",
+ "category": "Flags",
+ "aliases": [
+ "brazil"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ด",
+ "description": "British Indian Ocean Territory",
+ "category": "Flags",
+ "aliases": [
+ "british_indian_ocean_territory"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐ฌ",
+ "description": "British Virgin Islands",
+ "category": "Flags",
+ "aliases": [
+ "british_virgin_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ณ",
+ "description": "Brunei",
+ "category": "Flags",
+ "aliases": [
+ "brunei"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฌ",
+ "description": "Bulgaria",
+ "category": "Flags",
+ "aliases": [
+ "bulgaria"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ซ",
+ "description": "Burkina Faso",
+ "category": "Flags",
+ "aliases": [
+ "burkina_faso"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฎ",
+ "description": "Burundi",
+ "category": "Flags",
+ "aliases": [
+ "burundi"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ป",
+ "description": "Cape Verde",
+ "category": "Flags",
+ "aliases": [
+ "cape_verde"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ญ",
+ "description": "Cambodia",
+ "category": "Flags",
+ "aliases": [
+ "cambodia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฒ",
+ "description": "Cameroon",
+ "category": "Flags",
+ "aliases": [
+ "cameroon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฆ",
+ "description": "Canada",
+ "category": "Flags",
+ "aliases": [
+ "canada"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐จ",
+ "description": "Canary Islands",
+ "category": "Flags",
+ "aliases": [
+ "canary_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐พ",
+ "description": "Cayman Islands",
+ "category": "Flags",
+ "aliases": [
+ "cayman_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ซ",
+ "description": "Central African Republic",
+ "category": "Flags",
+ "aliases": [
+ "central_african_republic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฉ",
+ "description": "Chad",
+ "category": "Flags",
+ "aliases": [
+ "chad"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฑ",
+ "description": "Chile",
+ "category": "Flags",
+ "aliases": [
+ "chile"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ณ",
+ "description": "China",
+ "category": "Flags",
+ "aliases": [
+ "cn"
+ ],
+ "tags": [
+ "china"
+ ]
+ },
+ {
+ "emoji": "๐จ๐ฝ",
+ "description": "Christmas Island",
+ "category": "Flags",
+ "aliases": [
+ "christmas_island"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐จ",
+ "description": "Cocos (Keeling) Islands",
+ "category": "Flags",
+ "aliases": [
+ "cocos_islands"
+ ],
+ "tags": [
+ "keeling"
+ ]
+ },
+ {
+ "emoji": "๐จ๐ด",
+ "description": "Colombia",
+ "category": "Flags",
+ "aliases": [
+ "colombia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ฒ",
+ "description": "Comoros",
+ "category": "Flags",
+ "aliases": [
+ "comoros"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฌ",
+ "description": "Congo - Brazzaville",
+ "category": "Flags",
+ "aliases": [
+ "congo_brazzaville"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฉ",
+ "description": "Congo - Kinshasa",
+ "category": "Flags",
+ "aliases": [
+ "congo_kinshasa"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฐ",
+ "description": "Cook Islands",
+ "category": "Flags",
+ "aliases": [
+ "cook_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ท",
+ "description": "Costa Rica",
+ "category": "Flags",
+ "aliases": [
+ "costa_rica"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฎ",
+ "description": "Cรดte dโIvoire",
+ "category": "Flags",
+ "aliases": [
+ "cote_divoire"
+ ],
+ "tags": [
+ "ivory"
+ ]
+ },
+ {
+ "emoji": "๐ญ๐ท",
+ "description": "Croatia",
+ "category": "Flags",
+ "aliases": [
+ "croatia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐บ",
+ "description": "Cuba",
+ "category": "Flags",
+ "aliases": [
+ "cuba"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ผ",
+ "description": "Curaรงao",
+ "category": "Flags",
+ "aliases": [
+ "curacao"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐พ",
+ "description": "Cyprus",
+ "category": "Flags",
+ "aliases": [
+ "cyprus"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ฟ",
+ "description": "Czech Republic",
+ "category": "Flags",
+ "aliases": [
+ "czech_republic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ฐ",
+ "description": "Denmark",
+ "category": "Flags",
+ "aliases": [
+ "denmark"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ฏ",
+ "description": "Djibouti",
+ "category": "Flags",
+ "aliases": [
+ "djibouti"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ฒ",
+ "description": "Dominica",
+ "category": "Flags",
+ "aliases": [
+ "dominica"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ด",
+ "description": "Dominican Republic",
+ "category": "Flags",
+ "aliases": [
+ "dominican_republic"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐จ",
+ "description": "Ecuador",
+ "category": "Flags",
+ "aliases": [
+ "ecuador"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐ฌ",
+ "description": "Egypt",
+ "category": "Flags",
+ "aliases": [
+ "egypt"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ป",
+ "description": "El Salvador",
+ "category": "Flags",
+ "aliases": [
+ "el_salvador"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ถ",
+ "description": "Equatorial Guinea",
+ "category": "Flags",
+ "aliases": [
+ "equatorial_guinea"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐ท",
+ "description": "Eritrea",
+ "category": "Flags",
+ "aliases": [
+ "eritrea"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐ช",
+ "description": "Estonia",
+ "category": "Flags",
+ "aliases": [
+ "estonia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐น",
+ "description": "Ethiopia",
+ "category": "Flags",
+ "aliases": [
+ "ethiopia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐บ",
+ "description": "European Union",
+ "category": "Flags",
+ "aliases": [
+ "eu",
+ "european_union"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ฐ",
+ "description": "Falkland Islands",
+ "category": "Flags",
+ "aliases": [
+ "falkland_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ด",
+ "description": "Faroe Islands",
+ "category": "Flags",
+ "aliases": [
+ "faroe_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ฏ",
+ "description": "Fiji",
+ "category": "Flags",
+ "aliases": [
+ "fiji"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ฎ",
+ "description": "Finland",
+ "category": "Flags",
+ "aliases": [
+ "finland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ท",
+ "description": "France",
+ "category": "Flags",
+ "aliases": [
+ "fr"
+ ],
+ "tags": [
+ "france",
+ "french"
+ ]
+ },
+ {
+ "emoji": "๐ฌ๐ซ",
+ "description": "French Guiana",
+ "category": "Flags",
+ "aliases": [
+ "french_guiana"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ซ",
+ "description": "French Polynesia",
+ "category": "Flags",
+ "aliases": [
+ "french_polynesia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ซ",
+ "description": "French Southern Territories",
+ "category": "Flags",
+ "aliases": [
+ "french_southern_territories"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฆ",
+ "description": "Gabon",
+ "category": "Flags",
+ "aliases": [
+ "gabon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฒ",
+ "description": "Gambia",
+ "category": "Flags",
+ "aliases": [
+ "gambia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ช",
+ "description": "Georgia",
+ "category": "Flags",
+ "aliases": [
+ "georgia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฉ๐ช",
+ "description": "Germany",
+ "category": "Flags",
+ "aliases": [
+ "de"
+ ],
+ "tags": [
+ "flag",
+ "germany"
+ ]
+ },
+ {
+ "emoji": "๐ฌ๐ญ",
+ "description": "Ghana",
+ "category": "Flags",
+ "aliases": [
+ "ghana"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฎ",
+ "description": "Gibraltar",
+ "category": "Flags",
+ "aliases": [
+ "gibraltar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ท",
+ "description": "Greece",
+ "category": "Flags",
+ "aliases": [
+ "greece"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฑ",
+ "description": "Greenland",
+ "category": "Flags",
+ "aliases": [
+ "greenland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฉ",
+ "description": "Grenada",
+ "category": "Flags",
+ "aliases": [
+ "grenada"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ต",
+ "description": "Guadeloupe",
+ "category": "Flags",
+ "aliases": [
+ "guadeloupe"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐บ",
+ "description": "Guam",
+ "category": "Flags",
+ "aliases": [
+ "guam"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐น",
+ "description": "Guatemala",
+ "category": "Flags",
+ "aliases": [
+ "guatemala"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ฌ",
+ "description": "Guernsey",
+ "category": "Flags",
+ "aliases": [
+ "guernsey"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ณ",
+ "description": "Guinea",
+ "category": "Flags",
+ "aliases": [
+ "guinea"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ผ",
+ "description": "Guinea-Bissau",
+ "category": "Flags",
+ "aliases": [
+ "guinea_bissau"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐พ",
+ "description": "Guyana",
+ "category": "Flags",
+ "aliases": [
+ "guyana"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ๐น",
+ "description": "Haiti",
+ "category": "Flags",
+ "aliases": [
+ "haiti"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ๐ณ",
+ "description": "Honduras",
+ "category": "Flags",
+ "aliases": [
+ "honduras"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ๐ฐ",
+ "description": "Hong Kong SAR China",
+ "category": "Flags",
+ "aliases": [
+ "hong_kong"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ญ๐บ",
+ "description": "Hungary",
+ "category": "Flags",
+ "aliases": [
+ "hungary"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ธ",
+ "description": "Iceland",
+ "category": "Flags",
+ "aliases": [
+ "iceland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ณ",
+ "description": "India",
+ "category": "Flags",
+ "aliases": [
+ "india"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ฉ",
+ "description": "Indonesia",
+ "category": "Flags",
+ "aliases": [
+ "indonesia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ท",
+ "description": "Iran",
+ "category": "Flags",
+ "aliases": [
+ "iran"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ถ",
+ "description": "Iraq",
+ "category": "Flags",
+ "aliases": [
+ "iraq"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ช",
+ "description": "Ireland",
+ "category": "Flags",
+ "aliases": [
+ "ireland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ฒ",
+ "description": "Isle of Man",
+ "category": "Flags",
+ "aliases": [
+ "isle_of_man"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐ฑ",
+ "description": "Israel",
+ "category": "Flags",
+ "aliases": [
+ "israel"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฎ๐น",
+ "description": "Italy",
+ "category": "Flags",
+ "aliases": [
+ "it"
+ ],
+ "tags": [
+ "italy"
+ ]
+ },
+ {
+ "emoji": "๐ฏ๐ฒ",
+ "description": "Jamaica",
+ "category": "Flags",
+ "aliases": [
+ "jamaica"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ๐ต",
+ "description": "Japan",
+ "category": "Flags",
+ "aliases": [
+ "jp"
+ ],
+ "tags": [
+ "japan"
+ ]
+ },
+ {
+ "emoji": "๐",
+ "description": "crossed flags",
+ "category": "Flags",
+ "aliases": [
+ "crossed_flags"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ๐ช",
+ "description": "Jersey",
+ "category": "Flags",
+ "aliases": [
+ "jersey"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฏ๐ด",
+ "description": "Jordan",
+ "category": "Flags",
+ "aliases": [
+ "jordan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ฟ",
+ "description": "Kazakhstan",
+ "category": "Flags",
+ "aliases": [
+ "kazakhstan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ช",
+ "description": "Kenya",
+ "category": "Flags",
+ "aliases": [
+ "kenya"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ฎ",
+ "description": "Kiribati",
+ "category": "Flags",
+ "aliases": [
+ "kiribati"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฝ๐ฐ",
+ "description": "Kosovo",
+ "category": "Flags",
+ "aliases": [
+ "kosovo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ผ",
+ "description": "Kuwait",
+ "category": "Flags",
+ "aliases": [
+ "kuwait"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ฌ",
+ "description": "Kyrgyzstan",
+ "category": "Flags",
+ "aliases": [
+ "kyrgyzstan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ฆ",
+ "description": "Laos",
+ "category": "Flags",
+ "aliases": [
+ "laos"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ป",
+ "description": "Latvia",
+ "category": "Flags",
+ "aliases": [
+ "latvia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ง",
+ "description": "Lebanon",
+ "category": "Flags",
+ "aliases": [
+ "lebanon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ธ",
+ "description": "Lesotho",
+ "category": "Flags",
+ "aliases": [
+ "lesotho"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ท",
+ "description": "Liberia",
+ "category": "Flags",
+ "aliases": [
+ "liberia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐พ",
+ "description": "Libya",
+ "category": "Flags",
+ "aliases": [
+ "libya"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐ฎ",
+ "description": "Liechtenstein",
+ "category": "Flags",
+ "aliases": [
+ "liechtenstein"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐น",
+ "description": "Lithuania",
+ "category": "Flags",
+ "aliases": [
+ "lithuania"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐บ",
+ "description": "Luxembourg",
+ "category": "Flags",
+ "aliases": [
+ "luxembourg"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ด",
+ "description": "Macau SAR China",
+ "category": "Flags",
+ "aliases": [
+ "macau"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฐ",
+ "description": "Macedonia",
+ "category": "Flags",
+ "aliases": [
+ "macedonia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฌ",
+ "description": "Madagascar",
+ "category": "Flags",
+ "aliases": [
+ "madagascar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ผ",
+ "description": "Malawi",
+ "category": "Flags",
+ "aliases": [
+ "malawi"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐พ",
+ "description": "Malaysia",
+ "category": "Flags",
+ "aliases": [
+ "malaysia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ป",
+ "description": "Maldives",
+ "category": "Flags",
+ "aliases": [
+ "maldives"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฑ",
+ "description": "Mali",
+ "category": "Flags",
+ "aliases": [
+ "mali"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐น",
+ "description": "Malta",
+ "category": "Flags",
+ "aliases": [
+ "malta"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ญ",
+ "description": "Marshall Islands",
+ "category": "Flags",
+ "aliases": [
+ "marshall_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ถ",
+ "description": "Martinique",
+ "category": "Flags",
+ "aliases": [
+ "martinique"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ท",
+ "description": "Mauritania",
+ "category": "Flags",
+ "aliases": [
+ "mauritania"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐บ",
+ "description": "Mauritius",
+ "category": "Flags",
+ "aliases": [
+ "mauritius"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ๐น",
+ "description": "Mayotte",
+ "category": "Flags",
+ "aliases": [
+ "mayotte"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฝ",
+ "description": "Mexico",
+ "category": "Flags",
+ "aliases": [
+ "mexico"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ซ๐ฒ",
+ "description": "Micronesia",
+ "category": "Flags",
+ "aliases": [
+ "micronesia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฉ",
+ "description": "Moldova",
+ "category": "Flags",
+ "aliases": [
+ "moldova"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐จ",
+ "description": "Monaco",
+ "category": "Flags",
+ "aliases": [
+ "monaco"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ณ",
+ "description": "Mongolia",
+ "category": "Flags",
+ "aliases": [
+ "mongolia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ช",
+ "description": "Montenegro",
+ "category": "Flags",
+ "aliases": [
+ "montenegro"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ธ",
+ "description": "Montserrat",
+ "category": "Flags",
+ "aliases": [
+ "montserrat"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฆ",
+ "description": "Morocco",
+ "category": "Flags",
+ "aliases": [
+ "morocco"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฟ",
+ "description": "Mozambique",
+ "category": "Flags",
+ "aliases": [
+ "mozambique"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ฒ",
+ "description": "Myanmar (Burma)",
+ "category": "Flags",
+ "aliases": [
+ "myanmar"
+ ],
+ "tags": [
+ "burma"
+ ]
+ },
+ {
+ "emoji": "๐ณ๐ฆ",
+ "description": "Namibia",
+ "category": "Flags",
+ "aliases": [
+ "namibia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ท",
+ "description": "Nauru",
+ "category": "Flags",
+ "aliases": [
+ "nauru"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ต",
+ "description": "Nepal",
+ "category": "Flags",
+ "aliases": [
+ "nepal"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ฑ",
+ "description": "Netherlands",
+ "category": "Flags",
+ "aliases": [
+ "netherlands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐จ",
+ "description": "New Caledonia",
+ "category": "Flags",
+ "aliases": [
+ "new_caledonia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ฟ",
+ "description": "New Zealand",
+ "category": "Flags",
+ "aliases": [
+ "new_zealand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ฎ",
+ "description": "Nicaragua",
+ "category": "Flags",
+ "aliases": [
+ "nicaragua"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ช",
+ "description": "Niger",
+ "category": "Flags",
+ "aliases": [
+ "niger"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ฌ",
+ "description": "Nigeria",
+ "category": "Flags",
+ "aliases": [
+ "nigeria"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐บ",
+ "description": "Niue",
+ "category": "Flags",
+ "aliases": [
+ "niue"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ซ",
+ "description": "Norfolk Island",
+ "category": "Flags",
+ "aliases": [
+ "norfolk_island"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฒ๐ต",
+ "description": "Northern Mariana Islands",
+ "category": "Flags",
+ "aliases": [
+ "northern_mariana_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ต",
+ "description": "North Korea",
+ "category": "Flags",
+ "aliases": [
+ "north_korea"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ณ๐ด",
+ "description": "Norway",
+ "category": "Flags",
+ "aliases": [
+ "norway"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ด๐ฒ",
+ "description": "Oman",
+ "category": "Flags",
+ "aliases": [
+ "oman"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ฐ",
+ "description": "Pakistan",
+ "category": "Flags",
+ "aliases": [
+ "pakistan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ผ",
+ "description": "Palau",
+ "category": "Flags",
+ "aliases": [
+ "palau"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ธ",
+ "description": "Palestinian Territories",
+ "category": "Flags",
+ "aliases": [
+ "palestinian_territories"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ฆ",
+ "description": "Panama",
+ "category": "Flags",
+ "aliases": [
+ "panama"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ฌ",
+ "description": "Papua New Guinea",
+ "category": "Flags",
+ "aliases": [
+ "papua_new_guinea"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐พ",
+ "description": "Paraguay",
+ "category": "Flags",
+ "aliases": [
+ "paraguay"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ช",
+ "description": "Peru",
+ "category": "Flags",
+ "aliases": [
+ "peru"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ญ",
+ "description": "Philippines",
+ "category": "Flags",
+ "aliases": [
+ "philippines"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ณ",
+ "description": "Pitcairn Islands",
+ "category": "Flags",
+ "aliases": [
+ "pitcairn_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ฑ",
+ "description": "Poland",
+ "category": "Flags",
+ "aliases": [
+ "poland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐น",
+ "description": "Portugal",
+ "category": "Flags",
+ "aliases": [
+ "portugal"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ท",
+ "description": "Puerto Rico",
+ "category": "Flags",
+ "aliases": [
+ "puerto_rico"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ถ๐ฆ",
+ "description": "Qatar",
+ "category": "Flags",
+ "aliases": [
+ "qatar"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท๐ช",
+ "description": "Rรฉunion",
+ "category": "Flags",
+ "aliases": [
+ "reunion"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท๐ด",
+ "description": "Romania",
+ "category": "Flags",
+ "aliases": [
+ "romania"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท๐บ",
+ "description": "Russia",
+ "category": "Flags",
+ "aliases": [
+ "ru"
+ ],
+ "tags": [
+ "russia"
+ ]
+ },
+ {
+ "emoji": "๐ท๐ผ",
+ "description": "Rwanda",
+ "category": "Flags",
+ "aliases": [
+ "rwanda"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ง๐ฑ",
+ "description": "St. Barthรฉlemy",
+ "category": "Flags",
+ "aliases": [
+ "st_barthelemy"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ญ",
+ "description": "St. Helena",
+ "category": "Flags",
+ "aliases": [
+ "st_helena"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ณ",
+ "description": "St. Kitts & Nevis",
+ "category": "Flags",
+ "aliases": [
+ "st_kitts_nevis"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฑ๐จ",
+ "description": "St. Lucia",
+ "category": "Flags",
+ "aliases": [
+ "st_lucia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ต๐ฒ",
+ "description": "St. Pierre & Miquelon",
+ "category": "Flags",
+ "aliases": [
+ "st_pierre_miquelon"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐จ",
+ "description": "St. Vincent & Grenadines",
+ "category": "Flags",
+ "aliases": [
+ "st_vincent_grenadines"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ๐ธ",
+ "description": "Samoa",
+ "category": "Flags",
+ "aliases": [
+ "samoa"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฒ",
+ "description": "San Marino",
+ "category": "Flags",
+ "aliases": [
+ "san_marino"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐น",
+ "description": "Sรฃo Tomรฉ & Prรญncipe",
+ "category": "Flags",
+ "aliases": [
+ "sao_tome_principe"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฆ",
+ "description": "Saudi Arabia",
+ "category": "Flags",
+ "aliases": [
+ "saudi_arabia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ณ",
+ "description": "Senegal",
+ "category": "Flags",
+ "aliases": [
+ "senegal"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ท๐ธ",
+ "description": "Serbia",
+ "category": "Flags",
+ "aliases": [
+ "serbia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐จ",
+ "description": "Seychelles",
+ "category": "Flags",
+ "aliases": [
+ "seychelles"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฑ",
+ "description": "Sierra Leone",
+ "category": "Flags",
+ "aliases": [
+ "sierra_leone"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฌ",
+ "description": "Singapore",
+ "category": "Flags",
+ "aliases": [
+ "singapore"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฝ",
+ "description": "Sint Maarten",
+ "category": "Flags",
+ "aliases": [
+ "sint_maarten"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฐ",
+ "description": "Slovakia",
+ "category": "Flags",
+ "aliases": [
+ "slovakia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฎ",
+ "description": "Slovenia",
+ "category": "Flags",
+ "aliases": [
+ "slovenia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ง",
+ "description": "Solomon Islands",
+ "category": "Flags",
+ "aliases": [
+ "solomon_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ด",
+ "description": "Somalia",
+ "category": "Flags",
+ "aliases": [
+ "somalia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ๐ฆ",
+ "description": "South Africa",
+ "category": "Flags",
+ "aliases": [
+ "south_africa"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ธ",
+ "description": "South Georgia & South Sandwich Islands",
+ "category": "Flags",
+ "aliases": [
+ "south_georgia_south_sandwich_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฐ๐ท",
+ "description": "South Korea",
+ "category": "Flags",
+ "aliases": [
+ "kr"
+ ],
+ "tags": [
+ "korea"
+ ]
+ },
+ {
+ "emoji": "๐ธ๐ธ",
+ "description": "South Sudan",
+ "category": "Flags",
+ "aliases": [
+ "south_sudan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐ธ",
+ "description": "Spain",
+ "category": "Flags",
+ "aliases": [
+ "es"
+ ],
+ "tags": [
+ "spain"
+ ]
+ },
+ {
+ "emoji": "๐ฑ๐ฐ",
+ "description": "Sri Lanka",
+ "category": "Flags",
+ "aliases": [
+ "sri_lanka"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฉ",
+ "description": "Sudan",
+ "category": "Flags",
+ "aliases": [
+ "sudan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ท",
+ "description": "Suriname",
+ "category": "Flags",
+ "aliases": [
+ "suriname"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ฟ",
+ "description": "Swaziland",
+ "category": "Flags",
+ "aliases": [
+ "swaziland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐ช",
+ "description": "Sweden",
+ "category": "Flags",
+ "aliases": [
+ "sweden"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐จ๐ญ",
+ "description": "Switzerland",
+ "category": "Flags",
+ "aliases": [
+ "switzerland"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ธ๐พ",
+ "description": "Syria",
+ "category": "Flags",
+ "aliases": [
+ "syria"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ผ",
+ "description": "Taiwan",
+ "category": "Flags",
+ "aliases": [
+ "taiwan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฏ",
+ "description": "Tajikistan",
+ "category": "Flags",
+ "aliases": [
+ "tajikistan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฟ",
+ "description": "Tanzania",
+ "category": "Flags",
+ "aliases": [
+ "tanzania"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ญ",
+ "description": "Thailand",
+ "category": "Flags",
+ "aliases": [
+ "thailand"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฑ",
+ "description": "Timor-Leste",
+ "category": "Flags",
+ "aliases": [
+ "timor_leste"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฌ",
+ "description": "Togo",
+ "category": "Flags",
+ "aliases": [
+ "togo"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ฐ",
+ "description": "Tokelau",
+ "category": "Flags",
+ "aliases": [
+ "tokelau"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ด",
+ "description": "Tonga",
+ "category": "Flags",
+ "aliases": [
+ "tonga"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐น",
+ "description": "Trinidad & Tobago",
+ "category": "Flags",
+ "aliases": [
+ "trinidad_tobago"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ณ",
+ "description": "Tunisia",
+ "category": "Flags",
+ "aliases": [
+ "tunisia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ท",
+ "description": "Turkey",
+ "category": "Flags",
+ "aliases": [
+ "tr"
+ ],
+ "tags": [
+ "turkey"
+ ]
+ },
+ {
+ "emoji": "๐น๐ฒ",
+ "description": "Turkmenistan",
+ "category": "Flags",
+ "aliases": [
+ "turkmenistan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐จ",
+ "description": "Turks & Caicos Islands",
+ "category": "Flags",
+ "aliases": [
+ "turks_caicos_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐น๐ป",
+ "description": "Tuvalu",
+ "category": "Flags",
+ "aliases": [
+ "tuvalu"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ๐ฌ",
+ "description": "Uganda",
+ "category": "Flags",
+ "aliases": [
+ "uganda"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ๐ฆ",
+ "description": "Ukraine",
+ "category": "Flags",
+ "aliases": [
+ "ukraine"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฆ๐ช",
+ "description": "United Arab Emirates",
+ "category": "Flags",
+ "aliases": [
+ "united_arab_emirates"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฌ๐ง",
+ "description": "United Kingdom",
+ "category": "Flags",
+ "aliases": [
+ "gb",
+ "uk"
+ ],
+ "tags": [
+ "flag",
+ "british"
+ ]
+ },
+ {
+ "emoji": "๐บ๐ธ",
+ "description": "United States",
+ "category": "Flags",
+ "aliases": [
+ "us"
+ ],
+ "tags": [
+ "flag",
+ "united",
+ "america"
+ ]
+ },
+ {
+ "emoji": "๐ป๐ฎ",
+ "description": "U.S. Virgin Islands",
+ "category": "Flags",
+ "aliases": [
+ "us_virgin_islands"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ๐พ",
+ "description": "Uruguay",
+ "category": "Flags",
+ "aliases": [
+ "uruguay"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐บ๐ฟ",
+ "description": "Uzbekistan",
+ "category": "Flags",
+ "aliases": [
+ "uzbekistan"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐บ",
+ "description": "Vanuatu",
+ "category": "Flags",
+ "aliases": [
+ "vanuatu"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐ฆ",
+ "description": "Vatican City",
+ "category": "Flags",
+ "aliases": [
+ "vatican_city"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐ช",
+ "description": "Venezuela",
+ "category": "Flags",
+ "aliases": [
+ "venezuela"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ป๐ณ",
+ "description": "Vietnam",
+ "category": "Flags",
+ "aliases": [
+ "vietnam"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ผ๐ซ",
+ "description": "Wallis & Futuna",
+ "category": "Flags",
+ "aliases": [
+ "wallis_futuna"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ช๐ญ",
+ "description": "Western Sahara",
+ "category": "Flags",
+ "aliases": [
+ "western_sahara"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐พ๐ช",
+ "description": "Yemen",
+ "category": "Flags",
+ "aliases": [
+ "yemen"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ๐ฒ",
+ "description": "Zambia",
+ "category": "Flags",
+ "aliases": [
+ "zambia"
+ ],
+ "tags": []
+ },
+ {
+ "emoji": "๐ฟ๐ผ",
+ "description": "Zimbabwe",
+ "category": "Flags",
+ "aliases": [
+ "zimbabwe"
+ ],
+ "tags": []
+ }
+]
diff --git a/src/muya/lib/ui/emojis/index.js b/src/muya/lib/ui/emojis/index.js
index 1775b70c..71240275 100644
--- a/src/muya/lib/ui/emojis/index.js
+++ b/src/muya/lib/ui/emojis/index.js
@@ -29,11 +29,8 @@ export const validEmoji = text => {
*/
export const checkEditEmoji = node => {
- const preSibling = node.previousElementSibling
if (node.classList.contains(CLASS_OR_ID['AG_EMOJI_MARKED_TEXT'])) {
return node
- } else if (preSibling && preSibling.classList.contains(CLASS_OR_ID['AG_EMOJI_MARKED_TEXT'])) {
- return preSibling
}
return false
}
diff --git a/src/muya/lib/utils/exportHtml.js b/src/muya/lib/utils/exportHtml.js
index 62291f64..d70e321d 100644
--- a/src/muya/lib/utils/exportHtml.js
+++ b/src/muya/lib/utils/exportHtml.js
@@ -1,8 +1,8 @@
import marked from '../parser/marked'
-import highlight from 'highlight.js'
+import Prism from 'prismjs2'
import katex from 'katex'
import githubMarkdownCss from 'github-markdown-css/github-markdown.css'
-import highlightCss from 'highlight.js/styles/default.css'
+import highlightCss from 'prismjs2/themes/prism.css'
import katexCss from 'katex/dist/katex.css'
import { EXPORT_DOMPURIFY_CONFIG } from '../config'
import { sanitize } from '../utils'
@@ -20,8 +20,8 @@ class ExportHtml {
// render pure html by marked
renderHtml () {
return marked(this.markdown, {
- highlight (code) {
- return highlight.highlightAuto(code).value
+ highlight (code, lang) {
+ return Prism.highlight(code, Prism.languages[lang], lang)
},
emojiRenderer (emoji) {
const validate = validEmoji(emoji)
diff --git a/src/muya/lib/utils/exportMarkdown.js b/src/muya/lib/utils/exportMarkdown.js
index 375d90ec..cc78b2fe 100644
--- a/src/muya/lib/utils/exportMarkdown.js
+++ b/src/muya/lib/utils/exportMarkdown.js
@@ -7,7 +7,7 @@
* and GitHub Flavored Markdown Spec: https://github.github.com/gfm/
* The output markdown needs to obey the standards of the two Spec.
*/
-const LINE_BREAKS = /\n/
+// const LINE_BREAKS = /\n/
class ExportMarkdown {
constructor (blocks) {
@@ -153,10 +153,10 @@ class ExportMarkdown {
return this.translateBlocks2Markdown(children, newIndent)
}
- normalizeFrontMatter (block, indent) {
+ normalizeFrontMatter (block, indent) { // preBlock
const result = []
result.push('---\n')
- for (const line of block.children) {
+ for (const line of block.children[0].children) {
result.push(`${line.text}\n`)
}
result.push('---\n')
@@ -166,7 +166,7 @@ class ExportMarkdown {
normalizeMultipleMath (block, /* figure */ indent) {
const result = []
result.push('$$\n')
- for (const line of block.children[0].children) {
+ for (const line of block.children[0].children[0].children) {
result.push(`${line.text}\n`)
}
result.push('$$\n')
@@ -175,9 +175,9 @@ class ExportMarkdown {
normalizeCodeBlock (block, indent) {
const result = []
- const textList = block.text.split(LINE_BREAKS)
- const { codeBlockStyle } = block
- if (codeBlockStyle === 'fenced') {
+ const textList = block.children[1].children.map(codeLine => codeLine.text)
+ const { functionType } = block
+ if (functionType === 'fencecode') {
result.push(`${indent}${block.lang ? '```' + block.lang + '\n' : '```\n'}`)
textList.forEach(text => {
result.push(`${indent}${text}\n`)
@@ -192,12 +192,11 @@ class ExportMarkdown {
return result.join('')
}
- normalizeHTML (block, indent) {
+ normalizeHTML (block, indent) { // figure
const result = []
- const codeContent = block.children[1].children[0].text
- const textList = codeContent.split(LINE_BREAKS)
- for (const text of textList) {
- result.push(`${indent}${text}\n`)
+ const codeLines = block.children[1].children[0].children[0].children
+ for (const line of codeLines) {
+ result.push(`${indent}${line.text}\n`)
}
return result.join('')
}
diff --git a/src/muya/lib/utils/importMarkdown.js b/src/muya/lib/utils/importMarkdown.js
index b60cc480..4fc21050 100644
--- a/src/muya/lib/utils/importMarkdown.js
+++ b/src/muya/lib/utils/importMarkdown.js
@@ -6,6 +6,7 @@
import { Lexer } from '../parser/marked'
import ExportMarkdown from './exportMarkdown'
import TurndownService, { usePluginAddRules } from './turndownService'
+import { loadLanguage } from '../prism/index'
// To be disabled rules when parse markdown, Because content state don't need to parse inline rules
import { CURSOR_DNA, TABLE_TOOLS } from '../config'
@@ -27,7 +28,6 @@ const importRegister = ContentState => {
}
const tokens = new Lexer({ disableInline: true }).lex(markdown)
- console.log(JSON.stringify(tokens, null, 2))
let token
let block
@@ -39,15 +39,21 @@ const importRegister = ContentState => {
case 'frontmatter': {
value = token.text
block = this.createBlock('pre')
- const lines = value
+ const codeBlock = this.createBlock('code')
+ value
.replace(/^\s+/, '')
.replace(/\s$/, '')
- .split(LINE_BREAKS_REG).map(line => this.createBlock('span', line))
- for (const line of lines) {
- line.functionType = token.type
- this.appendChild(block, line)
- }
+ .split(LINE_BREAKS_REG).forEach(line => {
+ const codeLine = this.createBlock('span', line)
+ codeLine.functionType = 'codeLine'
+ codeLine.lang = 'yaml'
+ this.appendChild(codeBlock, codeLine)
+ })
+
block.functionType = token.type
+ block.lang = codeBlock.lang = 'yaml'
+ this.codeBlocks.set(block.key, value)
+ this.appendChild(block, codeBlock)
this.appendChild(parentList[0], block)
break
}
@@ -72,14 +78,29 @@ const importRegister = ContentState => {
break
}
case 'code': {
- const { codeBlockStyle, text, lang, type } = token
+ const { codeBlockStyle, text, lang = '' } = token
value = text
if (value.endsWith('\n')) {
value = value.replace(/\n+$/, '')
}
- block = this.createBlock('pre', value)
- block.functionType = type
- Object.assign(block, { lang, codeBlockStyle })
+ block = this.createBlock('pre')
+ const codeBlock = this.createBlock('code')
+ value.split(LINE_BREAKS_REG).forEach(line => {
+ const codeLine = this.createBlock('span', line)
+ codeLine.lang = lang
+ codeLine.functionType = 'codeLine'
+ this.appendChild(codeBlock, codeLine)
+ })
+ const inputBlock = this.createBlock('span', lang)
+ if (lang) {
+ loadLanguage(lang)
+ }
+ inputBlock.functionType = 'languageInput'
+ this.codeBlocks.set(block.key, value)
+ block.functionType = codeBlockStyle === 'fenced' ? 'fencecode' : 'indentcode'
+ block.lang = codeBlock.lang = lang
+ this.appendChild(block, inputBlock)
+ this.appendChild(block, codeBlock)
this.appendChild(parentList[0], block)
break
}
@@ -249,12 +270,14 @@ const importRegister = ContentState => {
end: { key, offset }
}
// handle cursor in Math block, need to remove `CURSOR_DNA` in preview block
- if (type === 'span' && functionType === 'multiplemath') {
- const mathPreview = this.getNextSibling(this.getParent(block))
- const { math } = mathPreview
- const offset = math.indexOf(CURSOR_DNA)
+ if (type === 'span' && functionType === 'codeLine') {
+ const preBlock = this.getParent(this.getParent(block))
+ const code = this.codeBlocks.get(preBlock.key)
+ if (!code) return
+ const offset = code.indexOf(CURSOR_DNA)
if (offset > -1) {
- mathPreview.math = math.substring(0, offset) + math.substring(offset + CURSOR_DNA.length)
+ const newCode = code.substring(0, offset) + code.substring(offset + CURSOR_DNA.length)
+ this.codeBlocks.set(preBlock.key, newCode)
}
}
return
@@ -279,7 +302,6 @@ const importRegister = ContentState => {
}
ContentState.prototype.importMarkdown = function (markdown) {
- // empty the blocks and codeBlocks
this.codeBlocks = new Map()
this.blocks = this.markdownToState(markdown)
}
diff --git a/src/muya/lib/utils/index.js b/src/muya/lib/utils/index.js
index 747848b4..84e943a4 100644
--- a/src/muya/lib/utils/index.js
+++ b/src/muya/lib/utils/index.js
@@ -1,4 +1,5 @@
// DOTO: Don't use Node API in editor folder, remove `path` @jocs
+// todo@jocs: remove the use of `axios` in muya
import axios from 'axios'
import createDOMPurify from 'dompurify'
@@ -161,17 +162,6 @@ export const checkImageContentType = async url => {
}
}
-export const collectImportantComments = css => {
- const once = new Set()
- const cleaned = css.replace(/(\/\*![\s\S]*?\*\/)\n*/gm, (match, p1) => {
- once.add(p1)
- return ''
- })
- const combined = Array.from(once)
- combined.push(cleaned)
- return combined.join('\n')
-}
-
export const getImageInfo = src => {
const EXT_REG = /\.(jpeg|jpg|png|gif|svg|webp)(?=\?|$)/i
// http[s] (domain or IPv4 or localhost or IPv6) [port] /not-white-space
diff --git a/src/muya/themes/dark.css b/src/muya/themes/dark.css
index eb925ac6..73eefd9b 100755
--- a/src/muya/themes/dark.css
+++ b/src/muya/themes/dark.css
@@ -64,11 +64,6 @@ body {
caret-color: #efefef;
}
-#ag-editor-id>ul:first-child,
-#ag-editor-id>ol:first-child {
- margin-top: 30px;
-}
-
.ag-float-box {
background: #303133;
border: 1px solid #303133;
@@ -350,26 +345,13 @@ table tr td:last-child {
margin-bottom: 0;
}
-.CodeMirror-gutters {
- border-right: 1px solid #ddd;
-}
-
-code,
-tt {
- border: 1px solid #ddd;
- background-color: #606266;
- border-radius: 3px;
- padding: 0;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
- padding: 2px 4px 0px 4px;
- font-size: 0.9em;
-}
-
-
/* custom add */
-code {
+span.ag-line code,
+th code,
+td code {
border: none;
padding: 2px 4px;
+ border-radius: 3px;
font-size: 90%;
color: #efefef;
background-color: #606266;
@@ -428,7 +410,6 @@ code {
border-color: #333;
}
-#ag-editor-id pre.ag-code-block,
#ag-editor-id pre.ag-html-block {
font-size: 90%;
line-height: 1.6;
@@ -436,11 +417,134 @@ code {
color: #777777;
}
-#ag-editor-id pre.ag-code-block .cm-s-railscasts.CodeMirror,
-#ag-editor-id pre.ag-html-block .cm-s-railscasts.CodeMirror {
- background: var(--primaryColor);
-}
-
.ag-color-dark {
color: #c6c6c6;
}
+
+/**
+ * okaidia theme for JavaScript, CSS and HTML
+ * Loosely based on Monokai textmate theme by http://www.monokai.nl/
+ * @author ocodia
+ */
+
+code[class*="language-"],
+pre.ag-paragraph {
+ color: #f8f8f2;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+ overflow: visible;
+ }
+
+ /* Code blocks */
+ pre.ag-paragraph {
+ padding: 1em;
+ margin: 1em 0;
+ border-radius: 0.3em;
+ }
+
+ :not(pre) > code[class*="language-"],
+ pre.ag-paragraph {
+ background: #272822;
+ }
+
+ /* Inline code */
+ :not(pre) > code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+ }
+
+ .token.comment,
+ .token.prolog,
+ .token.doctype,
+ .token.cdata {
+ color: slategray;
+ }
+
+ .token.punctuation {
+ color: #f8f8f2;
+ }
+
+ .namespace {
+ opacity: .7;
+ }
+
+ .token.property,
+ .token.tag,
+ .token.constant,
+ .token.symbol {
+ color: #f92672;
+ }
+
+ .token.boolean,
+ .token.number {
+ color: #ae81ff;
+ }
+
+ .token.selector,
+ .token.attr-name,
+ .token.string,
+ .token.char,
+ .token.builtin {
+ color: #a6e22e;
+ }
+
+ .token.inserted {
+ color: #22863a;
+ background: #f0fff4;
+}
+
+.token.deleted {
+ color: #b31d28;
+ background: #ffeef0;
+}
+
+ .token.operator,
+ .token.entity,
+ .token.url,
+ .language-css .token.string,
+ .style .token.string,
+ .token.variable {
+ color: #f8f8f2;
+ }
+
+ .token.atrule,
+ .token.attr-value,
+ .token.function,
+ .token.class-name {
+ color: #e6db74;
+ }
+
+ .token.keyword {
+ color: #66d9ef;
+ }
+
+ .token.regex,
+ .token.important {
+ color: #fd971f;
+ }
+
+ .token.important,
+ .token.bold {
+ font-weight: bold;
+ }
+ .token.italic {
+ font-style: italic;
+ }
+
+ .token.entity {
+ cursor: help;
+ }
+
diff --git a/src/muya/themes/light.css b/src/muya/themes/light.css
index 610a04c5..ee875111 100644
--- a/src/muya/themes/light.css
+++ b/src/muya/themes/light.css
@@ -4,28 +4,28 @@
font-family: 'Open Sans';
font-style: normal;
font-weight: normal;
- src: local('Open Sans Regular'),url('./github/400.woff') format('woff')
+ src: local('Open Sans Regular'),url('./github/400.woff') format('woff');
}
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: normal;
- src: local('Open Sans Italic'),url('./github/400i.woff') format('woff')
+ src: local('Open Sans Italic'),url('./github/400i.woff') format('woff');
}
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: bold;
- src: local('Open Sans Bold'),url('./github/700.woff') format('woff')
+ src: local('Open Sans Bold'),url('./github/700.woff') format('woff');
}
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: bold;
- src: local('Open Sans Bold Italic'),url('./github/700i.woff') format('woff')
+ src: local('Open Sans Bold Italic'),url('./github/700i.woff') format('woff');
}
html, body {
@@ -65,11 +65,6 @@ body {
caret-color: #000000;
}
-#ag-editor-id>ul:first-child,
-#ag-editor-id>ol:first-child {
- margin-top: 30px;
-}
-
.ag-gray {
color: #C0C4CC;
text-decoration: none;
@@ -322,32 +317,28 @@ table tr td:last-child {
margin-bottom: 0;
}
-.CodeMirror-gutters {
- border-right: 1px solid #ddd;
-}
-
-code,
-tt {
- border: 1px solid #ddd;
- background-color: #f8f8f8;
+span code,
+td code,
+th code {
+ background-color: rgba(27, 31, 35, 0.05);
border-radius: 3px;
padding: 0;
- font-family: Consolas, "Liberation Mono", Courier, monospace;
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
padding: 2px 4px 0px 4px;
- font-size: 0.9em;
+ font-size: 85%;
+ margin: 0;
+ padding: 0.2em 0.4em;
+ color: #24292e;
}
-
-/* custom add */
-code {
- padding: 0.2em 0.4em;
- margin: 0;
- font-size: 85%;
- background-color: rgba(27,31,35,0.05);
+:not(pre) > code[class*="language-"],
+pre {
+ font-size: 90%;
+ line-height: 1.6;
+ background: #f6f8fa;
+ border: 0;
border-radius: 3px;
- border: none;
- color: #24292e;
- font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+ color: #777777;
}
@media print {
@@ -376,16 +367,6 @@ code {
border-bottom-color: #333333;
}
-#ag-editor-id pre.ag-code-block,
-#ag-editor-id pre.ag-html-block {
- font-size: 90%;
- line-height: 1.6;
- background: #f6f8fa;
- border: 0;
- border-radius: 3px;
- color: #777777;
-}
-
#ag-editor-id pre.ag-html-block {
background: transparent;
padding: 0 .5rem;
@@ -403,3 +384,116 @@ p:not(.ag-active)[data-role="hr"]::before {
.fg-color-dark {
color: #303133;
}
+
+/* prismjs default theme */
+
+code[class*="language-"],
+pre.ag-paragraph {
+ color: black;
+ font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
+ text-align: left;
+ white-space: pre;
+ word-spacing: normal;
+ word-break: normal;
+ word-wrap: normal;
+ -moz-tab-size: 4;
+ -o-tab-size: 4;
+ tab-size: 4;
+
+ -webkit-hyphens: none;
+ -moz-hyphens: none;
+ -ms-hyphens: none;
+ hyphens: none;
+ }
+
+ /* Code blocks */
+ pre.ag-paragraph {
+ padding: 1em;
+ margin: 1em 0;
+ }
+
+ /* Inline code */
+ :not(pre) > code[class*="language-"] {
+ padding: .1em;
+ border-radius: .3em;
+ white-space: normal;
+ }
+
+ .token.comment,
+ .token.prolog,
+ .token.doctype,
+ .token.cdata {
+ color: slategray;
+ }
+
+ .token.punctuation {
+ color: #999;
+ }
+
+ .namespace {
+ opacity: .7;
+ }
+
+ .token.property,
+ .token.tag,
+ .token.boolean,
+ .token.number,
+ .token.constant,
+ .token.symbol {
+ color: #905;
+ }
+
+ .token.selector,
+ .token.attr-name,
+ .token.string,
+ .token.char,
+ .token.builtin {
+ color: #690;
+ }
+
+ .token.inserted {
+ color: #22863a;
+ background: #f0fff4;
+}
+
+.token.deleted {
+ color: #b31d28;
+ background: #ffeef0;
+}
+
+ .token.operator,
+ .token.entity,
+ .token.url,
+ .language-css .token.string,
+ .style .token.string {
+ color: #9a6e3a;
+ }
+
+ .token.atrule,
+ .token.attr-value,
+ .token.keyword {
+ color: #07a;
+ }
+
+ .token.function,
+ .token.class-name {
+ color: #DD4A68;
+ }
+
+ .token.regex,
+ .token.important,
+ .token.variable {
+ color: #e90;
+ }
+
+ .token.important,
+ .token.bold {
+ font-weight: bold;
+ }
+ .token.italic {
+ font-style: italic;
+ }
+
+ .token.entity {
+ cursor: help;
+ }
diff --git a/src/muya/lib/codeMirror/index.css b/src/renderer/codeMirror/index.css
similarity index 100%
rename from src/muya/lib/codeMirror/index.css
rename to src/renderer/codeMirror/index.css
diff --git a/src/muya/lib/codeMirror/index.js b/src/renderer/codeMirror/index.js
similarity index 100%
rename from src/muya/lib/codeMirror/index.js
rename to src/renderer/codeMirror/index.js
diff --git a/src/muya/lib/codeMirror/loadmode.js b/src/renderer/codeMirror/loadmode.js
similarity index 100%
rename from src/muya/lib/codeMirror/loadmode.js
rename to src/renderer/codeMirror/loadmode.js
diff --git a/src/muya/lib/codeMirror/mltiplexMode.js b/src/renderer/codeMirror/mltiplexMode.js
similarity index 100%
rename from src/muya/lib/codeMirror/mltiplexMode.js
rename to src/renderer/codeMirror/mltiplexMode.js
diff --git a/src/muya/lib/codeMirror/modes.js b/src/renderer/codeMirror/modes.js
similarity index 100%
rename from src/muya/lib/codeMirror/modes.js
rename to src/renderer/codeMirror/modes.js
diff --git a/src/muya/lib/codeMirror/overlayMode.js b/src/renderer/codeMirror/overlayMode.js
similarity index 100%
rename from src/muya/lib/codeMirror/overlayMode.js
rename to src/renderer/codeMirror/overlayMode.js
diff --git a/src/renderer/components/editorWithTabs/editor.vue b/src/renderer/components/editorWithTabs/editor.vue
index ba11b704..3cf48612 100644
--- a/src/renderer/components/editorWithTabs/editor.vue
+++ b/src/renderer/components/editorWithTabs/editor.vue
@@ -240,7 +240,6 @@
this.editor.on('selectionChange', changes => {
const { y } = changes.cursorCoords
-
if (this.typewriter) {
animatedScrollTo(container, container.scrollTop + y - STANDAR_Y, 100)
}
diff --git a/src/renderer/components/editorWithTabs/sourceCode.vue b/src/renderer/components/editorWithTabs/sourceCode.vue
index ece77978..ccdfb7ce 100644
--- a/src/renderer/components/editorWithTabs/sourceCode.vue
+++ b/src/renderer/components/editorWithTabs/sourceCode.vue
@@ -8,7 +8,7 @@