@ -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 ( 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/laci/Documents/Sites/simplemde-markdown-editor/node_modules/codemirror-spell-checker/src/js/ typo.js") ;
CodeMirror = global . CodeMirror = require ( "codemirror" ) ;
; var _ _browserify _shim _require _ _ = require ; ( function browserifyShim ( module , define , require ) {
// Initialize data globally to reduce memory consumption
@ -105,7 +105,7 @@ if(!String.prototype.includes) {
} ) . call ( global , module , undefined , undefined ) ;
} ) . 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/laci/Documents/Sites/simplemde-markdown-editor/node_modules/codemirror-spell-checker/src/js/ typo.js": 2 , "codemirror" : 7 } ] , 2 : [ function ( require , module , exports ) {
( function ( global ) {
; var _ _browserify _shim _require _ _ = require ; ( function browserifyShim ( module , exports , require , define , browserify _shim _ _define _ _module _ _export _ _ ) {
'use strict' ;
@ -1140,7 +1140,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
else if ( typeof define == "function" && define . amd ) // AMD
return define ( [ ] , mod ) ;
else // Plain browser env
this . CodeMirror = mod ( ) ;
( this || window ) . CodeMirror = mod ( ) ;
} ) ( function ( ) {
"use strict" ;
@ -2221,10 +2221,6 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
if ( ! cm . state . focused ) { cm . display . input . focus ( ) ; onFocus ( cm ) ; }
}
function isReadOnly ( cm ) {
return cm . options . readOnly || cm . doc . cantEdit ;
}
// This will be set to an array of strings when copying, so that,
// when pasting, we know what kind of selections the copied text
// was made out of.
@ -2279,7 +2275,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
var pasted = e . clipboardData && e . clipboardData . getData ( "text/plain" ) ;
if ( pasted ) {
e . preventDefault ( ) ;
if ( ! isReadOnly( cm ) && ! cm . options . disableInput )
if ( ! cm. isReadOnly( ) && ! cm . options . disableInput )
runInOp ( cm , function ( ) { applyTextInput ( cm , pasted , 0 , null , "paste" ) ; } ) ;
return true ;
}
@ -2382,13 +2378,14 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
} ) ;
on ( te , "paste" , function ( e ) {
if ( handlePaste( e , cm ) ) return true ;
if ( signalDOMEvent( cm , e ) || handlePaste( e , cm ) ) return
cm . state . pasteIncoming = true ;
input . fastPoll ( ) ;
} ) ;
function prepareCopyCut ( e ) {
if ( signalDOMEvent ( cm , e ) ) return
if ( cm . somethingSelected ( ) ) {
lastCopied = cm . getSelections ( ) ;
if ( input . inaccurateSelection ) {
@ -2416,7 +2413,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
on ( te , "copy" , prepareCopyCut ) ;
on ( display . scroller , "paste" , function ( e ) {
if ( eventInWidget ( display , e ) ) return ;
if ( eventInWidget ( display , e ) || signalDOMEvent ( cm , e ) ) return ;
cm . state . pasteIncoming = true ;
input . focus ( ) ;
} ) ;
@ -2550,7 +2547,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
// in which case reading its value would be expensive.
if ( this . contextMenuPending || ! cm . state . focused ||
( hasSelection ( input ) && ! prevInput && ! this . composing ) ||
isReadOnly( cm ) || cm . options . disableInput || cm . state . keySeq )
cm. isReadOnly( ) || cm . options . disableInput || cm . state . keySeq )
return false ;
var text = input . value ;
@ -2701,7 +2698,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
var div = input . div = display . lineDiv ;
disableBrowserMagic ( div ) ;
on ( div , "paste" , function ( e ) { handlePaste ( e , cm ) ; } )
on ( div , "paste" , function ( e ) {
if ( ! signalDOMEvent ( cm , e ) ) handlePaste ( e , cm ) ;
} )
on ( div , "compositionstart" , function ( e ) {
var data = e . data ;
@ -2739,11 +2738,12 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
on ( div , "input" , function ( ) {
if ( input . composing ) return ;
if ( isReadOnly( cm ) || ! input . pollContent ( ) )
if ( cm. isReadOnly( ) || ! input . pollContent ( ) )
runInOp ( input . cm , function ( ) { regChange ( cm ) ; } ) ;
} ) ;
function onCopyCut ( e ) {
if ( signalDOMEvent ( cm , e ) ) return
if ( cm . somethingSelected ( ) ) {
lastCopied = cm . getSelections ( ) ;
if ( e . type == "cut" ) cm . replaceSelection ( "" , null , "cut" ) ;
@ -2819,8 +2819,13 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
try { var rng = range ( start . node , start . offset , end . offset , end . node ) ; }
catch ( e ) { } // Our model of the DOM might be outdated, in which case the range we try to set can be impossible
if ( rng ) {
if ( ! gecko && this . cm . state . focused ) {
sel . collapse ( start . node , start . offset ) ;
if ( ! rng . collapsed ) sel . addRange ( rng ) ;
} else {
sel . removeAllRanges ( ) ;
sel . addRange ( rng ) ;
}
if ( old && sel . anchorNode == null ) sel . addRange ( old ) ;
else if ( gecko ) this . startGracePeriod ( ) ;
}
@ -2964,7 +2969,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
this . div . focus ( ) ;
} ,
applyComposition : function ( composing ) {
if ( isReadOnly ( this . cm ) )
if ( this . cm . isReadOnly ( ) )
operation ( this . cm , regChange ) ( this . cm )
else if ( composing . data && composing . data != composing . startData )
operation ( this . cm , applyTextInput ) ( this . cm , composing . data , 0 , composing . sel ) ;
@ -2976,7 +2981,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
onKeyPress : function ( e ) {
e . preventDefault ( ) ;
if ( ! isReadOnly ( this . cm ) )
if ( ! this . cm . isReadOnly ( ) )
operation ( this . cm , applyTextInput ) ( this . cm , String . fromCharCode ( e . charCode == null ? e . keyCode : e . charCode ) , 0 ) ;
} ,
@ -3281,7 +3286,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
// Give beforeSelectionChange handlers a change to influence a
// selection update.
function filterSelectionChange ( doc , sel ) {
function filterSelectionChange ( doc , sel , options ) {
var obj = {
ranges : sel . ranges ,
update : function ( ranges ) {
@ -3289,7 +3294,8 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
for ( var i = 0 ; i < ranges . length ; i ++ )
this . ranges [ i ] = new Range ( clipPos ( doc , ranges [ i ] . anchor ) ,
clipPos ( doc , ranges [ i ] . head ) ) ;
}
} ,
origin : options && options . origin
} ;
signal ( doc , "beforeSelectionChange" , doc , obj ) ;
if ( doc . cm ) signal ( doc . cm , "beforeSelectionChange" , doc . cm , obj ) ;
@ -3315,7 +3321,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
function setSelectionNoUndo ( doc , sel , options ) {
if ( hasHandler ( doc , "beforeSelectionChange" ) || doc . cm && hasHandler ( doc . cm , "beforeSelectionChange" ) )
sel = filterSelectionChange ( doc , sel );
sel = filterSelectionChange ( doc , sel , options );
var bias = options && options . bias ||
( cmp ( sel . primary ( ) . head , doc . sel . primary ( ) . head ) < 0 ? - 1 : 1 ) ;
@ -4260,7 +4266,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
display . scroller . scrollTop = doc . scrollTop ;
}
if ( op . scrollLeft != null && ( display . scroller . scrollLeft != op . scrollLeft || op . forceScroll ) ) {
doc . scrollLeft = Math . max ( 0 , Math . min ( display . scroller . scrollWidth - display Width( cm ) , op . scrollLeft ) ) ;
doc . scrollLeft = Math . max ( 0 , Math . min ( display . scroller . scrollWidth - display . scroller . clientWidth , op . scrollLeft ) ) ;
display . scrollbars . setScrollLeft ( doc . scrollLeft ) ;
display . scroller . scrollLeft = doc . scrollLeft ;
alignHorizontally ( cm ) ;
@ -4556,7 +4562,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
return dx * dx + dy * dy > 20 * 20 ;
}
on ( d . scroller , "touchstart" , function ( e ) {
if ( ! isMouseLikeTouchEvent( e ) ) {
if ( ! signalDOMEvent( cm , e ) && ! isMouseLikeTouchEvent( e ) ) {
clearTimeout ( touchFinished ) ;
var now = + new Date ;
d . activeTouch = { start : now , moved : false ,
@ -4685,7 +4691,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
// not interfere with, such as a scrollbar or widget.
function onMouseDown ( e ) {
var cm = this , display = cm . display ;
if ( display. activeTouch && display . input . supportsTouch ( ) || signalDOMEvent ( cm , e ) ) return ;
if ( signalDOMEvent( cm , e ) || display. activeTouch && display . input . supportsTouch ( ) ) return ;
display . shift = e . shiftKey ;
if ( eventInWidget ( display , e ) ) {
@ -4741,7 +4747,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
}
var sel = cm . doc . sel , modifier = mac ? e . metaKey : e . ctrlKey , contained ;
if ( cm . options . dragDrop && dragAndDrop && ! isReadOnly( cm ) &&
if ( cm . options . dragDrop && dragAndDrop && ! cm. isReadOnly( ) &&
type == "single" && ( contained = sel . contains ( start ) ) > - 1 &&
( cmp ( ( contained = sel . ranges [ contained ] ) . from ( ) , start ) < 0 || start . xRel > 0 ) &&
( cmp ( contained . to ( ) , start ) > 0 || start . xRel < 0 ) )
@ -4965,7 +4971,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
e _preventDefault ( e ) ;
if ( ie ) lastDrop = + new Date ;
var pos = posFromMouse ( cm , e , true ) , files = e . dataTransfer . files ;
if ( ! pos || isReadOnly( cm ) ) return ;
if ( ! pos || cm. isReadOnly( ) ) return ;
// Might be a file drop, in which case we simply extract the text
// and insert it.
if ( files && files . length && window . FileReader && window . File ) {
@ -5204,7 +5210,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
cm . display . input . ensurePolled ( ) ;
var prevShift = cm . display . shift , done = false ;
try {
if ( isReadOnly( cm ) ) cm . state . suppressEdits = true ;
if ( cm. isReadOnly( ) ) cm . state . suppressEdits = true ;
if ( dropShift ) cm . display . shift = false ;
done = bound ( cm ) != Pass ;
} finally {
@ -5937,10 +5943,9 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
function findPosH ( doc , pos , dir , unit , visually ) {
var line = pos . line , ch = pos . ch , origDir = dir ;
var lineObj = getLine ( doc , line ) ;
var possible = true ;
function findNextLine ( ) {
var l = line + dir ;
if ( l < doc . first || l >= doc . first + doc . size ) return ( possible = false ) ;
if ( l < doc . first || l >= doc . first + doc . size ) return false
line = l ;
return lineObj = getLine ( doc , l ) ;
}
@ -5950,14 +5955,16 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
if ( ! boundToLine && findNextLine ( ) ) {
if ( visually ) ch = ( dir < 0 ? lineRight : lineLeft ) ( lineObj ) ;
else ch = dir < 0 ? lineObj . text . length : 0 ;
} else return ( possible = false ) ;
} else return false
} else ch = next ;
return true ;
}
if ( unit == "char" ) moveOnce ( ) ;
else if ( unit == "column" ) moveOnce ( true ) ;
else if ( unit == "word" || unit == "group" ) {
if ( unit == "char" ) {
moveOnce ( )
} else if ( unit == "column" ) {
moveOnce ( true )
} else if ( unit == "word" || unit == "group" ) {
var sawType = null , group = unit == "group" ;
var helper = doc . cm && doc . cm . getHelper ( pos , "wordChars" ) ;
for ( var first = true ; ; first = false ) {
@ -5978,7 +5985,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
}
}
var result = skipAtomic ( doc , Pos ( line , ch ) , pos , origDir , true ) ;
if ( ! possible ) result . hitSide = true ;
if ( ! cmp( pos , result ) ) result . hitSide = true ;
return result ;
}
@ -6365,6 +6372,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
signal ( this , "overwriteToggle" , this , this . state . overwrite ) ;
} ,
hasFocus : function ( ) { return this . display . input . getField ( ) == activeElt ( ) ; } ,
isReadOnly : function ( ) { return ! ! ( this . options . readOnly || this . doc . cantEdit ) ; } ,
scrollTo : methodOp ( function ( x , y ) {
if ( x != null || y != null ) resolveScrollToPos ( this ) ;
@ -8211,7 +8219,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
if ( nextChange == pos ) { // Update current marker set
spanStyle = spanEndStyle = spanStartStyle = title = css = "" ;
collapsed = null ; nextChange = Infinity ;
var foundBookmarks = [ ] ;
var foundBookmarks = [ ] , endStyles
for ( var j = 0 ; j < spans . length ; ++ j ) {
var sp = spans [ j ] , m = sp . marker ;
if ( m . type == "bookmark" && sp . from == pos && m . widgetNode ) {
@ -8224,7 +8232,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
if ( m . className ) spanStyle += " " + m . className ;
if ( m . css ) css = ( css ? css + ";" : "" ) + m . css ;
if ( m . startStyle && sp . from == pos ) spanStartStyle += " " + m . startStyle ;
if ( m . endStyle && sp . to == nextChange ) spanEndStyle += " " + m . endStyle ;
if ( m . endStyle && sp . to == nextChange ) ( endStyles || ( endStyles = [ ] ) ) . push ( m . endStyle , sp . to )
if ( m . title && ! title ) title = m . title ;
if ( m . collapsed && ( ! collapsed || compareCollapsedMarkers ( collapsed . marker , m ) < 0 ) )
collapsed = sp ;
@ -8232,14 +8240,17 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
nextChange = sp . from ;
}
}
if ( endStyles ) for ( var j = 0 ; j < endStyles . length ; j += 2 )
if ( endStyles [ j + 1 ] == nextChange ) spanEndStyle += " " + endStyles [ j ]
if ( ! collapsed || collapsed . from == pos ) for ( var j = 0 ; j < foundBookmarks . length ; ++ j )
buildCollapsedSpan ( builder , 0 , foundBookmarks [ j ] ) ;
if ( collapsed && ( collapsed . from || 0 ) == pos ) {
buildCollapsedSpan ( builder , ( collapsed . to == null ? len + 1 : collapsed . to ) - pos ,
collapsed . marker , collapsed . from == null ) ;
if ( collapsed . to == null ) return ;
if ( collapsed . to == pos ) collapsed = false ;
}
if ( ! collapsed && foundBookmarks . length ) for ( var j = 0 ; j < foundBookmarks . length ; ++ j )
buildCollapsedSpan ( builder , 0 , foundBookmarks [ j ] ) ;
}
if ( pos >= len ) break ;
@ -8579,10 +8590,11 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
extendSelection ( this , clipPos ( this , head ) , other && clipPos ( this , other ) , options ) ;
} ) ,
extendSelections : docMethodOp ( function ( heads , options ) {
extendSelections ( this , clipPosArray ( this , heads , options ) ) ;
extendSelections ( this , clipPosArray ( this , heads ) , options ) ;
} ) ,
extendSelectionsBy : docMethodOp ( function ( f , options ) {
extendSelections ( this , map ( this . sel . ranges , f ) , options ) ;
var heads = map ( this . sel . ranges , f ) ;
extendSelections ( this , clipPosArray ( this , heads ) , options ) ;
} ) ,
setSelections : docMethodOp ( function ( ranges , primary , options ) {
if ( ! ranges . length ) return ;
@ -9999,7 +10011,7 @@ CodeMirror.overlayMode = function(base, overlay, combine) {
// THE END
CodeMirror . version = "5. 9 .1";
CodeMirror . version = "5. 11 .1";
return CodeMirror ;
} ) ;
@ -10194,8 +10206,6 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
if ( modeCfg . tokenTypeOverrides === undefined )
modeCfg . tokenTypeOverrides = { } ;
var codeDepth = 0 ;
var tokenTypes = {
header : "header" ,
code : "comment" ,
@ -10354,7 +10364,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
if ( state . localMode ) state . localState = state . localMode . startState ( ) ;
state . f = state . block = local ;
if ( modeCfg . highlightFormatting ) state . formatting = "code-block" ;
state . code = true ;
state . code = - 1
return getType ( state ) ;
}
@ -10374,7 +10384,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
}
function local ( stream , state ) {
if ( st ream. sol ( ) && st ate. fencedChars && stream . match ( state . fencedChars , false ) ) {
if ( st ate. fencedChars && stream . match ( state . fencedChars , false ) ) {
state . localMode = state . localState = null ;
state . f = state . block = leavingLocal ;
return null ;
@ -10392,9 +10402,9 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
state . f = inlineNormal ;
state . fencedChars = null ;
if ( modeCfg . highlightFormatting ) state . formatting = "code-block" ;
state . code = true ;
state . code = 1
var returnType = getType ( state ) ;
state . code = false ;
state . code = 0
return returnType ;
}
@ -10544,21 +10554,18 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
if ( ch === '`' ) {
var previousFormatting = state . formatting ;
if ( modeCfg . highlightFormatting ) state . formatting = "code" ;
var t = getType ( state ) ;
var before = stream . pos ;
stream . eatWhile ( '`' ) ;
var difference = 1 + stream . pos - before ;
if ( ! state . code ) {
codeDepth = difference ;
state . code = true ;
return getType ( state ) ;
var count = stream . current ( ) . length
if ( state . code == 0 ) {
state . code = count
return getType ( state )
} else if ( count == state . code ) { // Must be exact
var t = getType ( state )
state . code = 0
return t
} else {
if ( difference === codeDepth ) { // Must be exact
state . code = false ;
return t ;
}
state . formatting = previousFormatting ;
return getType ( state ) ;
state . formatting = previousFormatting
return getType ( state )
}
} else if ( state . code ) {
return getType ( state ) ;
@ -10759,7 +10766,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
}
function footnoteLink ( stream , state ) {
if ( stream . match ( /^ [^\]]*\]:/, false ) ) {
if ( stream . match ( /^ ( [^\]\\ ]|\\.) *\]:/, false ) ) {
state . f = footnoteLinkInside ;
stream . next ( ) ; // Consume [
if ( modeCfg . highlightFormatting ) state . formatting = "link" ;
@ -10778,7 +10785,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
return returnType ;
}
stream . match ( /^ [^\]]+/, true ) ;
stream . match ( /^ ( [^\]\\ ]|\\.) +/, true ) ;
return tokenTypes . linkText ;
}
@ -10831,6 +10838,7 @@ CodeMirror.defineMode("markdown", function(cmCfg, modeCfg) {
linkText : false ,
linkHref : false ,
linkTitle : false ,
code : 0 ,
em : false ,
strong : false ,
header : 0 ,
@ -10966,12 +10974,14 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
{ name : "Cobol" , mime : "text/x-cobol" , mode : "cobol" , ext : [ "cob" , "cpy" ] } ,
{ name : "C#" , mime : "text/x-csharp" , mode : "clike" , ext : [ "cs" ] , alias : [ "csharp" ] } ,
{ name : "Clojure" , mime : "text/x-clojure" , mode : "clojure" , ext : [ "clj" ] } ,
{ name : "ClojureScript" , mime : "text/x-clojurescript" , mode : "clojure" , ext : [ "cljs" ] } ,
{ name : "Closure Stylesheets (GSS)" , mime : "text/x-gss" , mode : "css" , ext : [ "gss" ] } ,
{ name : "CMake" , mime : "text/x-cmake" , mode : "cmake" , ext : [ "cmake" , "cmake.in" ] , file : /^CMakeLists.txt$/ } ,
{ name : "CoffeeScript" , mime : "text/x-coffeescript" , mode : "coffeescript" , ext : [ "coffee" ] , alias : [ "coffee" , "coffee-script" ] } ,
{ name : "Common Lisp" , mime : "text/x-common-lisp" , mode : "commonlisp" , ext : [ "cl" , "lisp" , "el" ] , alias : [ "lisp" ] } ,
{ name : "Cypher" , mime : "application/x-cypher-query" , mode : "cypher" , ext : [ "cyp" , "cypher" ] } ,
{ name : "Cython" , mime : "text/x-cython" , mode : "python" , ext : [ "pyx" , "pxd" , "pxi" ] } ,
{ name : "Crystal" , mime : "text/x-crystal" , mode : "crystal" , ext : [ "cr" ] } ,
{ name : "CSS" , mime : "text/css" , mode : "css" , ext : [ "css" ] } ,
{ name : "CQL" , mime : "text/x-cassandra" , mode : "sql" , ext : [ "cql" ] } ,
{ name : "D" , mime : "text/x-d" , mode : "d" , ext : [ "d" ] } ,
@ -10999,6 +11009,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
{ name : "Groovy" , mime : "text/x-groovy" , mode : "groovy" , ext : [ "groovy" ] } ,
{ name : "HAML" , mime : "text/x-haml" , mode : "haml" , ext : [ "haml" ] } ,
{ name : "Haskell" , mime : "text/x-haskell" , mode : "haskell" , ext : [ "hs" ] } ,
{ name : "Haskell (Literate)" , mime : "text/x-literate-haskell" , mode : "haskell-literate" , ext : [ "lhs" ] } ,
{ name : "Haxe" , mime : "text/x-haxe" , mode : "haxe" , ext : [ "hx" ] } ,
{ name : "HXML" , mime : "text/x-hxml" , mode : "haxe" , ext : [ "hxml" ] } ,
{ name : "ASP.NET" , mime : "application/x-aspx" , mode : "htmlembedded" , ext : [ "aspx" ] , alias : [ "asp" , "aspx" ] } ,
@ -11012,6 +11023,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
mode : "javascript" , ext : [ "js" ] , alias : [ "ecmascript" , "js" , "node" ] } ,
{ name : "JSON" , mimes : [ "application/json" , "application/x-json" ] , mode : "javascript" , ext : [ "json" , "map" ] , alias : [ "json5" ] } ,
{ name : "JSON-LD" , mime : "application/ld+json" , mode : "javascript" , ext : [ "jsonld" ] , alias : [ "jsonld" ] } ,
{ name : "JSX" , mime : "text/jsx" , mode : "jsx" , ext : [ "jsx" ] } ,
{ name : "Jinja2" , mime : "null" , mode : "jinja2" } ,
{ name : "Julia" , mime : "text/x-julia" , mode : "julia" , ext : [ "jl" ] } ,
{ name : "Kotlin" , mime : "text/x-kotlin" , mode : "clike" , ext : [ "kt" ] } ,
@ -11154,13 +11166,7 @@ CodeMirror.defineMIME("text/x-markdown", "markdown");
} ) ( function ( CodeMirror ) {
"use strict" ;
CodeMirror . defineMode ( "xml" , function ( config , parserConfig ) {
var indentUnit = config . indentUnit ;
var multilineTagIndentFactor = parserConfig . multilineTagIndentFactor || 1 ;
var multilineTagIndentPastTag = parserConfig . multilineTagIndentPastTag ;
if ( multilineTagIndentPastTag == null ) multilineTagIndentPastTag = true ;
var Kludges = parserConfig . htmlMode ? {
var htmlConfig = {
autoSelfClosers : { 'area' : true , 'base' : true , 'br' : true , 'col' : true , 'command' : true ,
'embed' : true , 'frame' : true , 'hr' : true , 'img' : true , 'input' : true ,
'keygen' : true , 'link' : true , 'meta' : true , 'param' : true , 'source' : true ,
@ -11192,7 +11198,9 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
allowUnquoted : true ,
allowMissing : true ,
caseFold : true
} : {
}
var xmlConfig = {
autoSelfClosers : { } ,
implicitlyClosed : { } ,
contextGrabbers : { } ,
@ -11200,8 +11208,14 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
allowUnquoted : false ,
allowMissing : false ,
caseFold : false
} ;
var alignCDATA = parserConfig . alignCDATA ;
}
CodeMirror . defineMode ( "xml" , function ( editorConf , config _ ) {
var indentUnit = editorConf . indentUnit
var config = { }
var defaults = config _ . htmlMode ? htmlConfig : xmlConfig
for ( var prop in defaults ) config [ prop ] = defaults [ prop ]
for ( var prop in config _ ) config [ prop ] = config _ [ prop ]
// Return variables for tokenizers
var type , setStyle ;
@ -11331,7 +11345,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
this . tagName = tagName ;
this . indent = state . indented ;
this . startOfLine = startOfLine ;
if ( Kludges . doNotIndent . hasOwnProperty ( tagName ) || ( state . context && state . context . noIndent ) )
if ( config . doNotIndent . hasOwnProperty ( tagName ) || ( state . context && state . context . noIndent ) )
this . noIndent = true ;
}
function popContext ( state ) {
@ -11344,8 +11358,8 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
return ;
}
parentTagName = state . context . tagName ;
if ( ! Kludges . contextGrabbers . hasOwnProperty ( parentTagName ) ||
! Kludges . contextGrabbers [ parentTagName ] . hasOwnProperty ( nextTagName ) ) {
if ( ! config . contextGrabbers . hasOwnProperty ( parentTagName ) ||
! config . contextGrabbers [ parentTagName ] . hasOwnProperty ( nextTagName ) ) {
return ;
}
popContext ( state ) ;
@ -11376,7 +11390,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
if ( type == "word" ) {
var tagName = stream . current ( ) ;
if ( state . context && state . context . tagName != tagName &&
Kludges . implicitlyClosed . hasOwnProperty ( state . context . tagName ) )
config . implicitlyClosed . hasOwnProperty ( state . context . tagName ) )
popContext ( state ) ;
if ( state . context && state . context . tagName == tagName ) {
setStyle = "tag" ;
@ -11412,7 +11426,7 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
var tagName = state . tagName , tagStart = state . tagStart ;
state . tagName = state . tagStart = null ;
if ( type == "selfcloseTag" ||
Kludges . autoSelfClosers . hasOwnProperty ( tagName ) ) {
config . autoSelfClosers . hasOwnProperty ( tagName ) ) {
maybePopContext ( state , tagName ) ;
} else {
maybePopContext ( state , tagName ) ;
@ -11425,12 +11439,12 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
}
function attrEqState ( type , stream , state ) {
if ( type == "equals" ) return attrValueState ;
if ( ! Kludges . allowMissing ) setStyle = "error" ;
if ( ! config . allowMissing ) setStyle = "error" ;
return attrState ( type , stream , state ) ;
}
function attrValueState ( type , stream , state ) {
if ( type == "string" ) return attrContinuedState ;
if ( type == "word" && Kludges . allowUnquoted ) { setStyle = "string" ; return attrState ; }
if ( type == "word" && config . allowUnquoted ) { setStyle = "string" ; return attrState ; }
setStyle = "error" ;
return attrState ( type , stream , state ) ;
}
@ -11440,12 +11454,14 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
}
return {
startState : function ( ) {
return { tokenize : inText ,
startState : function ( baseIndent ) {
var state = { tokenize : inText ,
state : baseState ,
indented : 0 ,
indented : baseIndent || 0 ,
tagName : null , tagStart : null ,
context : null } ;
context : null }
if ( baseIndent != null ) state . baseIndent = baseIndent
return state
} ,
token : function ( stream , state ) {
@ -11478,19 +11494,19 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
return fullLine ? fullLine . match ( /^(\s*)/ ) [ 0 ] . length : 0 ;
// Indent the starts of attribute names.
if ( state . tagName ) {
if ( multilineTagIndentPastTag)
if ( config. multilineTagIndentPastTag !== false )
return state . tagStart + state . tagName . length + 2 ;
else
return state . tagStart + indentUnit * multilineTagIndentFactor ;
return state . tagStart + indentUnit * ( config . multilineTagIndentFactor || 1 ) ;
}
if ( alignCDATA && /<!\[CDATA\[/ . test ( textAfter ) ) return 0 ;
if ( config. alignCDATA && /<!\[CDATA\[/ . test ( textAfter ) ) return 0 ;
var tagAfter = textAfter && /^<(\/)?([\w_:\.-]*)/ . exec ( textAfter ) ;
if ( tagAfter && tagAfter [ 1 ] ) { // Closing tag spotted
while ( context ) {
if ( context . tagName == tagAfter [ 2 ] ) {
context = context . prev ;
break ;
} else if ( Kludges . implicitlyClosed . hasOwnProperty ( context . tagName ) ) {
} else if ( config . implicitlyClosed . hasOwnProperty ( context . tagName ) ) {
context = context . prev ;
} else {
break ;
@ -11498,25 +11514,30 @@ CodeMirror.defineMode("xml", function(config, parserConfig) {
}
} else if ( tagAfter ) { // Opening tag spotted
while ( context ) {
var grabbers = Kludges . contextGrabbers [ context . tagName ] ;
var grabbers = config . contextGrabbers [ context . tagName ] ;
if ( grabbers && grabbers . hasOwnProperty ( tagAfter [ 2 ] ) )
context = context . prev ;
else
break ;
}
}
while ( context && ! context . startOfLine )
while ( context && context . prev && ! context . startOfLine )
context = context . prev ;
if ( context ) return context . indent + indentUnit ;
else return 0 ;
else return state . baseIndent || 0 ;
} ,
electricInput : /<\/[\s\w:]+>$/ ,
blockCommentStart : "<!--" ,
blockCommentEnd : "-->" ,
configuration : parserConfig . htmlMode ? "html" : "xml" ,
helperType : parserConfig . htmlMode ? "html" : "xml"
configuration : config . htmlMode ? "html" : "xml" ,
helperType : config . htmlMode ? "html" : "xml" ,
skipAttribute : function ( state ) {
if ( state . state == attrValueState )
state . state = attrState
}
} ;
} ) ;
@ -13202,7 +13223,11 @@ function drawLink(editor) {
var cm = editor . codemirror ;
var stat = getState ( cm ) ;
var options = editor . options ;
_replaceSelection ( cm , stat . link , options . insertTexts . link ) ;
var url = "http://" ;
if ( options . promptURLs ) {
url = prompt ( options . promptTexts . link ) || "http://" ;
}
_replaceSelection ( cm , stat . link , options . insertTexts . link , url ) ;
}
/ * *
@ -13212,7 +13237,11 @@ function drawImage(editor) {
var cm = editor . codemirror ;
var stat = getState ( cm ) ;
var options = editor . options ;
_replaceSelection ( cm , stat . image , options . insertTexts . image ) ;
var url = "http://" ;
if ( options . promptURLs ) {
url = prompt ( options . promptTexts . image ) || "http://" ;
}
_replaceSelection ( cm , stat . image , options . insertTexts . image , url ) ;
}
/ * *
@ -13321,7 +13350,7 @@ function togglePreview(editor) {
var cm = editor . codemirror ;
var wrapper = cm . getWrapperElement ( ) ;
var toolbar _div = wrapper . previousSibling ;
var toolbar = editor . toolbarElements. preview ;
var toolbar = editor . options. toolbar ? editor . toolbarElements. preview : false ;
var preview = wrapper . lastChild ;
if ( ! preview || ! /editor-preview/ . test ( preview . className ) ) {
preview = document . createElement ( "div" ) ;
@ -13332,8 +13361,10 @@ function togglePreview(editor) {
preview . className = preview . className . replace (
/\s*editor-preview-active\s*/g , ""
) ;
if ( toolbar ) {
toolbar . className = toolbar . className . replace ( /\s*active\s*/g , "" ) ;
toolbar _div . className = toolbar _div . className . replace ( /\s*disabled-for-preview*/g , "" ) ;
}
} else {
// When the preview button is clicked for the first time,
// give some time for the transition from editor.css to fire and the view to slide from right to left,
@ -13341,9 +13372,11 @@ function togglePreview(editor) {
setTimeout ( function ( ) {
preview . className += " editor-preview-active" ;
} , 1 ) ;
if ( toolbar ) {
toolbar . className += " active" ;
toolbar _div . className += " disabled-for-preview" ;
}
}
preview . innerHTML = editor . options . previewRender ( editor . value ( ) , preview ) ;
// Turn off side by side if needed
@ -13352,7 +13385,7 @@ function togglePreview(editor) {
toggleSideBySide ( editor ) ;
}
function _replaceSelection ( cm , active , startEnd ) {
function _replaceSelection ( cm , active , startEnd , url ) {
if ( /editor-preview-active/ . test ( cm . getWrapperElement ( ) . lastChild . className ) )
return ;
@ -13361,6 +13394,9 @@ function _replaceSelection(cm, active, startEnd) {
var end = startEnd [ 1 ] ;
var startPoint = cm . getCursor ( "start" ) ;
var endPoint = cm . getCursor ( "end" ) ;
if ( url ) {
end = end . replace ( "#url#" , url ) ;
}
if ( active ) {
text = cm . getLine ( startPoint . line ) ;
start = text . slice ( 0 , startPoint . ch ) ;
@ -13802,12 +13838,17 @@ var toolbarBuiltInButtons = {
} ;
var insertTexts = {
link : [ "[" , "]( http:// )"] ,
image : [ "![ ](http:// ", " )"] ,
link : [ "[" , "]( #url# )"] ,
image : [ "![ ", " ](#url# )"] ,
table : [ "" , "\n\n| Column 1 | Column 2 | Column 3 |\n| -------- | -------- | -------- |\n| Text | Text | Text |\n\n" ] ,
horizontalRule : [ "" , "\n\n-----\n\n" ]
} ;
var promptTexts = {
link : "URL for link:" ,
image : "The URL of image:"
} ;
var blockStyles = {
"bold" : "**" ,
"italic" : "*"
@ -13906,6 +13947,10 @@ function SimpleMDE(options) {
options . insertTexts = extend ( { } , insertTexts , options . insertTexts || { } ) ;
// Merging the promptTexts, with the given options
options . promptTexts = extend ( { } , promptTexts , options . promptTexts || { } ) ;
// Merging the blockStyles, with the given options
options . blockStyles = extend ( { } , blockStyles , options . blockStyles || { } ) ;
@ -14037,17 +14082,19 @@ SimpleMDE.prototype.render = function(el) {
placeholder : options . placeholder || el . getAttribute ( "placeholder" ) || ""
} ) ;
this . gui = { } ;
if ( options . toolbar !== false ) {
this . createToolbar ( ) ;
this . gui. toolbar = this . createToolbar( ) ;
}
if ( options . status !== false ) {
this . createStatusbar( ) ;
this . gui. statusbar = this . createStatusbar( ) ;
}
if ( options . autosave != undefined && options . autosave . enabled === true ) {
this . autosave ( ) ;
}
this . createSideBySide( ) ;
this . gui. sideBySide = this . createSideBySide( ) ;
this . _rendered = this . element ;
} ;
@ -14097,7 +14144,7 @@ SimpleMDE.prototype.autosave = function() {
el . innerHTML = "Autosaved: " + h + ":" + m + " " + dd ;
}
setTimeout ( function ( ) {
this . autosaveTimeoutId = setTimeout ( function ( ) {
simplemde . autosave ( ) ;
} , this . options . autosave . delay || 10000 ) ;
} else {
@ -14156,7 +14203,7 @@ SimpleMDE.prototype.createSideBySide = function() {
var move = ( cm . getScrollInfo ( ) . height - cm . getScrollInfo ( ) . clientHeight ) * ratio ;
cm . scrollTo ( 0 , move ) ;
} ;
return true ;
return preview ;
} ;
SimpleMDE . prototype . createToolbar = function ( items ) {
@ -14509,6 +14556,23 @@ SimpleMDE.prototype.getState = function() {
return getState ( cm ) ;
} ;
SimpleMDE . prototype . toTextArea = function ( ) {
var cm = this . codemirror ;
var wrapper = cm . getWrapperElement ( ) ;
wrapper . parentNode . removeChild ( this . gui . toolbar ) ;
wrapper . parentNode . removeChild ( this . gui . statusbar ) ;
wrapper . parentNode . removeChild ( this . gui . sideBySide ) ;
cm . toTextArea ( ) ;
if ( this . autosaveTimeoutId ) {
clearTimeout ( this . autosaveTimeoutId ) ;
this . autosaveTimeoutId = undefined ;
this . clearAutosavedValue ( ) ;
}
} ;
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 )