1 import {Markdown} from './markdown';
2 import {Display} from './display';
3 import {Actions} from './actions';
4 import {Settings} from './settings';
5 import {listenToCommonEvents} from './common-events';
6 import {init as initCodemirror} from './codemirror';
7 import {EditorView} from "@codemirror/view";
9 export interface MarkdownEditorConfig {
13 inputEl: HTMLTextAreaElement;
15 settingInputs: HTMLInputElement[];
16 text: Record<string, string>;
19 export interface MarkdownEditor {
20 config: MarkdownEditorConfig;
29 * Initiate a new Markdown editor instance.
30 * @param {MarkdownEditorConfig} config
31 * @returns {Promise<MarkdownEditor>}
33 export async function init(config) {
35 * @type {MarkdownEditor}
37 const editor: MarkdownEditor = {
39 markdown: new Markdown(),
40 settings: new Settings(config.settingInputs),
43 editor.actions = new Actions(editor);
44 editor.display = new Display(editor);
45 editor.cm = await initCodemirror(editor);
47 listenToCommonEvents(editor);