From b7093dabc384370d38588f91131e887e496ca4d1 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Fri, 29 May 2020 01:53:15 +0300 Subject: [PATCH 01/13] Preview without fullscreen --- src/css/easymde.css | 17 +++++++++++++++++ src/js/easymde.js | 24 ++++++++++++++++++++++-- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/src/css/easymde.css b/src/css/easymde.css index 1a0881a..d2416ee 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -31,6 +31,11 @@ width: 50% !important; } +.CodeMirror-sided--no-fullscreen { + position: relative; + float: left; +} + .CodeMirror-placeholder { opacity: .5; } @@ -195,6 +200,10 @@ text-align: right; } +.editor-statusbar.sided--no-fullscreen { + clear: both; +} + .editor-statusbar span { display: inline-block; min-width: 4em; @@ -243,6 +252,14 @@ display: block } +.editor-preview-active-side--no-fullscreen { + height: auto; + position: static; + min-height: calc(300px + 22px); + width: calc(50% - 0px); + float: right; +} + .editor-preview-active { display: block } diff --git a/src/js/easymde.js b/src/js/easymde.js index b6c7a1e..dd8fb79 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -858,6 +858,18 @@ function toggleSideBySide(editor) { var toolbarButton = editor.toolbarElements && editor.toolbarElements['side-by-side']; var useSideBySideListener = false; if (/editor-preview-active-side/.test(preview.className)) { + if (cm.getOption('sideBySideFullscreen')) { + cm.setOption('sideBySideFullscreen', false); + wrapper.className = wrapper.className.replace( + /\s*CodeMirror-sided--no-fullscreen\s*/g, '' + ); + preview.className = preview.className.replace( + /\s*editor-preview-active-side--no-fullscreen\s*/g, '' + ); + editor.gui.statusbar.className = editor.gui.statusbar.className.replace( + /\s*sided--no-fullscreen\s*/g, '' + ); + } preview.className = preview.className.replace( /\s*editor-preview-active-side\s*/g, '' ); @@ -868,8 +880,16 @@ function toggleSideBySide(editor) { // give some time for the transition from editor.css to fire and the view to slide from right to left, // instead of just appearing. setTimeout(function () { - if (!cm.getOption('fullScreen')) - toggleFullScreen(editor); + if (!cm.getOption('fullScreen')) { + if (editor.options.sideBySideFullscreen === false) { + cm.setOption('sideBySideFullscreen', true); + wrapper.className += ' CodeMirror-sided--no-fullscreen'; + preview.className += ' editor-preview-active-side--no-fullscreen'; + editor.gui.statusbar.className += ' sided--no-fullscreen'; + } else { + toggleFullScreen(editor); + } + } preview.className += ' editor-preview-active-side'; }, 1); if (toolbarButton) toolbarButton.className += ' active'; From a61c7198a34c13e6c5fbb2b22ea53c5db1f57dd8 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Fri, 29 May 2020 01:59:22 +0300 Subject: [PATCH 02/13] Extra border fix --- src/css/easymde.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/css/easymde.css b/src/css/easymde.css index d2416ee..4e3190b 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -32,6 +32,7 @@ } .CodeMirror-sided--no-fullscreen { + border-right: none!important; position: relative; float: left; } @@ -256,7 +257,6 @@ height: auto; position: static; min-height: calc(300px + 22px); - width: calc(50% - 0px); float: right; } From 1fd1ee2a9740e9166a48802e53bbbee2e4b563d3 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Fri, 29 May 2020 03:15:56 +0300 Subject: [PATCH 03/13] Deal with minHeight option --- src/css/easymde.css | 1 - src/js/easymde.js | 5 +++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/css/easymde.css b/src/css/easymde.css index 4e3190b..5e5dc11 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -256,7 +256,6 @@ .editor-preview-active-side--no-fullscreen { height: auto; position: static; - min-height: calc(300px + 22px); float: right; } diff --git a/src/js/easymde.js b/src/js/easymde.js index dd8fb79..2e7daa2 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -2257,6 +2257,11 @@ EasyMDE.prototype.createSideBySide = function () { if (!preview || !/editor-preview-side/.test(preview.className)) { preview = document.createElement('div'); preview.className = 'editor-preview-side'; + var optionsMinHeight = parseInt(this.options.minHeight); + var paddingTop = parseInt(window.getComputedStyle(wrapper).paddingTop); + var borderTopWidth = parseInt(window.getComputedStyle(wrapper).borderTopWidth); + var minHeight = optionsMinHeight + paddingTop * 2 + borderTopWidth * 2; + preview.style.minHeight = minHeight.toString() + 'px'; if (this.options.previewClass) { From f85afc44e1fee4084b2bb76c02b3433f5ccdaa58 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Fri, 29 May 2020 17:42:07 +0300 Subject: [PATCH 04/13] Code style --- src/js/easymde.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index 2e7daa2..8ad08a9 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -2261,7 +2261,7 @@ EasyMDE.prototype.createSideBySide = function () { var paddingTop = parseInt(window.getComputedStyle(wrapper).paddingTop); var borderTopWidth = parseInt(window.getComputedStyle(wrapper).borderTopWidth); var minHeight = optionsMinHeight + paddingTop * 2 + borderTopWidth * 2; - preview.style.minHeight = minHeight.toString() + 'px'; + preview.style.minHeight = minHeight.toString() + 'px'; if (this.options.previewClass) { From f3b1090e53a138b8fac910dc267398e95244ea19 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Mon, 1 Jun 2020 15:44:57 +0300 Subject: [PATCH 05/13] Adjust sideBySide with no fullscreen and maxHeight option --- src/css/easymde.css | 24 +++++++--- src/js/easymde.js | 107 +++++++++++++++++++++++++++++++++----------- 2 files changed, 99 insertions(+), 32 deletions(-) diff --git a/src/css/easymde.css b/src/css/easymde.css index 5e5dc11..001402c 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -1,3 +1,13 @@ +.EasyMDEContainer { + display: block; +} + +.EasyMDEContainer.sided--no-fullscreen { + display: flex; + flex-direction: row; + flex-wrap: wrap; +} + .CodeMirror { box-sizing: border-box; height: auto; @@ -31,10 +41,10 @@ width: 50% !important; } -.CodeMirror-sided--no-fullscreen { +.CodeMirror-sided.sided--no-fullscreen { border-right: none!important; position: relative; - float: left; + flex: 1 1 auto; } .CodeMirror-placeholder { @@ -122,6 +132,10 @@ padding: 0; } +.editor-toolbar.sided--no-fullscreen { + width: 100%; +} + .editor-toolbar button, .editor-toolbar .easymde-dropdown { background: transparent; display: inline-block; @@ -202,7 +216,7 @@ } .editor-statusbar.sided--no-fullscreen { - clear: both; + width: 100%; } .editor-statusbar span { @@ -253,10 +267,10 @@ display: block } -.editor-preview-active-side--no-fullscreen { +.editor-preview-active-side.sided--no-fullscreen { + flex: 1 1 auto; height: auto; position: static; - float: right; } .editor-preview-active { diff --git a/src/js/easymde.js b/src/js/easymde.js index 8ad08a9..6c6e07a 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -332,6 +332,29 @@ function toggleFullScreen(editor) { } + // Hide side by side if needed + var sidebyside = cm.getWrapperElement().nextSibling; + if (/editor-preview-active-side/.test(sidebyside.className)) + toggleSideBySide(editor); + + if (editor.options.onToggleFullScreen) { + editor.options.onToggleFullScreen(cm.getOption('fullScreen') || false); + } + + // Remove or set maxHeight + if (cm.getOption('fullScreen')) { + if (editor.options.maxHeight !== false) { + cm.getScrollerElement().style.removeProperty('height'); + sidebyside.style.removeProperty('height'); + } + } else { + if (editor.options.maxHeight !== false) { + cm.getScrollerElement().style.height = editor.options.maxHeight; + editor.setPreviewMaxHeight(); + } + } + + // Update toolbar class if (!/fullscreen/.test(editor.toolbar_div.className)) { editor.toolbar_div.className += ' fullscreen'; @@ -350,16 +373,6 @@ function toggleFullScreen(editor) { toolbarButton.className = toolbarButton.className.replace(/\s*active\s*/g, ''); } } - - - // Hide side by side if needed - var sidebyside = cm.getWrapperElement().nextSibling; - if (/editor-preview-active-side/.test(sidebyside.className)) - toggleSideBySide(editor); - - if (editor.options.onToggleFullScreen) { - editor.options.onToggleFullScreen(cm.getOption('fullScreen') || false); - } } @@ -857,18 +870,31 @@ function toggleSideBySide(editor) { var preview = wrapper.nextSibling; var toolbarButton = editor.toolbarElements && editor.toolbarElements['side-by-side']; var useSideBySideListener = false; + + var noFullscreenItems = [ + wrapper.parentNode, // easyMDEContainer + editor.gui.toolbar, + wrapper, + preview, + editor.gui.statusbar, + ]; + + function addNoFullscreenClass(el) { + el.className += ' sided--no-fullscreen'; + } + + function removeNoFullscreenClass(el) { + el.className = el.className.replace( + /\s*sided--no-fullscreen\s*/g, '' + ); + } + if (/editor-preview-active-side/.test(preview.className)) { if (cm.getOption('sideBySideFullscreen')) { cm.setOption('sideBySideFullscreen', false); - wrapper.className = wrapper.className.replace( - /\s*CodeMirror-sided--no-fullscreen\s*/g, '' - ); - preview.className = preview.className.replace( - /\s*editor-preview-active-side--no-fullscreen\s*/g, '' - ); - editor.gui.statusbar.className = editor.gui.statusbar.className.replace( - /\s*sided--no-fullscreen\s*/g, '' - ); + noFullscreenItems.forEach(function (el) { + removeNoFullscreenClass(el); + }); } preview.className = preview.className.replace( /\s*editor-preview-active-side\s*/g, '' @@ -883,9 +909,9 @@ function toggleSideBySide(editor) { if (!cm.getOption('fullScreen')) { if (editor.options.sideBySideFullscreen === false) { cm.setOption('sideBySideFullscreen', true); - wrapper.className += ' CodeMirror-sided--no-fullscreen'; - preview.className += ' editor-preview-active-side--no-fullscreen'; - editor.gui.statusbar.className += ' sided--no-fullscreen'; + noFullscreenItems.forEach(function(el) { + addNoFullscreenClass(el); + }); } else { toggleFullScreen(editor); } @@ -1692,6 +1718,7 @@ function EasyMDE(options) { options.shortcuts = extend({}, shortcuts, options.shortcuts || {}); options.minHeight = options.minHeight || '300px'; + options.maxHeight = options.maxHeight || false; options.errorCallback = options.errorCallback || function (errorMessage) { alert(errorMessage); @@ -1979,6 +2006,10 @@ EasyMDE.prototype.render = function (el) { this.codemirror.getScrollerElement().style.minHeight = options.minHeight; + if (options.maxHeight !== false) { + this.codemirror.getScrollerElement().style.height = options.maxHeight; + } + if (options.forceSync === true) { var cm = this.codemirror; cm.on('change', function () { @@ -1988,6 +2019,14 @@ EasyMDE.prototype.render = function (el) { this.gui = {}; + // Wrap Codemirror with container before create toolbar, etc, + // to use with sideBySideFullscreen option. + var easyMDEContainer = document.createElement('div'); + easyMDEContainer.classList.add('EasyMDEContainer'); + var cmWrapper = this.codemirror.getWrapperElement(); + cmWrapper.parentNode.insertBefore(easyMDEContainer, cmWrapper); + easyMDEContainer.appendChild(cmWrapper); + if (options.toolbar !== false) { this.gui.toolbar = this.createToolbar(); } @@ -2249,6 +2288,21 @@ EasyMDE.prototype.uploadImageUsingCustomFunction = function(imageUploadFunction, imageUploadFunction(file, onSuccess, onError); }; +EasyMDE.prototype.setPreviewMaxHeight = function() { + var cm = this.codemirror; + var wrapper = cm.getWrapperElement(); + var preview = wrapper.nextSibling; + + // Calc preview max height + var paddingTop = parseInt(window.getComputedStyle(wrapper).paddingTop); + var borderTopWidth = parseInt(window.getComputedStyle(wrapper).borderTopWidth); + var optionsMaxHeight = parseInt(this.options.maxHeight); + var wrapperMaxHeight = optionsMaxHeight + paddingTop * 2 + borderTopWidth * 2; + var previewMaxHeight = wrapperMaxHeight.toString() + 'px'; + + preview.style.height = previewMaxHeight; +}; + EasyMDE.prototype.createSideBySide = function () { var cm = this.codemirror; var wrapper = cm.getWrapperElement(); @@ -2257,11 +2311,10 @@ EasyMDE.prototype.createSideBySide = function () { if (!preview || !/editor-preview-side/.test(preview.className)) { preview = document.createElement('div'); preview.className = 'editor-preview-side'; - var optionsMinHeight = parseInt(this.options.minHeight); - var paddingTop = parseInt(window.getComputedStyle(wrapper).paddingTop); - var borderTopWidth = parseInt(window.getComputedStyle(wrapper).borderTopWidth); - var minHeight = optionsMinHeight + paddingTop * 2 + borderTopWidth * 2; - preview.style.minHeight = minHeight.toString() + 'px'; + + if (this.options.maxHeight !== false) { + this.setPreviewMaxHeight(); + } if (this.options.previewClass) { From d4cbe44fa45513cd17a62d52106fa05239cf2f57 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Mon, 1 Jun 2020 16:15:18 +0300 Subject: [PATCH 06/13] Set preview height after element is added --- src/js/easymde.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index 6c6e07a..a9d7239 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -2312,10 +2312,6 @@ EasyMDE.prototype.createSideBySide = function () { preview = document.createElement('div'); preview.className = 'editor-preview-side'; - if (this.options.maxHeight !== false) { - this.setPreviewMaxHeight(); - } - if (this.options.previewClass) { if (Array.isArray(this.options.previewClass)) { @@ -2331,6 +2327,10 @@ EasyMDE.prototype.createSideBySide = function () { wrapper.parentNode.insertBefore(preview, wrapper.nextSibling); } + if (this.options.maxHeight !== false) { + this.setPreviewMaxHeight(); + } + if (this.options.syncSideBySidePreviewScroll === false) return preview; // Syncs scroll editor -> preview var cScroll = false; From 4862def4a4c79aa550c7f3a093e05c737b2f1807 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Mon, 1 Jun 2020 16:16:40 +0300 Subject: [PATCH 07/13] Toggle sideBySide first due to classes set properly --- src/js/easymde.js | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index a9d7239..0b5fb07 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -970,6 +970,12 @@ function togglePreview(editor) { var toolbar_div = editor.toolbar_div; var toolbar = editor.options.toolbar ? editor.toolbarElements.preview : false; var preview = wrapper.lastChild; + + // Turn off side by side if needed + var sidebyside = cm.getWrapperElement().nextSibling; + if (/editor-preview-active-side/.test(sidebyside.className)) + toggleSideBySide(editor); + if (!preview || !/editor-preview-full/.test(preview.className)) { preview = document.createElement('div'); @@ -989,6 +995,7 @@ function togglePreview(editor) { wrapper.appendChild(preview); } + if (/editor-preview-active/.test(preview.className)) { preview.className = preview.className.replace( /\s*editor-preview-active\s*/g, '' @@ -1011,10 +1018,6 @@ function togglePreview(editor) { } preview.innerHTML = editor.options.previewRender(editor.value(), preview); - // Turn off side by side if needed - var sidebyside = cm.getWrapperElement().nextSibling; - if (/editor-preview-active-side/.test(sidebyside.className)) - toggleSideBySide(editor); } function _replaceSelection(cm, active, startEnd, url) { From f72d5903327ac71625eb38f8048024afb43fccaf Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Tue, 2 Jun 2020 16:05:45 +0300 Subject: [PATCH 08/13] Semantic fix --- src/js/easymde.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index 0b5fb07..c5ba510 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -890,8 +890,8 @@ function toggleSideBySide(editor) { } if (/editor-preview-active-side/.test(preview.className)) { - if (cm.getOption('sideBySideFullscreen')) { - cm.setOption('sideBySideFullscreen', false); + if (cm.getOption('sideBySideNoFullscreen')) { + cm.setOption('sideBySideNoFullscreen', false); noFullscreenItems.forEach(function (el) { removeNoFullscreenClass(el); }); @@ -908,7 +908,7 @@ function toggleSideBySide(editor) { setTimeout(function () { if (!cm.getOption('fullScreen')) { if (editor.options.sideBySideFullscreen === false) { - cm.setOption('sideBySideFullscreen', true); + cm.setOption('sideBySideNoFullscreen', true); noFullscreenItems.forEach(function(el) { addNoFullscreenClass(el); }); From 82c447cf855324ae2860fafe592fef0fc0edf0b8 Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Wed, 3 Jun 2020 00:45:28 +0300 Subject: [PATCH 09/13] Remove bottom rigth radius for CM-sided --- src/css/easymde.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/css/easymde.css b/src/css/easymde.css index 001402c..c1ec62c 100644 --- a/src/css/easymde.css +++ b/src/css/easymde.css @@ -43,6 +43,7 @@ .CodeMirror-sided.sided--no-fullscreen { border-right: none!important; + border-bottom-right-radius: 0px; position: relative; flex: 1 1 auto; } From 57788bd392ed4c05f4dabe8c0d89d7d26246a27e Mon Sep 17 00:00:00 2001 From: Nick Denry Date: Wed, 3 Jun 2020 00:59:02 +0300 Subject: [PATCH 10/13] Code style --- src/js/easymde.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/easymde.js b/src/js/easymde.js index c5ba510..62aaa69 100644 --- a/src/js/easymde.js +++ b/src/js/easymde.js @@ -2291,7 +2291,7 @@ EasyMDE.prototype.uploadImageUsingCustomFunction = function(imageUploadFunction, imageUploadFunction(file, onSuccess, onError); }; -EasyMDE.prototype.setPreviewMaxHeight = function() { +EasyMDE.prototype.setPreviewMaxHeight = function () { var cm = this.codemirror; var wrapper = cm.getWrapperElement(); var preview = wrapper.nextSibling; From 4a6119daaf3c94f1d224fa8709c857db3d72581a Mon Sep 17 00:00:00 2001 From: Jeroen Akkerman Date: Wed, 3 Jun 2020 12:48:48 +0200 Subject: [PATCH 11/13] Add contribution to changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff1248b..aa754fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added - Support for Node.js 14. +- Preview without fullscreen (Thanks to [@nick-denry], [#196]). ### Fixed - Fix cursor displayed position on activity ([#183]). @@ -168,6 +169,7 @@ Project forked from [SimpleMDE](https://github.com/sparksuite/simplemde-markdown [#9]: https://github.com/Ionaru/easy-markdown-editor/issues/9 +[#196]: https://github.com/Ionaru/easy-markdown-editor/pull/196 [#175]: https://github.com/Ionaru/easy-markdown-editor/pull/175 [#173]: https://github.com/Ionaru/easy-markdown-editor/pull/173 [#170]: https://github.com/Ionaru/easy-markdown-editor/pull/170 @@ -192,6 +194,7 @@ Project forked from [SimpleMDE](https://github.com/sparksuite/simplemde-markdown [#19]: https://github.com/Ionaru/easy-markdown-editor/pull/19 +[@nick-denry]: https://github.com/nick-denry [@StefKors]: https://github.com/StefKors [@felipefdl]: https://github.com/felipefdl [@A-312]: https://github.com/A-312 From 8fa73cf079b6b7128b20792e41e50b6e4515e9d9 Mon Sep 17 00:00:00 2001 From: Jeroen Akkerman Date: Wed, 3 Jun 2020 12:55:27 +0200 Subject: [PATCH 12/13] Add new option to documentation and typings --- README.md | 2 ++ types/easymde-test.ts | 2 ++ types/easymde.d.ts | 1 + 3 files changed, 5 insertions(+) diff --git a/README.md b/README.md index ba8a756..939e456 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,7 @@ easyMDE.value('New input for **EasyMDE**'); - **spellChecker**: If set to `false`, disable the spell checker. Defaults to `true`. - **inputStyle**: `textarea` or `contenteditable`. Defaults to `textarea` for desktop and `contenteditable` for mobile. `contenteditable` option is necessary to enable nativeSpellcheck. - **nativeSpellcheck**: If set to `false`, disable native spell checker. Defaults to `true`. +- **sideBySideFullscreen**: If set to `false`, allows side-by-side editing without going into fullscreen. Defaults to `true`. - **status**: If set to `false`, hide the status bar. Defaults to the array of built-in status bar items. - Optionally, you can set an array of status bar items to include, and in what order. You can even define your own custom status bar items. - **styleSelectedText**: If set to `false`, remove the `CodeMirror-selectedtext` class from selected lines. Defaults to `true`. @@ -288,6 +289,7 @@ var editor = new EasyMDE({ }, }], // Another optional usage, with a custom status bar item that counts keystrokes styleSelectedText: false, + sideBySideFullscreen: false, syncSideBySidePreviewScroll: false, tabSize: 4, toolbar: false, diff --git a/types/easymde-test.ts b/types/easymde-test.ts index 9ba9898..fdf6077 100644 --- a/types/easymde-test.ts +++ b/types/easymde-test.ts @@ -164,6 +164,7 @@ const editorImagesCustom = new EasyMDE({ }); new EasyMDE({ + sideBySideFullscreen: true, autosave: { enabled: true, delay: 2000, @@ -180,6 +181,7 @@ new EasyMDE({ }); new EasyMDE({ + sideBySideFullscreen: false, toolbar: [ 'bold', 'italic', diff --git a/types/easymde.d.ts b/types/easymde.d.ts index 55f26ae..1e04120 100644 --- a/types/easymde.d.ts +++ b/types/easymde.d.ts @@ -183,6 +183,7 @@ declare namespace EasyMDE { spellChecker?: boolean; inputStyle?: 'textarea' | 'contenteditable'; nativeSpellcheck?: boolean; + sideBySideFullscreen?: boolean; status?: boolean | ReadonlyArray; styleSelectedText?: boolean; tabSize?: number; From 711d62cd8f2ebabd1096f264e0845d73404ccae7 Mon Sep 17 00:00:00 2001 From: Jeroen Akkerman Date: Wed, 3 Jun 2020 13:00:55 +0200 Subject: [PATCH 13/13] Fix whitespace character in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 939e456..3f2bdb8 100644 --- a/README.md +++ b/README.md @@ -289,7 +289,7 @@ var editor = new EasyMDE({ }, }], // Another optional usage, with a custom status bar item that counts keystrokes styleSelectedText: false, - sideBySideFullscreen: false, + sideBySideFullscreen: false, syncSideBySidePreviewScroll: false, tabSize: 4, toolbar: false,