@kangc/v-md-editor
Version:
A markdown editor built on Vue
47 lines (41 loc) • 1.23 kB
JavaScript
import createToolbar from './toolbar';
import commandHandler from './command';
export default function creator({ emojiJson, mdEmojiPlugin }) {
return function createEmojiPlugin({
name = 'emoji',
icon = 'v-md-icon-emoji',
text,
title = (editor) => editor.langConfig.emoji,
customEmoji,
} = {}) {
const toolbar = createToolbar({ commandName: name, title, text, icon, emojiJson });
const extendMarkdown = function (mdParser) {
if (mdParser) {
// extend markdown-it
mdParser.use(mdEmojiPlugin);
if (customEmoji) {
mdParser.renderer.rules.emoji = function (token, idx) {
return '<span class="v-md-emoji emoji-' + token[idx].markup + '"></span>';
};
}
}
};
return {
install(VMdEditor) {
if (VMdEditor.name === 'v-md-editor') {
VMdEditor.command(name, commandHandler);
VMdEditor.toolbar(name, toolbar);
VMdEditor.lang.add({
'zh-CN': {
emoji: '插入emoji表情',
},
'en-US': {
emoji: 'Insert emoji',
},
});
}
VMdEditor.extendMarkdown(extendMarkdown);
},
};
};
}