!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../yaml/yaml")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../yaml/yaml"],t):t(CodeMirror)}((function(t){t.defineMode("yaml-frontmatter",(function(e,n){var a=t.getMode(e,"yaml"),r=t.getMode(e,n&&n.base||"gfm");function o(t){return 1==t.state?{mode:a,state:t.yaml}:{mode:r,state:t.inner}}return{startState:function(){return{state:0,yaml:null,inner:t.startState(r)}},copyState:function(e){return{state:e.state,yaml:e.yaml&&t.copyState(a,e.yaml),inner:t.copyState(r,e.inner)}},token:function(e,n){if(0==n.state)return e.match("---",!1)?(n.state=1,n.yaml=t.startState(a),a.token(e,n.yaml)):(n.state=2,r.token(e,n.inner));if(1==n.state){var o=e.sol()&&e.match(/(---|\.\.\.)/,!1),i=a.token(e,n.yaml);return o&&(n.state=2,n.yaml=null),i}return r.token(e,n.inner)},innerMode:o,indent:function(e,n,a){var r=o(e);return r.mode.indent?r.mode.indent(r.state,n,a):t.Pass},blankLine:function(t){var e=o(t);if(e.mode.blankLine)return e.mode.blankLine(e.state)}}}))}));