1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-07-21 06:09:41 +02:00
codex.docs/src/frontend/js/classes/editor.js

98 lines
2.3 KiB
JavaScript
Raw Normal View History

import CodeXEditor from 'codex.editor';
/**
* Tools for the Editor
*/
import Header from 'codex.editor.header';
import Quote from 'codex.editor.quote';
import Marker from 'codex.editor.marker';
import CodeTool from 'codex.editor.code';
import Delimiter from 'codex.editor.delimiter';
import InlineCode from 'codex.editor.inline-code';
import List from 'codex.editor.list';
import RawTool from 'codex.editor.raw';
import Embed from 'codex.editor.embed';
/**
* Class for working with Editor.js
*/
export default class Editor {
/**
* Creates Editor instance
* @param {object} editorConfig - configuration object for Editor.js
* @param {object} data.blocks - data to start with
* @param {object} options
* @param {string} options.headerPlaceholder - placeholder for Header tool
*/
constructor(editorConfig = {}, options = {}) {
const defaultConfig = {
tools: {
header: {
class: Header,
inlineToolbar: ['link', 'marker'],
config: {
placeholder: options.headerPlaceholder || ''
}
},
// image: {
// class: ImageTool,
// inlineToolbar: true,
// config: {
// endpoints: {
// byFile: '/editor/transport',
// byUrl: '/editor/transport'
// }
// }
// },
list: {
class: List,
inlineToolbar: true
},
quote: {
class: Quote,
inlineToolbar: true
},
code: {
class: CodeTool,
shortcut: 'CMD+SHIFT+D'
},
rawTool: {
class: RawTool,
shortcut: 'CMD+SHIFT+R'
},
2019-02-18 10:42:12 +03:00
delimiter: Delimiter,
embed: Embed,
inlineCode: {
class: InlineCode,
shortcut: 'CMD+SHIFT+C'
},
marker: {
class: Marker,
shortcut: 'CMD+SHIFT+M'
2019-02-18 10:42:12 +03:00
}
},
data: {
blocks: [
{
type: 'header',
data: {
text: '',
level: 2
}
}
]
}
};
this.editor = new CodeXEditor(Object.assign(defaultConfig, editorConfig));
}
/**
* Return Editor data
* @return {Promise.<{}>}
*/
save() {
return this.editor.saver.save();
}
}