Package Exports
- editorjs-mention-tool
- editorjs-mention-tool/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (editorjs-mention-tool) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme

Mention Tool Plugin for Editor.js
Demo
https://mention-tool-editorjs.vercel.app/
Installation
Install with npm
npm install editorjs-mention-toolUsage/Examples
// Here Import react with useEffect
import React, { useEffect } from 'react'
// Here EditorJS with some plugins
import { createReactEditorJS } from 'react-editor-js'
import Header from "@editorjs/header"
import Paragraph from '@editorjs/paragraph'
// Here mention module
import MentionTool from 'editorjs-mention-tool'
import "editorjs-mention-tool/src/styles.css"
const CustomEditor = () => {
const editorCore = React.useRef(null)
const handleInitialize = React.useCallback((instance) => {
editorCore.current = instance
}, [])
const ReactEditorJS = createReactEditorJS() // Initialize editor
const EDITOR_JS_TOOLS = {
paragraph: {
class: Paragraph,
inlineToolbar: true,
},
header: Header,
}
useEffect(() => {
// Here create new MentionTool with $ accessor key to use it as variable layout
new MentionTool({
holder: 'editorHolder', // This is the editor Holder ( see below )
accessKey: "$", // Access key ( $ or @ )
allUsers: [ // The array with the data you want to show when the users type $
{
"id": "1234",
"name": "Variable 1",
"slug": "variable1"
},
{
"id": "12345",
"name": "Thing of v1",
"slug": "variable1.something"
},
],
baseUrl: '',
searchAPIUrl: ''
})
// Here create new MentionTool with @ accessor key to use it as mention layout
new MentionTool({
holder: 'editorHolder', // This is the editor Holder ( see below )
accessKey: "@", // Access key ( $ or @ )
allUsers: [ // The array with the data you want to show when the users type @
{
"id": "21029",
"name": "Kyle Ockford",
"avatar": "https://i.pravatar.cc/300",
"slug": "kyleockford"
},
{
"id": "21030",
"name": "Paige Cortez",
"avatar": "https://avatars.dicebear.com/api/croodles/your-custom-seed.svg",
"slug": "paigecortez"
},
{
"id": "21031",
"name": "Nyla Warren",
"slug": "nylawarren"
},
{
"id": "21032",
"name": "Hassan Lee",
"slug": "hassanlee"
},
{
"id": "21033",
"name": "Domas Rivas",
"avatar": "https://avatars.dicebear.com/api/pixel-art-neutral/kreudev.svg",
"slug": "domasrivas"
},
{
"id": "21034",
"name": "Arthur Hunt",
"slug": "arthurhunt"
},
],
baseUrl: '',
searchAPIUrl: ''
})
}, [])
return (
<ReactEditorJS onInitialize={handleInitialize} tools={EDITOR_JS_TOOLS} placeholder={`Write something here...`} holder="editorHolder">
<div id="editorHolder" />
</ReactEditorJS>
)
}
// Return the CustomEditor to use by other components.
export default CustomEditorScreenshots
