[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 // CodeMirror, copyright (c) by Marijn Haverbeke and others 2 // Distributed under an MIT license: https://codemirror.net/5/LICENSE 3 4 (function (mod) { 5 if (typeof exports == "object" && typeof module == "object") // CommonJS 6 mod(require("../../lib/codemirror"), require("../yaml/yaml")) 7 else if (typeof define == "function" && define.amd) // AMD 8 define(["../../lib/codemirror", "../yaml/yaml"], mod) 9 else // Plain browser env 10 mod(CodeMirror) 11 })(function (CodeMirror) { 12 13 var START = 0, FRONTMATTER = 1, BODY = 2 14 15 // a mixed mode for Markdown text with an optional YAML front matter 16 CodeMirror.defineMode("yaml-frontmatter", function (config, parserConfig) { 17 var yamlMode = CodeMirror.getMode(config, "yaml") 18 var innerMode = CodeMirror.getMode(config, parserConfig && parserConfig.base || "gfm") 19 20 function localMode(state) { 21 return state.state == FRONTMATTER ? {mode: yamlMode, state: state.yaml} : {mode: innerMode, state: state.inner} 22 } 23 24 return { 25 startState: function () { 26 return { 27 state: START, 28 yaml: null, 29 inner: CodeMirror.startState(innerMode) 30 } 31 }, 32 copyState: function (state) { 33 return { 34 state: state.state, 35 yaml: state.yaml && CodeMirror.copyState(yamlMode, state.yaml), 36 inner: CodeMirror.copyState(innerMode, state.inner) 37 } 38 }, 39 token: function (stream, state) { 40 if (state.state == START) { 41 if (stream.match('---', false)) { 42 state.state = FRONTMATTER 43 state.yaml = CodeMirror.startState(yamlMode) 44 return yamlMode.token(stream, state.yaml) 45 } else { 46 state.state = BODY 47 return innerMode.token(stream, state.inner) 48 } 49 } else if (state.state == FRONTMATTER) { 50 var end = stream.sol() && stream.match(/(---|\.\.\.)/, false) 51 var style = yamlMode.token(stream, state.yaml) 52 if (end) { 53 state.state = BODY 54 state.yaml = null 55 } 56 return style 57 } else { 58 return innerMode.token(stream, state.inner) 59 } 60 }, 61 innerMode: localMode, 62 indent: function(state, a, b) { 63 var m = localMode(state) 64 return m.mode.indent ? m.mode.indent(m.state, a, b) : CodeMirror.Pass 65 }, 66 blankLine: function (state) { 67 var m = localMode(state) 68 if (m.mode.blankLine) return m.mode.blankLine(m.state) 69 } 70 } 71 }) 72 });
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |