1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-06 12:02:45 +03:00

MD Editor: Added plaintext input implementation

This commit is contained in:
Dan Brown
2025-07-21 18:53:22 +01:00
parent 5ffec2c52d
commit 6b4b500a33
6 changed files with 225 additions and 62 deletions

View File

@@ -7,6 +7,9 @@ import {init as initCodemirror} from './codemirror';
import {CodeModule} from "../global";
import {MarkdownEditorInput} from "./inputs/interface";
import {CodemirrorInput} from "./inputs/codemirror";
import {TextareaInput} from "./inputs/textarea";
import {provideShortcutMap} from "./shortcuts";
import {getMarkdownDomEventHandlers} from "./dom-handlers";
export interface MarkdownEditorConfig {
pageId: string;
@@ -31,7 +34,7 @@ export interface MarkdownEditor {
* Initiate a new Markdown editor instance.
*/
export async function init(config: MarkdownEditorConfig): Promise<MarkdownEditor> {
const Code = await window.importVersioned('code') as CodeModule;
// const Code = await window.importVersioned('code') as CodeModule;
const editor: MarkdownEditor = {
config,
@@ -42,8 +45,17 @@ export async function init(config: MarkdownEditorConfig): Promise<MarkdownEditor
editor.actions = new Actions(editor);
editor.display = new Display(editor);
const codeMirror = initCodemirror(editor, Code);
editor.input = new CodemirrorInput(codeMirror);
const eventHandlers = getMarkdownDomEventHandlers(editor);
// TODO - Switching
// const codeMirror = initCodemirror(editor, Code);
// editor.input = new CodemirrorInput(codeMirror);
editor.input = new TextareaInput(
config.inputEl,
provideShortcutMap(editor),
eventHandlers
);
// window.devinput = editor.input;
listenToCommonEvents(editor);