Document emoji picker (#4338)
Co-authored-by: Tom Moor <tom.moor@gmail.com>
This commit is contained in:
14
shared/editor/lib/emoji.ts
Normal file
14
shared/editor/lib/emoji.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import data, { type EmojiMartData } from "@emoji-mart/data";
|
||||
import snakeCase from "lodash/snakeCase";
|
||||
|
||||
/**
|
||||
* A map of emoji shortcode to emoji character. The shortcode is snake cased
|
||||
* for backwards compatibility with those already encoded into documents.
|
||||
*/
|
||||
export const nameToEmoji = Object.values((data as EmojiMartData).emojis).reduce(
|
||||
(acc, emoji) => {
|
||||
acc[snakeCase(emoji.id)] = emoji.skins[0].native;
|
||||
return acc;
|
||||
},
|
||||
{}
|
||||
);
|
||||
@@ -1,4 +1,3 @@
|
||||
import nameToEmoji from "gemoji/name-to-emoji.json";
|
||||
import Token from "markdown-it/lib/token";
|
||||
import {
|
||||
NodeSpec,
|
||||
@@ -9,6 +8,7 @@ import {
|
||||
import { Command, TextSelection } from "prosemirror-state";
|
||||
import { Primitive } from "utility-types";
|
||||
import Suggestion from "../extensions/Suggestion";
|
||||
import { nameToEmoji } from "../lib/emoji";
|
||||
import { MarkdownSerializerState } from "../lib/markdown/serializer";
|
||||
import { SuggestionsMenuType } from "../plugins/Suggestions";
|
||||
import emojiRule from "../rules/emoji";
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import nameToEmoji from "gemoji/name-to-emoji.json";
|
||||
import MarkdownIt from "markdown-it";
|
||||
import emojiPlugin from "markdown-it-emoji";
|
||||
import { nameToEmoji } from "../lib/emoji";
|
||||
|
||||
export default function emoji(md: MarkdownIt) {
|
||||
// Ideally this would be an empty object, but due to a bug in markdown-it-emoji
|
||||
|
||||
Reference in New Issue
Block a user