diff --git a/.travis.yml b/.travis.yml index 4515f20..eec94e9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,7 +3,6 @@ node_js: - '6' - '5' - '4' -- '0.12' before_script: - npm install -g gulp script: gulp diff --git a/README.md b/README.md index 03793c9..6f98ca0 100644 --- a/README.md +++ b/README.md @@ -88,16 +88,18 @@ simplemde.value("This text will appear in the editor"); - link - table - **lineWrapping**: If set to `false`, disable line wrapping. Defaults to `true`. +- **minHeight**: Sets the minimum height for the composition area, before it starts auto-growing. Should be a string containing a valid CSS value like `"500px"`. Dafaults to `"300px"`. - **parsingConfig**: Adjust settings for parsing the Markdown during editing (not previewing). - **allowAtxHeaderWithoutSpace**: If set to `true`, will render headers without a space after the `#`. Defaults to `false`. - **strikethrough**: If set to `false`, will not process GFM strikethrough syntax. Defaults to `true`. - **underscoresBreakWords**: If set to `true`, let underscores be a delimiter for separating words. Defaults to `false`. -- **placeholder**: Custom placeholder that should be displayed +- **placeholder**: If set, displays a custom placeholder message. - **previewRender**: Custom function for parsing the plaintext Markdown and returning HTML. Used when user previews. - **promptURLs**: If set to `true`, a JS alert window appears asking for the link or image URL. Defaults to `false`. - **renderingConfig**: Adjust settings for parsing the Markdown during previewing (not editing). - - **singleLineBreaks**: If set to `false`, disable parsing GFM single line breaks. Defaults to `true`. - **codeSyntaxHighlighting**: If set to `true`, will highlight using [highlight.js](https://github.com/isagalaev/highlight.js). Defaults to `false`. To use this feature you must include highlight.js on your page. For example, include the script and the CSS files like:
``
`` + - **markedOptions**: Set the internal Markdown renderer's [options](https://github.com/chjj/marked#options-1). Other `renderingConfig` options will take precedence. + - **singleLineBreaks**: If set to `false`, disable parsing GFM single line breaks. Defaults to `true`. - **shortcuts**: Keyboard shortcuts associated with this instance. Defaults to the [array of shortcuts](#keyboard-shortcuts). - **showIcons**: An array of icon names to show. Can be used to show specific icons hidden by default without completely customizing the toolbar. - **spellChecker**: If set to `false`, disable the spell checker. Defaults to `true`. @@ -133,6 +135,7 @@ var simplemde = new SimpleMDE({ table: ["", "\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text | Text | Text |\n\n"], }, lineWrapping: false, + minHeight: "500px", parsingConfig: { allowAtxHeaderWithoutSpace: true, strikethrough: false, @@ -276,24 +279,6 @@ Shortcuts are automatically converted between platforms. If you define a shortcu The list of actions that can be bound is the same as the list of built-in actions available for [toolbar buttons](#toolbar-icons). -#### Height - -To change the minimum height (before it starts auto-growing): - -```CSS -.CodeMirror, .CodeMirror-scroll { - min-height: 200px; -} -``` - -Or, you can keep the height static: - -```CSS -.CodeMirror { - height: 300px; -} -``` - ## Event handling You can catch the following list of events: https://codemirror.net/doc/manual.html#events diff --git a/src/css/simplemde.css b/src/css/simplemde.css index fb0e4c7..567d801 100644 --- a/src/css/simplemde.css +++ b/src/css/simplemde.css @@ -1,6 +1,5 @@ .CodeMirror { height: auto; - min-height: 300px; border: 1px solid #ddd; border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; @@ -9,10 +8,6 @@ z-index: 1; } -.CodeMirror-scroll { - min-height: 300px -} - .CodeMirror-fullscreen { background: #fff; position: fixed !important; @@ -22,6 +17,8 @@ bottom: 0; height: auto; z-index: 9; + border-right: none !important; + border-bottom-right-radius: 0 !important; } .CodeMirror-sided { diff --git a/src/js/simplemde.js b/src/js/simplemde.js index 016d693..bdf6532 100644 --- a/src/js/simplemde.js +++ b/src/js/simplemde.js @@ -795,8 +795,9 @@ function _replaceSelection(cm, active, startEnd, url) { var text; var start = startEnd[0]; var end = startEnd[1]; - var startPoint = cm.getCursor("start"); - var endPoint = cm.getCursor("end"); + var startPoint = {}, endPoint = {}; + Object.assign(startPoint, cm.getCursor("start")); + Object.assign(endPoint, cm.getCursor("end")); if(url) { end = end.replace("#url#", url); } @@ -1364,6 +1365,8 @@ function SimpleMDE(options) { // Merging the shortcuts, with the given options options.shortcuts = extend({}, shortcuts, options.shortcuts || {}); + options.minHeight = options.minHeight || "300px"; + // Change unique_id to uniqueId for backwards compatibility if(options.autosave != undefined && options.autosave.unique_id != undefined && options.autosave.unique_id != "") @@ -1392,8 +1395,12 @@ function SimpleMDE(options) { SimpleMDE.prototype.markdown = function(text) { if(marked) { // Initialize - var markedOptions = {}; - + var markedOptions; + if(this.options && this.options.renderingConfig && this.options.renderingConfig.markedOptions) { + markedOptions = this.options.renderingConfig.markedOptions; + } else { + markedOptions = {}; + } // Update options if(this.options && this.options.renderingConfig && this.options.renderingConfig.singleLineBreaks === false) { @@ -1495,6 +1502,8 @@ SimpleMDE.prototype.render = function(el) { styleSelectedText: (options.styleSelectedText != undefined) ? options.styleSelectedText : true }); + this.codemirror.getScrollerElement().style.minHeight = options.minHeight; + if(options.forceSync === true) { var cm = this.codemirror; cm.on("change", function() { @@ -2025,4 +2034,4 @@ SimpleMDE.prototype.toTextArea = function() { } }; -module.exports = SimpleMDE; \ No newline at end of file +module.exports = SimpleMDE;