mirror of
https://github.com/sparksuite/simplemde-markdown-editor.git
synced 2025-09-24 16:40:55 -06:00
Added yaml and yaml-frontmatter modes
This commit is contained in:
parent
6eae597a69
commit
4a5345be1f
@ -88,6 +88,7 @@ simplemde.value("This text will appear in the editor");
|
|||||||
- link
|
- link
|
||||||
- table
|
- table
|
||||||
- **lineWrapping**: If set to `false`, disable line wrapping. Defaults to `true`.
|
- **lineWrapping**: If set to `false`, disable line wrapping. Defaults to `true`.
|
||||||
|
- **mode**: Can be set with `gfm` (Markdown), `yaml` or `yaml-frontmatter`. Defaults to `gfm`.
|
||||||
- **parsingConfig**: Adjust settings for parsing the Markdown during editing (not previewing).
|
- **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`.
|
- **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`.
|
- **strikethrough**: If set to `false`, will not process GFM strikethrough syntax. Defaults to `true`.
|
||||||
|
@ -58,7 +58,7 @@
|
|||||||
}
|
}
|
||||||
.cm-fat-cursor .CodeMirror-cursor {
|
.cm-fat-cursor .CodeMirror-cursor {
|
||||||
width: auto;
|
width: auto;
|
||||||
border: 0;
|
border: 0 !important;
|
||||||
background: #7e7;
|
background: #7e7;
|
||||||
}
|
}
|
||||||
.cm-fat-cursor div.CodeMirror-cursors {
|
.cm-fat-cursor div.CodeMirror-cursors {
|
||||||
@ -94,8 +94,14 @@
|
|||||||
|
|
||||||
.cm-tab { display: inline-block; text-decoration: inherit; }
|
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||||
|
|
||||||
|
.CodeMirror-rulers {
|
||||||
|
position: absolute;
|
||||||
|
left: 0; right: 0; top: -50px; bottom: -20px;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
.CodeMirror-ruler {
|
.CodeMirror-ruler {
|
||||||
border-left: 1px solid #ccc;
|
border-left: 1px solid #ccc;
|
||||||
|
top: 0; bottom: 0;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -197,6 +203,7 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||||||
|
|
||||||
.CodeMirror-gutters {
|
.CodeMirror-gutters {
|
||||||
position: absolute; left: 0; top: 0;
|
position: absolute; left: 0; top: 0;
|
||||||
|
min-height: 100%;
|
||||||
z-index: 3;
|
z-index: 3;
|
||||||
}
|
}
|
||||||
.CodeMirror-gutter {
|
.CodeMirror-gutter {
|
||||||
@ -251,6 +258,8 @@ div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
|||||||
position: relative;
|
position: relative;
|
||||||
overflow: visible;
|
overflow: visible;
|
||||||
-webkit-tap-highlight-color: transparent;
|
-webkit-tap-highlight-color: transparent;
|
||||||
|
-webkit-font-variant-ligatures: none;
|
||||||
|
font-variant-ligatures: none;
|
||||||
}
|
}
|
||||||
.CodeMirror-wrap pre {
|
.CodeMirror-wrap pre {
|
||||||
word-wrap: break-word;
|
word-wrap: break-word;
|
||||||
|
File diff suppressed because one or more lines are too long
@ -7,7 +7,7 @@
|
|||||||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SimpleMDE = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.SimpleMDE = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||||
(function (global){
|
(function (global){
|
||||||
|
|
||||||
; Typo = global.Typo = require("D:\\My Web Sites\\simplemde-markdown-editor\\node_modules\\codemirror-spell-checker\\src\\js\\typo.js");
|
; Typo = global.Typo = require("/Users/ruisaraiva/Development/simplemde-markdown-editor/node_modules/codemirror-spell-checker/src/js/typo.js");
|
||||||
CodeMirror = global.CodeMirror = require("codemirror");
|
CodeMirror = global.CodeMirror = require("codemirror");
|
||||||
; var __browserify_shim_require__=require;(function browserifyShim(module, define, require) {
|
; var __browserify_shim_require__=require;(function browserifyShim(module, define, require) {
|
||||||
// Initialize data globally to reduce memory consumption
|
// Initialize data globally to reduce memory consumption
|
||||||
@ -105,7 +105,7 @@ if(!String.prototype.includes) {
|
|||||||
}).call(global, module, undefined, undefined);
|
}).call(global, module, undefined, undefined);
|
||||||
|
|
||||||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||||||
},{"D:\\My Web Sites\\simplemde-markdown-editor\\node_modules\\codemirror-spell-checker\\src\\js\\typo.js":2,"codemirror":7}],2:[function(require,module,exports){
|
},{"/Users/ruisaraiva/Development/simplemde-markdown-editor/node_modules/codemirror-spell-checker/src/js/typo.js":2,"codemirror":7}],2:[function(require,module,exports){
|
||||||
(function (global){
|
(function (global){
|
||||||
; var __browserify_shim_require__=require;(function browserifyShim(module, exports, require, define, browserify_shim__define__module__export__) {
|
; var __browserify_shim_require__=require;(function browserifyShim(module, exports, require, define, browserify_shim__define__module__export__) {
|
||||||
'use strict';
|
'use strict';
|
||||||
@ -1170,6 +1170,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
// This is woefully incomplete. Suggestions for alternative methods welcome.
|
// This is woefully incomplete. Suggestions for alternative methods welcome.
|
||||||
var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
|
var mobile = ios || /Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(userAgent);
|
||||||
var mac = ios || /Mac/.test(platform);
|
var mac = ios || /Mac/.test(platform);
|
||||||
|
var chromeOS = /\bCrOS\b/.test(userAgent);
|
||||||
var windows = /win/i.test(platform);
|
var windows = /win/i.test(platform);
|
||||||
|
|
||||||
var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
|
var presto_version = presto && userAgent.match(/Version\/(\d*\.\d*)/);
|
||||||
@ -1876,6 +1877,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
|
|
||||||
function postUpdateDisplay(cm, update) {
|
function postUpdateDisplay(cm, update) {
|
||||||
var viewport = update.viewport;
|
var viewport = update.viewport;
|
||||||
|
|
||||||
for (var first = true;; first = false) {
|
for (var first = true;; first = false) {
|
||||||
if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
|
if (!first || !cm.options.lineWrapping || update.oldDisplayWidth == displayWidth(cm)) {
|
||||||
// Clip forced viewport to actual scrollable area.
|
// Clip forced viewport to actual scrollable area.
|
||||||
@ -1891,8 +1893,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
updateHeightsInViewport(cm);
|
updateHeightsInViewport(cm);
|
||||||
var barMeasure = measureForScrollbars(cm);
|
var barMeasure = measureForScrollbars(cm);
|
||||||
updateSelection(cm);
|
updateSelection(cm);
|
||||||
setDocumentHeight(cm, barMeasure);
|
|
||||||
updateScrollbars(cm, barMeasure);
|
updateScrollbars(cm, barMeasure);
|
||||||
|
setDocumentHeight(cm, barMeasure);
|
||||||
}
|
}
|
||||||
|
|
||||||
update.signal(cm, "update", cm);
|
update.signal(cm, "update", cm);
|
||||||
@ -1909,8 +1911,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
postUpdateDisplay(cm, update);
|
postUpdateDisplay(cm, update);
|
||||||
var barMeasure = measureForScrollbars(cm);
|
var barMeasure = measureForScrollbars(cm);
|
||||||
updateSelection(cm);
|
updateSelection(cm);
|
||||||
setDocumentHeight(cm, barMeasure);
|
|
||||||
updateScrollbars(cm, barMeasure);
|
updateScrollbars(cm, barMeasure);
|
||||||
|
setDocumentHeight(cm, barMeasure);
|
||||||
update.finish();
|
update.finish();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1918,8 +1920,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
function setDocumentHeight(cm, measure) {
|
function setDocumentHeight(cm, measure) {
|
||||||
cm.display.sizer.style.minHeight = measure.docHeight + "px";
|
cm.display.sizer.style.minHeight = measure.docHeight + "px";
|
||||||
cm.display.heightForcer.style.top = measure.docHeight + "px";
|
cm.display.heightForcer.style.top = measure.docHeight + "px";
|
||||||
cm.display.gutters.style.height = Math.max(measure.docHeight + cm.display.barHeight + scrollGap(cm),
|
cm.display.gutters.style.height = (measure.docHeight + cm.display.barHeight + scrollGap(cm)) + "px";
|
||||||
measure.clientHeight) + "px";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Read the actual heights of the rendered lines, and update their
|
// Read the actual heights of the rendered lines, and update their
|
||||||
@ -2224,9 +2225,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
|
if (!cm.state.focused) { cm.display.input.focus(); onFocus(cm); }
|
||||||
}
|
}
|
||||||
|
|
||||||
// This will be set to an array of strings when copying, so that,
|
// This will be set to a {lineWise: bool, text: [string]} object, so
|
||||||
// when pasting, we know what kind of selections the copied text
|
// that, when pasting, we know what kind of selections the copied
|
||||||
// was made out of.
|
// text was made out of.
|
||||||
var lastCopied = null;
|
var lastCopied = null;
|
||||||
|
|
||||||
function applyTextInput(cm, inserted, deleted, sel, origin) {
|
function applyTextInput(cm, inserted, deleted, sel, origin) {
|
||||||
@ -2235,14 +2236,14 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
if (!sel) sel = doc.sel;
|
if (!sel) sel = doc.sel;
|
||||||
|
|
||||||
var paste = cm.state.pasteIncoming || origin == "paste";
|
var paste = cm.state.pasteIncoming || origin == "paste";
|
||||||
var textLines = doc.splitLines(inserted), multiPaste = null;
|
var textLines = doc.splitLines(inserted), multiPaste = null
|
||||||
// When pasing N lines into N selections, insert one line per selection
|
// When pasing N lines into N selections, insert one line per selection
|
||||||
if (paste && sel.ranges.length > 1) {
|
if (paste && sel.ranges.length > 1) {
|
||||||
if (lastCopied && lastCopied.join("\n") == inserted) {
|
if (lastCopied && lastCopied.text.join("\n") == inserted) {
|
||||||
if (sel.ranges.length % lastCopied.length == 0) {
|
if (sel.ranges.length % lastCopied.text.length == 0) {
|
||||||
multiPaste = [];
|
multiPaste = [];
|
||||||
for (var i = 0; i < lastCopied.length; i++)
|
for (var i = 0; i < lastCopied.text.length; i++)
|
||||||
multiPaste.push(doc.splitLines(lastCopied[i]));
|
multiPaste.push(doc.splitLines(lastCopied.text[i]));
|
||||||
}
|
}
|
||||||
} else if (textLines.length == sel.ranges.length) {
|
} else if (textLines.length == sel.ranges.length) {
|
||||||
multiPaste = map(textLines, function(l) { return [l]; });
|
multiPaste = map(textLines, function(l) { return [l]; });
|
||||||
@ -2258,6 +2259,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
from = Pos(from.line, from.ch - deleted);
|
from = Pos(from.line, from.ch - deleted);
|
||||||
else if (cm.state.overwrite && !paste) // Handle overwrite
|
else if (cm.state.overwrite && !paste) // Handle overwrite
|
||||||
to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
|
to = Pos(to.line, Math.min(getLine(doc, to.line).text.length, to.ch + lst(textLines).length));
|
||||||
|
else if (lastCopied && lastCopied.lineWise && lastCopied.text.join("\n") == inserted)
|
||||||
|
from = to = Pos(from.line, 0)
|
||||||
}
|
}
|
||||||
var updateInput = cm.curOp.updateInput;
|
var updateInput = cm.curOp.updateInput;
|
||||||
var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
|
var changeEvent = {from: from, to: to, text: multiPaste ? multiPaste[i % multiPaste.length] : textLines,
|
||||||
@ -2390,18 +2393,18 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
function prepareCopyCut(e) {
|
function prepareCopyCut(e) {
|
||||||
if (signalDOMEvent(cm, e)) return
|
if (signalDOMEvent(cm, e)) return
|
||||||
if (cm.somethingSelected()) {
|
if (cm.somethingSelected()) {
|
||||||
lastCopied = cm.getSelections();
|
lastCopied = {lineWise: false, text: cm.getSelections()};
|
||||||
if (input.inaccurateSelection) {
|
if (input.inaccurateSelection) {
|
||||||
input.prevInput = "";
|
input.prevInput = "";
|
||||||
input.inaccurateSelection = false;
|
input.inaccurateSelection = false;
|
||||||
te.value = lastCopied.join("\n");
|
te.value = lastCopied.text.join("\n");
|
||||||
selectInput(te);
|
selectInput(te);
|
||||||
}
|
}
|
||||||
} else if (!cm.options.lineWiseCopyCut) {
|
} else if (!cm.options.lineWiseCopyCut) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
var ranges = copyableRanges(cm);
|
var ranges = copyableRanges(cm);
|
||||||
lastCopied = ranges.text;
|
lastCopied = {lineWise: true, text: ranges.text};
|
||||||
if (e.type == "cut") {
|
if (e.type == "cut") {
|
||||||
cm.setSelections(ranges.ranges, null, sel_dontScroll);
|
cm.setSelections(ranges.ranges, null, sel_dontScroll);
|
||||||
} else {
|
} else {
|
||||||
@ -2749,13 +2752,13 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
function onCopyCut(e) {
|
function onCopyCut(e) {
|
||||||
if (signalDOMEvent(cm, e)) return
|
if (signalDOMEvent(cm, e)) return
|
||||||
if (cm.somethingSelected()) {
|
if (cm.somethingSelected()) {
|
||||||
lastCopied = cm.getSelections();
|
lastCopied = {lineWise: false, text: cm.getSelections()};
|
||||||
if (e.type == "cut") cm.replaceSelection("", null, "cut");
|
if (e.type == "cut") cm.replaceSelection("", null, "cut");
|
||||||
} else if (!cm.options.lineWiseCopyCut) {
|
} else if (!cm.options.lineWiseCopyCut) {
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
var ranges = copyableRanges(cm);
|
var ranges = copyableRanges(cm);
|
||||||
lastCopied = ranges.text;
|
lastCopied = {lineWise: true, text: ranges.text};
|
||||||
if (e.type == "cut") {
|
if (e.type == "cut") {
|
||||||
cm.operation(function() {
|
cm.operation(function() {
|
||||||
cm.setSelections(ranges.ranges, 0, sel_dontScroll);
|
cm.setSelections(ranges.ranges, 0, sel_dontScroll);
|
||||||
@ -2767,12 +2770,12 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
if (e.clipboardData && !ios) {
|
if (e.clipboardData && !ios) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.clipboardData.clearData();
|
e.clipboardData.clearData();
|
||||||
e.clipboardData.setData("text/plain", lastCopied.join("\n"));
|
e.clipboardData.setData("text/plain", lastCopied.text.join("\n"));
|
||||||
} else {
|
} else {
|
||||||
// Old-fashioned briefly-focus-a-textarea hack
|
// Old-fashioned briefly-focus-a-textarea hack
|
||||||
var kludge = hiddenTextarea(), te = kludge.firstChild;
|
var kludge = hiddenTextarea(), te = kludge.firstChild;
|
||||||
cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
|
cm.display.lineSpace.insertBefore(kludge, cm.display.lineSpace.firstChild);
|
||||||
te.value = lastCopied.join("\n");
|
te.value = lastCopied.text.join("\n");
|
||||||
var hadFocus = document.activeElement;
|
var hadFocus = document.activeElement;
|
||||||
selectInput(te);
|
selectInput(te);
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
@ -2791,9 +2794,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
return result;
|
return result;
|
||||||
},
|
},
|
||||||
|
|
||||||
showSelection: function(info) {
|
showSelection: function(info, takeFocus) {
|
||||||
if (!info || !this.cm.display.view.length) return;
|
if (!info || !this.cm.display.view.length) return;
|
||||||
if (info.focus) this.showPrimarySelection();
|
if (info.focus || takeFocus) this.showPrimarySelection();
|
||||||
this.showMultipleSelections(info);
|
this.showMultipleSelections(info);
|
||||||
},
|
},
|
||||||
|
|
||||||
@ -4229,7 +4232,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (op.updatedDisplay || op.selectionChanged)
|
if (op.updatedDisplay || op.selectionChanged)
|
||||||
op.preparedSelection = display.input.prepareSelection();
|
op.preparedSelection = display.input.prepareSelection(op.focus);
|
||||||
}
|
}
|
||||||
|
|
||||||
function endOperation_W2(op) {
|
function endOperation_W2(op) {
|
||||||
@ -4242,19 +4245,19 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
cm.display.maxLineChanged = false;
|
cm.display.maxLineChanged = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var takeFocus = op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus())
|
||||||
if (op.preparedSelection)
|
if (op.preparedSelection)
|
||||||
cm.display.input.showSelection(op.preparedSelection);
|
cm.display.input.showSelection(op.preparedSelection, takeFocus);
|
||||||
if (op.updatedDisplay)
|
|
||||||
setDocumentHeight(cm, op.barMeasure);
|
|
||||||
if (op.updatedDisplay || op.startHeight != cm.doc.height)
|
if (op.updatedDisplay || op.startHeight != cm.doc.height)
|
||||||
updateScrollbars(cm, op.barMeasure);
|
updateScrollbars(cm, op.barMeasure);
|
||||||
|
if (op.updatedDisplay)
|
||||||
|
setDocumentHeight(cm, op.barMeasure);
|
||||||
|
|
||||||
if (op.selectionChanged) restartBlink(cm);
|
if (op.selectionChanged) restartBlink(cm);
|
||||||
|
|
||||||
if (cm.state.focused && op.updateInput)
|
if (cm.state.focused && op.updateInput)
|
||||||
cm.display.input.reset(op.typing);
|
cm.display.input.reset(op.typing);
|
||||||
if (op.focus && op.focus == activeElt() && (!document.hasFocus || document.hasFocus()))
|
if (takeFocus) ensureFocus(op.cm);
|
||||||
ensureFocus(op.cm);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function endOperation_finish(op) {
|
function endOperation_finish(op) {
|
||||||
@ -4624,7 +4627,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
|
over: function(e) {if (!signalDOMEvent(cm, e)) { onDragOver(cm, e); e_stop(e); }},
|
||||||
start: function(e){onDragStart(cm, e);},
|
start: function(e){onDragStart(cm, e);},
|
||||||
drop: operation(cm, onDrop),
|
drop: operation(cm, onDrop),
|
||||||
leave: function() {clearDragCursor(cm);}
|
leave: function(e) {if (!signalDOMEvent(cm, e)) { clearDragCursor(cm); }}
|
||||||
};
|
};
|
||||||
|
|
||||||
var inp = d.input.getField();
|
var inp = d.input.getField();
|
||||||
@ -4809,7 +4812,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
ourIndex = doc.sel.primIndex;
|
ourIndex = doc.sel.primIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (e.altKey) {
|
if (chromeOS ? e.shiftKey && e.metaKey : e.altKey) {
|
||||||
type = "rect";
|
type = "rect";
|
||||||
if (!addNew) ourRange = new Range(start, start);
|
if (!addNew) ourRange = new Range(start, start);
|
||||||
start = posFromMouse(cm, e, true, true);
|
start = posFromMouse(cm, e, true, true);
|
||||||
@ -5034,6 +5037,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
|
if (signalDOMEvent(cm, e) || eventInWidget(cm.display, e)) return;
|
||||||
|
|
||||||
e.dataTransfer.setData("Text", cm.getSelection());
|
e.dataTransfer.setData("Text", cm.getSelection());
|
||||||
|
e.dataTransfer.effectAllowed = "copyMove"
|
||||||
|
|
||||||
// Use dummy image instead of default browsers image.
|
// Use dummy image instead of default browsers image.
|
||||||
// Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
|
// Recent Safari (~6.0.2) have a tendency to segfault when this happens, so we don't do it there.
|
||||||
@ -6519,7 +6523,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
for (var i = newBreaks.length - 1; i >= 0; i--)
|
for (var i = newBreaks.length - 1; i >= 0; i--)
|
||||||
replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
|
replaceRange(cm.doc, val, newBreaks[i], Pos(newBreaks[i].line, newBreaks[i].ch + val.length))
|
||||||
});
|
});
|
||||||
option("specialChars", /[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
|
option("specialChars", /[\u0000-\u001f\u007f\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g, function(cm, val, old) {
|
||||||
cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
|
cm.state.specialChars = new RegExp(val.source + (val.test("\t") ? "" : "|\t"), "g");
|
||||||
if (old != CodeMirror.Init) cm.refresh();
|
if (old != CodeMirror.Init) cm.refresh();
|
||||||
});
|
});
|
||||||
@ -6848,7 +6852,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
for (var i = 0; i < ranges.length; i++) {
|
for (var i = 0; i < ranges.length; i++) {
|
||||||
var pos = ranges[i].from();
|
var pos = ranges[i].from();
|
||||||
var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
|
var col = countColumn(cm.getLine(pos.line), pos.ch, tabSize);
|
||||||
spaces.push(new Array(tabSize - col % tabSize + 1).join(" "));
|
spaces.push(spaceStr(tabSize - col % tabSize));
|
||||||
}
|
}
|
||||||
cm.replaceSelections(spaces);
|
cm.replaceSelections(spaces);
|
||||||
},
|
},
|
||||||
@ -6891,6 +6895,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
ensureCursorVisible(cm);
|
ensureCursorVisible(cm);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
openLine: function(cm) {cm.replaceSelection("\n", "start")},
|
||||||
toggleOverwrite: function(cm) {cm.toggleOverwrite();}
|
toggleOverwrite: function(cm) {cm.toggleOverwrite();}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -6925,7 +6930,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
"Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
|
"Ctrl-F": "goCharRight", "Ctrl-B": "goCharLeft", "Ctrl-P": "goLineUp", "Ctrl-N": "goLineDown",
|
||||||
"Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
|
"Alt-F": "goWordRight", "Alt-B": "goWordLeft", "Ctrl-A": "goLineStart", "Ctrl-E": "goLineEnd",
|
||||||
"Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
|
"Ctrl-V": "goPageDown", "Shift-Ctrl-V": "goPageUp", "Ctrl-D": "delCharAfter", "Ctrl-H": "delCharBefore",
|
||||||
"Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars"
|
"Alt-D": "delWordAfter", "Alt-Backspace": "delWordBefore", "Ctrl-K": "killLine", "Ctrl-T": "transposeChars",
|
||||||
|
"Ctrl-O": "openLine"
|
||||||
};
|
};
|
||||||
keyMap.macDefault = {
|
keyMap.macDefault = {
|
||||||
"Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
|
"Cmd-A": "selectAll", "Cmd-D": "deleteLine", "Cmd-Z": "undo", "Shift-Cmd-Z": "redo", "Cmd-Y": "redo",
|
||||||
@ -7687,8 +7693,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
|
var fromCmp = cmp(found.from, from) || extraLeft(sp.marker) - extraLeft(marker);
|
||||||
var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
|
var toCmp = cmp(found.to, to) || extraRight(sp.marker) - extraRight(marker);
|
||||||
if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
|
if (fromCmp >= 0 && toCmp <= 0 || fromCmp <= 0 && toCmp >= 0) continue;
|
||||||
if (fromCmp <= 0 && (cmp(found.to, from) > 0 || (sp.marker.inclusiveRight && marker.inclusiveLeft)) ||
|
if (fromCmp <= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.to, from) >= 0 : cmp(found.to, from) > 0) ||
|
||||||
fromCmp >= 0 && (cmp(found.from, to) < 0 || (sp.marker.inclusiveLeft && marker.inclusiveRight)))
|
fromCmp >= 0 && (sp.marker.inclusiveRight && marker.inclusiveLeft ? cmp(found.from, to) <= 0 : cmp(found.from, to) < 0))
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8090,8 +8096,11 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// See issue #2901
|
// See issue #2901
|
||||||
if (webkit && /\bcm-tab\b/.test(builder.content.lastChild.className))
|
if (webkit) {
|
||||||
builder.content.className = "cm-tab-wrap-hack";
|
var last = builder.content.lastChild
|
||||||
|
if (/\bcm-tab\b/.test(last.className) || (last.querySelector && last.querySelector(".cm-tab")))
|
||||||
|
builder.content.className = "cm-tab-wrap-hack";
|
||||||
|
}
|
||||||
|
|
||||||
signal(cm, "renderLine", cm, lineView.line, builder.pre);
|
signal(cm, "renderLine", cm, lineView.line, builder.pre);
|
||||||
if (builder.pre.className)
|
if (builder.pre.className)
|
||||||
@ -8443,13 +8452,16 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
if (at <= sz) {
|
if (at <= sz) {
|
||||||
child.insertInner(at, lines, height);
|
child.insertInner(at, lines, height);
|
||||||
if (child.lines && child.lines.length > 50) {
|
if (child.lines && child.lines.length > 50) {
|
||||||
while (child.lines.length > 50) {
|
// To avoid memory thrashing when child.lines is huge (e.g. first view of a large file), it's never spliced.
|
||||||
var spilled = child.lines.splice(child.lines.length - 25, 25);
|
// Instead, small slices are taken. They're taken in order because sequential memory accesses are fastest.
|
||||||
var newleaf = new LeafChunk(spilled);
|
var remaining = child.lines.length % 25 + 25
|
||||||
child.height -= newleaf.height;
|
for (var pos = remaining; pos < child.lines.length;) {
|
||||||
this.children.splice(i + 1, 0, newleaf);
|
var leaf = new LeafChunk(child.lines.slice(pos, pos += 25));
|
||||||
newleaf.parent = this;
|
child.height -= leaf.height;
|
||||||
|
this.children.splice(++i, 0, leaf);
|
||||||
|
leaf.parent = this;
|
||||||
}
|
}
|
||||||
|
child.lines = child.lines.slice(0, remaining);
|
||||||
this.maybeSpill();
|
this.maybeSpill();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -8469,7 +8481,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
copy.parent = me;
|
copy.parent = me;
|
||||||
me.children = [copy, sibling];
|
me.children = [copy, sibling];
|
||||||
me = copy;
|
me = copy;
|
||||||
} else {
|
} else {
|
||||||
me.size -= sibling.size;
|
me.size -= sibling.size;
|
||||||
me.height -= sibling.height;
|
me.height -= sibling.height;
|
||||||
var myIndex = indexOf(me.parent.children, me);
|
var myIndex = indexOf(me.parent.children, me);
|
||||||
@ -8754,9 +8766,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
var spans = line.markedSpans;
|
var spans = line.markedSpans;
|
||||||
if (spans) for (var i = 0; i < spans.length; i++) {
|
if (spans) for (var i = 0; i < spans.length; i++) {
|
||||||
var span = spans[i];
|
var span = spans[i];
|
||||||
if (!(span.to != null && lineNo == from.line && from.ch > span.to ||
|
if (!(span.to != null && lineNo == from.line && from.ch >= span.to ||
|
||||||
span.from == null && lineNo != from.line ||
|
span.from == null && lineNo != from.line ||
|
||||||
span.from != null && lineNo == to.line && span.from > to.ch) &&
|
span.from != null && lineNo == to.line && span.from >= to.ch) &&
|
||||||
(!filter || filter(span.marker)))
|
(!filter || filter(span.marker)))
|
||||||
found.push(span.marker.parent || span.marker);
|
found.push(span.marker.parent || span.marker);
|
||||||
}
|
}
|
||||||
@ -8775,9 +8787,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
},
|
},
|
||||||
|
|
||||||
posFromIndex: function(off) {
|
posFromIndex: function(off) {
|
||||||
var ch, lineNo = this.first;
|
var ch, lineNo = this.first, sepSize = this.lineSeparator().length;
|
||||||
this.iter(function(line) {
|
this.iter(function(line) {
|
||||||
var sz = line.text.length + 1;
|
var sz = line.text.length + sepSize;
|
||||||
if (sz > off) { ch = off; return true; }
|
if (sz > off) { ch = off; return true; }
|
||||||
off -= sz;
|
off -= sz;
|
||||||
++lineNo;
|
++lineNo;
|
||||||
@ -8788,8 +8800,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
coords = clipPos(this, coords);
|
coords = clipPos(this, coords);
|
||||||
var index = coords.ch;
|
var index = coords.ch;
|
||||||
if (coords.line < this.first || coords.ch < 0) return 0;
|
if (coords.line < this.first || coords.ch < 0) return 0;
|
||||||
|
var sepSize = this.lineSeparator().length;
|
||||||
this.iter(this.first, coords.line, function (line) {
|
this.iter(this.first, coords.line, function (line) {
|
||||||
index += line.text.length + 1;
|
index += line.text.length + sepSize;
|
||||||
});
|
});
|
||||||
return index;
|
return index;
|
||||||
},
|
},
|
||||||
@ -10018,7 +10031,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
|
|||||||
|
|
||||||
// THE END
|
// THE END
|
||||||
|
|
||||||
CodeMirror.version = "5.12.1";
|
CodeMirror.version = "5.15.3";
|
||||||
|
|
||||||
return CodeMirror;
|
return CodeMirror;
|
||||||
});
|
});
|
||||||
@ -10246,7 +10259,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
, setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/
|
, setextHeaderRE = /^ *(?:\={1,}|-{1,})\s*$/
|
||||||
, textRE = /^[^#!\[\]*_\\<>` "'(~]+/
|
, textRE = /^[^#!\[\]*_\\<>` "'(~]+/
|
||||||
, fencedCodeRE = new RegExp("^(" + (modeCfg.fencedCodeBlocks === true ? "~~~+|```+" : modeCfg.fencedCodeBlocks) +
|
, fencedCodeRE = new RegExp("^(" + (modeCfg.fencedCodeBlocks === true ? "~~~+|```+" : modeCfg.fencedCodeBlocks) +
|
||||||
")[ \\t]*([\\w+#]*)");
|
")[ \\t]*([\\w+#\-]*)");
|
||||||
|
|
||||||
function switchInline(stream, state, f) {
|
function switchInline(stream, state, f) {
|
||||||
state.f = state.inline = f;
|
state.f = state.inline = f;
|
||||||
@ -10376,7 +10389,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
state.fencedChars = match[1]
|
state.fencedChars = match[1]
|
||||||
// try switching mode
|
// try switching mode
|
||||||
state.localMode = getMode(match[2]);
|
state.localMode = getMode(match[2]);
|
||||||
if (state.localMode) state.localState = state.localMode.startState();
|
if (state.localMode) state.localState = CodeMirror.startState(state.localMode);
|
||||||
state.f = state.block = local;
|
state.f = state.block = local;
|
||||||
if (modeCfg.highlightFormatting) state.formatting = "code-block";
|
if (modeCfg.highlightFormatting) state.formatting = "code-block";
|
||||||
state.code = -1
|
state.code = -1
|
||||||
@ -10595,13 +10608,13 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
return tokenTypes.image;
|
return tokenTypes.image;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ch === '[' && stream.match(/.*\](\(.*\)| ?\[.*\])/, false)) {
|
if (ch === '[' && stream.match(/[^\]]*\](\(.*\)| ?\[.*?\])/, false)) {
|
||||||
state.linkText = true;
|
state.linkText = true;
|
||||||
if (modeCfg.highlightFormatting) state.formatting = "link";
|
if (modeCfg.highlightFormatting) state.formatting = "link";
|
||||||
return getType(state);
|
return getType(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ch === ']' && state.linkText && stream.match(/\(.*\)| ?\[.*\]/, false)) {
|
if (ch === ']' && state.linkText && stream.match(/\(.*?\)| ?\[.*?\]/, false)) {
|
||||||
if (modeCfg.highlightFormatting) state.formatting = "link";
|
if (modeCfg.highlightFormatting) state.formatting = "link";
|
||||||
var type = getType(state);
|
var type = getType(state);
|
||||||
state.linkText = false;
|
state.linkText = false;
|
||||||
@ -10754,7 +10767,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
}
|
}
|
||||||
var ch = stream.next();
|
var ch = stream.next();
|
||||||
if (ch === '(' || ch === '[') {
|
if (ch === '(' || ch === '[') {
|
||||||
state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]");
|
state.f = state.inline = getLinkHrefInside(ch === "(" ? ")" : "]", 0);
|
||||||
if (modeCfg.highlightFormatting) state.formatting = "link-string";
|
if (modeCfg.highlightFormatting) state.formatting = "link-string";
|
||||||
state.linkHref = true;
|
state.linkHref = true;
|
||||||
return getType(state);
|
return getType(state);
|
||||||
@ -10762,6 +10775,11 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
return 'error';
|
return 'error';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var linkRE = {
|
||||||
|
")": /^(?:[^\\\(\)]|\\.|\((?:[^\\\(\)]|\\.)*\))*?(?=\))/,
|
||||||
|
"]": /^(?:[^\\\[\]]|\\.|\[(?:[^\\\[\\]]|\\.)*\])*?(?=\])/
|
||||||
|
}
|
||||||
|
|
||||||
function getLinkHrefInside(endChar) {
|
function getLinkHrefInside(endChar) {
|
||||||
return function(stream, state) {
|
return function(stream, state) {
|
||||||
var ch = stream.next();
|
var ch = stream.next();
|
||||||
@ -10774,10 +10792,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
return returnState;
|
return returnState;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stream.match(inlineRE(endChar), true)) {
|
stream.match(linkRE[endChar])
|
||||||
stream.backUp(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
state.linkHref = true;
|
state.linkHref = true;
|
||||||
return getType(state);
|
return getType(state);
|
||||||
};
|
};
|
||||||
@ -10825,18 +10840,6 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
|
|||||||
return tokenTypes.linkHref + " url";
|
return tokenTypes.linkHref + " url";
|
||||||
}
|
}
|
||||||
|
|
||||||
var savedInlineRE = [];
|
|
||||||
function inlineRE(endChar) {
|
|
||||||
if (!savedInlineRE[endChar]) {
|
|
||||||
// Escape endChar for RegExp (taken from http://stackoverflow.com/a/494122/526741)
|
|
||||||
endChar = (endChar+'').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
|
|
||||||
// Match any non-endChar, escaped character, as well as the closing
|
|
||||||
// endChar.
|
|
||||||
savedInlineRE[endChar] = new RegExp('^(?:[^\\\\]|\\\\.)*?(' + endChar + ')');
|
|
||||||
}
|
|
||||||
return savedInlineRE[endChar];
|
|
||||||
}
|
|
||||||
|
|
||||||
var mode = {
|
var mode = {
|
||||||
startState: function() {
|
startState: function() {
|
||||||
return {
|
return {
|
||||||
@ -11054,11 +11057,12 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
|
|||||||
{name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]},
|
{name: "Modelica", mime: "text/x-modelica", mode: "modelica", ext: ["mo"]},
|
||||||
{name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]},
|
{name: "MUMPS", mime: "text/x-mumps", mode: "mumps", ext: ["mps"]},
|
||||||
{name: "MS SQL", mime: "text/x-mssql", mode: "sql"},
|
{name: "MS SQL", mime: "text/x-mssql", mode: "sql"},
|
||||||
|
{name: "mbox", mime: "application/mbox", mode: "mbox", ext: ["mbox"]},
|
||||||
{name: "MySQL", mime: "text/x-mysql", mode: "sql"},
|
{name: "MySQL", mime: "text/x-mysql", mode: "sql"},
|
||||||
{name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i},
|
{name: "Nginx", mime: "text/x-nginx-conf", mode: "nginx", file: /nginx.*\.conf$/i},
|
||||||
{name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]},
|
{name: "NSIS", mime: "text/x-nsis", mode: "nsis", ext: ["nsh", "nsi"]},
|
||||||
{name: "NTriples", mime: "text/n-triples", mode: "ntriples", ext: ["nt"]},
|
{name: "NTriples", mime: "text/n-triples", mode: "ntriples", ext: ["nt"]},
|
||||||
{name: "Objective C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"]},
|
{name: "Objective C", mime: "text/x-objectivec", mode: "clike", ext: ["m", "mm"], alias: ["objective-c", "objc"]},
|
||||||
{name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]},
|
{name: "OCaml", mime: "text/x-ocaml", mode: "mllike", ext: ["ml", "mli", "mll", "mly"]},
|
||||||
{name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]},
|
{name: "Octave", mime: "text/x-octave", mode: "octave", ext: ["m"]},
|
||||||
{name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]},
|
{name: "Oz", mime: "text/x-oz", mode: "oz", ext: ["oz"]},
|
||||||
@ -11069,9 +11073,10 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
|
|||||||
{name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]},
|
{name: "Pig", mime: "text/x-pig", mode: "pig", ext: ["pig"]},
|
||||||
{name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]},
|
{name: "Plain Text", mime: "text/plain", mode: "null", ext: ["txt", "text", "conf", "def", "list", "log"]},
|
||||||
{name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]},
|
{name: "PLSQL", mime: "text/x-plsql", mode: "sql", ext: ["pls"]},
|
||||||
|
{name: "PowerShell", mime: "application/x-powershell", mode: "powershell", ext: ["ps1", "psd1", "psm1"]},
|
||||||
{name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]},
|
{name: "Properties files", mime: "text/x-properties", mode: "properties", ext: ["properties", "ini", "in"], alias: ["ini", "properties"]},
|
||||||
{name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]},
|
{name: "ProtoBuf", mime: "text/x-protobuf", mode: "protobuf", ext: ["proto"]},
|
||||||
{name: "Python", mime: "text/x-python", mode: "python", ext: ["py", "pyw"]},
|
{name: "Python", mime: "text/x-python", mode: "python", ext: ["BUILD", "bzl", "py", "pyw"], file: /^(BUCK|BUILD)$/},
|
||||||
{name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]},
|
{name: "Puppet", mime: "text/x-puppet", mode: "puppet", ext: ["pp"]},
|
||||||
{name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]},
|
{name: "Q", mime: "text/x-q", mode: "q", ext: ["q"]},
|
||||||
{name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r"], alias: ["rscript"]},
|
{name: "R", mime: "text/x-rsrc", mode: "r", ext: ["r"], alias: ["rscript"]},
|
||||||
@ -11080,6 +11085,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
|
|||||||
{name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]},
|
{name: "RPM Spec", mime: "text/x-rpm-spec", mode: "rpm", ext: ["spec"]},
|
||||||
{name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]},
|
{name: "Ruby", mime: "text/x-ruby", mode: "ruby", ext: ["rb"], alias: ["jruby", "macruby", "rake", "rb", "rbx"]},
|
||||||
{name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]},
|
{name: "Rust", mime: "text/x-rustsrc", mode: "rust", ext: ["rs"]},
|
||||||
|
{name: "SAS", mime: "text/x-sas", mode: "sas", ext: ["sas"]},
|
||||||
{name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]},
|
{name: "Sass", mime: "text/x-sass", mode: "sass", ext: ["sass"]},
|
||||||
{name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]},
|
{name: "Scala", mime: "text/x-scala", mode: "clike", ext: ["scala"]},
|
||||||
{name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]},
|
{name: "Scheme", mime: "text/x-scheme", mode: "scheme", ext: ["scm", "ss"]},
|
||||||
@ -11111,6 +11117,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
|
|||||||
{name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]},
|
{name: "Turtle", mime: "text/turtle", mode: "turtle", ext: ["ttl"]},
|
||||||
{name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]},
|
{name: "TypeScript", mime: "application/typescript", mode: "javascript", ext: ["ts"], alias: ["ts"]},
|
||||||
{name: "Twig", mime: "text/x-twig", mode: "twig"},
|
{name: "Twig", mime: "text/x-twig", mode: "twig"},
|
||||||
|
{name: "Web IDL", mime: "text/x-webidl", mode: "webidl", ext: ["webidl"]},
|
||||||
{name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]},
|
{name: "VB.NET", mime: "text/x-vb", mode: "vb", ext: ["vb"]},
|
||||||
{name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]},
|
{name: "VBScript", mime: "text/vbscript", mode: "vbscript", ext: ["vbs"]},
|
||||||
{name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]},
|
{name: "Velocity", mime: "text/velocity", mode: "velocity", ext: ["vtl"]},
|
||||||
@ -11118,6 +11125,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
|
|||||||
{name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]},
|
{name: "VHDL", mime: "text/x-vhdl", mode: "vhdl", ext: ["vhd", "vhdl"]},
|
||||||
{name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd"], alias: ["rss", "wsdl", "xsd"]},
|
{name: "XML", mimes: ["application/xml", "text/xml"], mode: "xml", ext: ["xml", "xsl", "xsd"], alias: ["rss", "wsdl", "xsd"]},
|
||||||
{name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]},
|
{name: "XQuery", mime: "application/xquery", mode: "xquery", ext: ["xy", "xquery"]},
|
||||||
|
{name: "Yacas", mime: "text/x-yacas", mode: "yacas", ext: ["ys"]},
|
||||||
{name: "YAML", mime: "text/x-yaml", mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]},
|
{name: "YAML", mime: "text/x-yaml", mode: "yaml", ext: ["yaml", "yml"], alias: ["yml"]},
|
||||||
{name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]},
|
{name: "Z80", mime: "text/x-z80", mode: "z80", ext: ["z80"]},
|
||||||
{name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]},
|
{name: "mscgen", mime: "text/x-mscgen", mode: "mscgen", ext: ["mscgen", "mscin", "msc"]},
|
||||||
@ -11566,6 +11574,195 @@ if (!CodeMirror.mimeModes.hasOwnProperty("text/html"))
|
|||||||
});
|
});
|
||||||
|
|
||||||
},{"../../lib/codemirror":7}],12:[function(require,module,exports){
|
},{"../../lib/codemirror":7}],12:[function(require,module,exports){
|
||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||||
|
|
||||||
|
(function (mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"), require("../yaml/yaml"))
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror", "../yaml/yaml"], mod)
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror)
|
||||||
|
})(function (CodeMirror) {
|
||||||
|
|
||||||
|
var START = 0, FRONTMATTER = 1, BODY = 2
|
||||||
|
|
||||||
|
// a mixed mode for Markdown text with an optional YAML front matter
|
||||||
|
CodeMirror.defineMode("yaml-frontmatter", function (config, parserConfig) {
|
||||||
|
var yamlMode = CodeMirror.getMode(config, "yaml")
|
||||||
|
var innerMode = CodeMirror.getMode(config, parserConfig && parserConfig.base || "gfm")
|
||||||
|
|
||||||
|
function curMode(state) {
|
||||||
|
return state.state == BODY ? innerMode : yamlMode
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
startState: function () {
|
||||||
|
return {
|
||||||
|
state: START,
|
||||||
|
inner: CodeMirror.startState(yamlMode)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
copyState: function (state) {
|
||||||
|
return {
|
||||||
|
state: state.state,
|
||||||
|
inner: CodeMirror.copyState(curMode(state), state.inner)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
token: function (stream, state) {
|
||||||
|
if (state.state == START) {
|
||||||
|
if (stream.match(/---/, false)) {
|
||||||
|
state.state = FRONTMATTER
|
||||||
|
return yamlMode.token(stream, state.inner)
|
||||||
|
} else {
|
||||||
|
state.state = BODY
|
||||||
|
state.inner = CodeMirror.startState(innerMode)
|
||||||
|
return innerMode.token(stream, state.inner)
|
||||||
|
}
|
||||||
|
} else if (state.state == FRONTMATTER) {
|
||||||
|
var end = stream.sol() && stream.match(/---/, false)
|
||||||
|
var style = yamlMode.token(stream, state.inner)
|
||||||
|
if (end) {
|
||||||
|
state.state = BODY
|
||||||
|
state.inner = CodeMirror.startState(innerMode)
|
||||||
|
}
|
||||||
|
return style
|
||||||
|
} else {
|
||||||
|
return innerMode.token(stream, state.inner)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
innerMode: function (state) {
|
||||||
|
return {mode: curMode(state), state: state.inner}
|
||||||
|
},
|
||||||
|
blankLine: function (state) {
|
||||||
|
var mode = curMode(state)
|
||||||
|
if (mode.blankLine) return mode.blankLine(state.inner)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
},{"../../lib/codemirror":7,"../yaml/yaml":13}],13:[function(require,module,exports){
|
||||||
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
|
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||||
|
|
||||||
|
(function(mod) {
|
||||||
|
if (typeof exports == "object" && typeof module == "object") // CommonJS
|
||||||
|
mod(require("../../lib/codemirror"));
|
||||||
|
else if (typeof define == "function" && define.amd) // AMD
|
||||||
|
define(["../../lib/codemirror"], mod);
|
||||||
|
else // Plain browser env
|
||||||
|
mod(CodeMirror);
|
||||||
|
})(function(CodeMirror) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
|
CodeMirror.defineMode("yaml", function() {
|
||||||
|
|
||||||
|
var cons = ['true', 'false', 'on', 'off', 'yes', 'no'];
|
||||||
|
var keywordRegex = new RegExp("\\b(("+cons.join(")|(")+"))$", 'i');
|
||||||
|
|
||||||
|
return {
|
||||||
|
token: function(stream, state) {
|
||||||
|
var ch = stream.peek();
|
||||||
|
var esc = state.escaped;
|
||||||
|
state.escaped = false;
|
||||||
|
/* comments */
|
||||||
|
if (ch == "#" && (stream.pos == 0 || /\s/.test(stream.string.charAt(stream.pos - 1)))) {
|
||||||
|
stream.skipToEnd();
|
||||||
|
return "comment";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stream.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))
|
||||||
|
return "string";
|
||||||
|
|
||||||
|
if (state.literal && stream.indentation() > state.keyCol) {
|
||||||
|
stream.skipToEnd(); return "string";
|
||||||
|
} else if (state.literal) { state.literal = false; }
|
||||||
|
if (stream.sol()) {
|
||||||
|
state.keyCol = 0;
|
||||||
|
state.pair = false;
|
||||||
|
state.pairStart = false;
|
||||||
|
/* document start */
|
||||||
|
if(stream.match(/---/)) { return "def"; }
|
||||||
|
/* document end */
|
||||||
|
if (stream.match(/\.\.\./)) { return "def"; }
|
||||||
|
/* array list item */
|
||||||
|
if (stream.match(/\s*-\s+/)) { return 'meta'; }
|
||||||
|
}
|
||||||
|
/* inline pairs/lists */
|
||||||
|
if (stream.match(/^(\{|\}|\[|\])/)) {
|
||||||
|
if (ch == '{')
|
||||||
|
state.inlinePairs++;
|
||||||
|
else if (ch == '}')
|
||||||
|
state.inlinePairs--;
|
||||||
|
else if (ch == '[')
|
||||||
|
state.inlineList++;
|
||||||
|
else
|
||||||
|
state.inlineList--;
|
||||||
|
return 'meta';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* list seperator */
|
||||||
|
if (state.inlineList > 0 && !esc && ch == ',') {
|
||||||
|
stream.next();
|
||||||
|
return 'meta';
|
||||||
|
}
|
||||||
|
/* pairs seperator */
|
||||||
|
if (state.inlinePairs > 0 && !esc && ch == ',') {
|
||||||
|
state.keyCol = 0;
|
||||||
|
state.pair = false;
|
||||||
|
state.pairStart = false;
|
||||||
|
stream.next();
|
||||||
|
return 'meta';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* start of value of a pair */
|
||||||
|
if (state.pairStart) {
|
||||||
|
/* block literals */
|
||||||
|
if (stream.match(/^\s*(\||\>)\s*/)) { state.literal = true; return 'meta'; };
|
||||||
|
/* references */
|
||||||
|
if (stream.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i)) { return 'variable-2'; }
|
||||||
|
/* numbers */
|
||||||
|
if (state.inlinePairs == 0 && stream.match(/^\s*-?[0-9\.\,]+\s?$/)) { return 'number'; }
|
||||||
|
if (state.inlinePairs > 0 && stream.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/)) { return 'number'; }
|
||||||
|
/* keywords */
|
||||||
|
if (stream.match(keywordRegex)) { return 'keyword'; }
|
||||||
|
}
|
||||||
|
|
||||||
|
/* pairs (associative arrays) -> key */
|
||||||
|
if (!state.pair && stream.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)) {
|
||||||
|
state.pair = true;
|
||||||
|
state.keyCol = stream.indentation();
|
||||||
|
return "atom";
|
||||||
|
}
|
||||||
|
if (state.pair && stream.match(/^:\s*/)) { state.pairStart = true; return 'meta'; }
|
||||||
|
|
||||||
|
/* nothing found, continue */
|
||||||
|
state.pairStart = false;
|
||||||
|
state.escaped = (ch == '\\');
|
||||||
|
stream.next();
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
startState: function() {
|
||||||
|
return {
|
||||||
|
pair: false,
|
||||||
|
pairStart: false,
|
||||||
|
keyCol: 0,
|
||||||
|
inlinePairs: 0,
|
||||||
|
inlineList: 0,
|
||||||
|
literal: false,
|
||||||
|
escaped: false
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
CodeMirror.defineMIME("text/x-yaml", "yaml");
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
},{"../../lib/codemirror":7}],14:[function(require,module,exports){
|
||||||
(function (global){
|
(function (global){
|
||||||
/**
|
/**
|
||||||
* marked - a markdown parser
|
* marked - a markdown parser
|
||||||
@ -12854,7 +13051,7 @@ if (typeof module !== 'undefined' && typeof exports === 'object') {
|
|||||||
}());
|
}());
|
||||||
|
|
||||||
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
||||||
},{}],13:[function(require,module,exports){
|
},{}],15:[function(require,module,exports){
|
||||||
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
// CodeMirror, copyright (c) by Marijn Haverbeke and others
|
||||||
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
// Distributed under an MIT license: http://codemirror.net/LICENSE
|
||||||
|
|
||||||
@ -12900,7 +13097,7 @@ CodeMirror.commands.shiftTabAndUnindentMarkdownList = function (cm) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
},{"codemirror":7}],14:[function(require,module,exports){
|
},{"codemirror":7}],16:[function(require,module,exports){
|
||||||
/*global require,module*/
|
/*global require,module*/
|
||||||
"use strict";
|
"use strict";
|
||||||
var CodeMirror = require("codemirror");
|
var CodeMirror = require("codemirror");
|
||||||
@ -12912,6 +13109,8 @@ require("codemirror/addon/mode/overlay.js");
|
|||||||
require("codemirror/addon/display/placeholder.js");
|
require("codemirror/addon/display/placeholder.js");
|
||||||
require("codemirror/mode/gfm/gfm.js");
|
require("codemirror/mode/gfm/gfm.js");
|
||||||
require("codemirror/mode/xml/xml.js");
|
require("codemirror/mode/xml/xml.js");
|
||||||
|
require("codemirror/mode/yaml/yaml.js");
|
||||||
|
require("codemirror/mode/yaml-frontmatter/yaml-frontmatter.js");
|
||||||
require("spell-checker");
|
require("spell-checker");
|
||||||
var marked = require("marked");
|
var marked = require("marked");
|
||||||
|
|
||||||
@ -14366,11 +14565,11 @@ SimpleMDE.prototype.render = function(el) {
|
|||||||
if(options.spellChecker !== false) {
|
if(options.spellChecker !== false) {
|
||||||
mode = "spell-checker";
|
mode = "spell-checker";
|
||||||
backdrop = options.parsingConfig;
|
backdrop = options.parsingConfig;
|
||||||
backdrop.name = "gfm";
|
backdrop.name = options.mode || "gfm";
|
||||||
backdrop.gitHubSpice = false;
|
backdrop.gitHubSpice = false;
|
||||||
} else {
|
} else {
|
||||||
mode = options.parsingConfig;
|
mode = options.parsingConfig;
|
||||||
mode.name = "gfm";
|
mode.name = options.mode || "gfm";
|
||||||
mode.gitHubSpice = false;
|
mode.gitHubSpice = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14906,5 +15105,5 @@ SimpleMDE.prototype.toTextArea = function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
module.exports = SimpleMDE;
|
module.exports = SimpleMDE;
|
||||||
},{"./codemirror/tablist":13,"codemirror":7,"codemirror/addon/display/fullscreen.js":3,"codemirror/addon/display/placeholder.js":4,"codemirror/addon/edit/continuelist.js":5,"codemirror/addon/mode/overlay.js":6,"codemirror/mode/gfm/gfm.js":8,"codemirror/mode/markdown/markdown.js":9,"codemirror/mode/xml/xml.js":11,"marked":12,"spell-checker":1}]},{},[14])(14)
|
},{"./codemirror/tablist":15,"codemirror":7,"codemirror/addon/display/fullscreen.js":3,"codemirror/addon/display/placeholder.js":4,"codemirror/addon/edit/continuelist.js":5,"codemirror/addon/mode/overlay.js":6,"codemirror/mode/gfm/gfm.js":8,"codemirror/mode/markdown/markdown.js":9,"codemirror/mode/xml/xml.js":11,"codemirror/mode/yaml-frontmatter/yaml-frontmatter.js":12,"codemirror/mode/yaml/yaml.js":13,"marked":14,"spell-checker":1}]},{},[16])(16)
|
||||||
});
|
});
|
2
dist/simplemde.min.css
vendored
2
dist/simplemde.min.css
vendored
File diff suppressed because one or more lines are too long
16
dist/simplemde.min.js
vendored
16
dist/simplemde.min.js
vendored
File diff suppressed because one or more lines are too long
@ -9,6 +9,8 @@ require("codemirror/addon/mode/overlay.js");
|
|||||||
require("codemirror/addon/display/placeholder.js");
|
require("codemirror/addon/display/placeholder.js");
|
||||||
require("codemirror/mode/gfm/gfm.js");
|
require("codemirror/mode/gfm/gfm.js");
|
||||||
require("codemirror/mode/xml/xml.js");
|
require("codemirror/mode/xml/xml.js");
|
||||||
|
require("codemirror/mode/yaml/yaml.js");
|
||||||
|
require("codemirror/mode/yaml-frontmatter/yaml-frontmatter.js");
|
||||||
require("spell-checker");
|
require("spell-checker");
|
||||||
var marked = require("marked");
|
var marked = require("marked");
|
||||||
|
|
||||||
@ -1463,11 +1465,11 @@ SimpleMDE.prototype.render = function(el) {
|
|||||||
if(options.spellChecker !== false) {
|
if(options.spellChecker !== false) {
|
||||||
mode = "spell-checker";
|
mode = "spell-checker";
|
||||||
backdrop = options.parsingConfig;
|
backdrop = options.parsingConfig;
|
||||||
backdrop.name = "gfm";
|
backdrop.name = options.mode || "gfm";
|
||||||
backdrop.gitHubSpice = false;
|
backdrop.gitHubSpice = false;
|
||||||
} else {
|
} else {
|
||||||
mode = options.parsingConfig;
|
mode = options.parsingConfig;
|
||||||
mode.name = "gfm";
|
mode.name = options.mode || "gfm";
|
||||||
mode.gitHubSpice = false;
|
mode.gitHubSpice = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user