Code syntax highlighting tool for Editor.js
Install the package via NPM
npm i @bomdi/codeboxAdd to your module/application
import CodeBox from '@bomdi/codebox';
OR
const CodeBox = require('@bomdi/codebox');Add CodeBox tools property of the CodeX Editor initial config.
const CodexEditor = require('@editorjs/editorjs');
let editor = new CodexEditor({
...
tools: {
...
codeBox: {
class: CodeBox,
config: {
themeURL: 'https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.1/build/styles/dracula.min.css', // Optional
themeName: 'atom-one-dark', // Optional
useDefaultTheme: 'light' // Optional. This also determines the background color of the language select drop-down
}
},
}
...
});All parameters are optional
If no parameters are specified, CodeBox defaults to a dark theme.
CodeBox returns the following data
{
"type": "codeBox",
"data": {
"code": "consttest = newTest();.codeBoxTextArea{\n width: 100%;\n min-height: 30px;\n padding: 10px;\n border-radius: 2px 2px 2px 0;\n border: none !important;\n outline: none !important;\n font: 14px monospace;\n}\n\n.codeBoxSelectDiv{\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n position: relative;\n}",
"language": "css",
"theme": "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.1/build/styles/atom-one-dark.min.css"
}
}If you use react, you can pass your saved data to the library editorjs-react-renderer to render a code block component
import { CodeBoxOutput } from 'editorjs-react-renderer';
const data = {
"type": "codeBox",
"data": {
"code": ".codeBoxTextArea{\n width: 100%;\n min-height: 30px;\n padding: 10px;\n border-radius: 2px 2px 2px 0;\n border: none !important;\n outline: none !important;\n font: 14px monospace;\n}\n\n.codeBoxSelectDiv{\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n align-items: flex-start;\n position: relative;\n}",
"language": "css",
"theme": "https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.18.1/build/styles/atom-one-dark.min.css"
}
};
const CodeBlock = () => CodeBoxOutput(data);
export default CodeBlock;Dev Juju
