X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/562225a77b1cde623bad3f51f12fc26bef38402a..4be0c567cc8706eb4b11fd8446d77225a09cd76f:/resources/assets/js/components/markdown-editor.js diff --git a/resources/assets/js/components/markdown-editor.js b/resources/assets/js/components/markdown-editor.js index 5688ebd61..6eba242d0 100644 --- a/resources/assets/js/components/markdown-editor.js +++ b/resources/assets/js/components/markdown-editor.js @@ -1,13 +1,14 @@ -const MarkdownIt = require("markdown-it"); -const mdTasksLists = require('markdown-it-task-lists'); -const code = require('../services/code'); +import MarkdownIt from "markdown-it"; +import mdTasksLists from 'markdown-it-task-lists'; +import code from '../services/code'; -const DrawIO = require('../services/drawio'); +import DrawIO from "../services/drawio"; class MarkdownEditor { constructor(elem) { this.elem = elem; + this.textDirection = document.getElementById('page-editor').getAttribute('text-direction'); this.markdown = new MarkdownIt({html: true}); this.markdown.use(mdTasksLists, {label: true}); @@ -98,6 +99,9 @@ class MarkdownEditor { codeMirrorSetup() { let cm = this.cm; + // Text direction + // cm.setOption('direction', this.textDirection); + cm.setOption('direction', 'ltr'); // Will force to remain as ltr for now due to issues when HTML is in editor. // Custom key commands let metaKey = code.getMetaKey(); const extraKeys = {}; @@ -395,37 +399,32 @@ class MarkdownEditor { } // Scroll to a specified text - scrollToText(searchText) {; + scrollToText(searchText) { if (!searchText) { return; } + const content = this.cm.getValue(); const lines = content.split(/\r?\n/); - let lineNumber = -1; - for (let i = 0; i !== lines.length; ++i) { - const line = lines[i]; - if (!line) { - continue; - } - if (line.indexOf(searchText) !== -1) { - lineNumber = i; - break; - } - } + let lineNumber = lines.findIndex(line => { + return line && line.indexOf(searchText) !== -1; + }); - if (lineNumber !== -1) { - this.cm.scrollIntoView({ - line: lineNumber, - }, 200); - this.cm.focus(); - // set the cursor location. - this.cm.setCursor({ - line: lineNumber, - char: lines[lineNumber].length - }) + if (lineNumber === -1) { + return; } + + this.cm.scrollIntoView({ + line: lineNumber, + }, 200); + this.cm.focus(); + // set the cursor location. + this.cm.setCursor({ + line: lineNumber, + char: lines[lineNumber].length + }) } } -module.exports = MarkdownEditor ; \ No newline at end of file +export default MarkdownEditor ; \ No newline at end of file