{"version":3,"sources":["../../node_modules/codemirror/mode/tiki/tiki.js"],"names":["mod","exports","module","require","define","amd","CodeMirror","defineMode","config","inBlock","style","terminator","returnTokenizer","stream","state","eol","match","tokenize","inText","next","inLine","chain","parser","sol","ch","eat","eatSpace","eatWhile","inPlugin","indentUnit","pluginName","type","peek","test","inAttributeNoQuote","inAttribute","quote","curState","setStyle","pass","i","arguments","length","cc","push","cont","apply","pushContext","startOfLine","noIndent","context","prev","indent","indented","popContext","element","attributes","endplugin","err","endcloseplugin","name","attvalue","attvaluemaybe","startState","token","indentation","comb","pop","textAfter","electricChars","defineMIME"],"mappings":"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","file":"tiki.min.js","sourcesContent":["// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: https://codemirror.net/LICENSE\n\n(function(mod) {\n if (typeof exports == \"object\" && typeof module == \"object\") // CommonJS\n mod(require(\"../../lib/codemirror\"));\n else if (typeof define == \"function\" && define.amd) // AMD\n define([\"../../lib/codemirror\"], mod);\n else // Plain browser env\n mod(CodeMirror);\n})(function(CodeMirror) {\n\"use strict\";\n\nCodeMirror.defineMode('tiki', function(config) {\n function inBlock(style, terminator, returnTokenizer) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.match(terminator)) {\n state.tokenize = inText;\n break;\n }\n stream.next();\n }\n\n if (returnTokenizer) state.tokenize = returnTokenizer;\n\n return style;\n };\n }\n\n function inLine(style) {\n return function(stream, state) {\n while(!stream.eol()) {\n stream.next();\n }\n state.tokenize = inText;\n return style;\n };\n }\n\n function inText(stream, state) {\n function chain(parser) {\n state.tokenize = parser;\n return parser(stream, state);\n }\n\n var sol = stream.sol();\n var ch = stream.next();\n\n //non start of line\n switch (ch) { //switch is generally much faster than if, so it is used here\n case \"{\": //plugin\n stream.eat(\"/\");\n stream.eatSpace();\n stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?(}]/);\n state.tokenize = inPlugin;\n return \"tag\";\n case \"_\": //bold\n if (stream.eat(\"_\"))\n return chain(inBlock(\"strong\", \"__\", inText));\n break;\n case \"'\": //italics\n if (stream.eat(\"'\"))\n return chain(inBlock(\"em\", \"''\", inText));\n break;\n case \"(\":// Wiki Link\n if (stream.eat(\"(\"))\n return chain(inBlock(\"variable-2\", \"))\", inText));\n break;\n case \"[\":// Weblink\n return chain(inBlock(\"variable-3\", \"]\", inText));\n break;\n case \"|\": //table\n if (stream.eat(\"|\"))\n return chain(inBlock(\"comment\", \"||\"));\n break;\n case \"-\":\n if (stream.eat(\"=\")) {//titleBar\n return chain(inBlock(\"header string\", \"=-\", inText));\n } else if (stream.eat(\"-\")) {//deleted\n return chain(inBlock(\"error tw-deleted\", \"--\", inText));\n }\n break;\n case \"=\": //underline\n if (stream.match(\"==\"))\n return chain(inBlock(\"tw-underline\", \"===\", inText));\n break;\n case \":\":\n if (stream.eat(\":\"))\n return chain(inBlock(\"comment\", \"::\"));\n break;\n case \"^\": //box\n return chain(inBlock(\"tw-box\", \"^\"));\n break;\n case \"~\": //np\n if (stream.match(\"np~\"))\n return chain(inBlock(\"meta\", \"~/np~\"));\n break;\n }\n\n //start of line types\n if (sol) {\n switch (ch) {\n case \"!\": //header at start of line\n if (stream.match('!!!!!')) {\n return chain(inLine(\"header string\"));\n } else if (stream.match('!!!!')) {\n return chain(inLine(\"header string\"));\n } else if (stream.match('!!!')) {\n return chain(inLine(\"header string\"));\n } else if (stream.match('!!')) {\n return chain(inLine(\"header string\"));\n } else {\n return chain(inLine(\"header string\"));\n }\n break;\n case \"*\": //unordered list line item, or
  • at start of line\n case \"#\": //ordered list line item, or
  • at start of line\n case \"+\": //ordered list line item, or
  • at start of line\n return chain(inLine(\"tw-listitem bracket\"));\n break;\n }\n }\n\n //stream.eatWhile(/[&{]/); was eating up plugins, turned off to act less like html and more like tiki\n return null;\n }\n\n var indentUnit = config.indentUnit;\n\n // Return variables for tokenizers\n var pluginName, type;\n function inPlugin(stream, state) {\n var ch = stream.next();\n var peek = stream.peek();\n\n if (ch == \"}\") {\n state.tokenize = inText;\n //type = ch == \")\" ? \"endPlugin\" : \"selfclosePlugin\"; inPlugin\n return \"tag\";\n } else if (ch == \"(\" || ch == \")\") {\n return \"bracket\";\n } else if (ch == \"=\") {\n type = \"equals\";\n\n if (peek == \">\") {\n stream.next();\n peek = stream.peek();\n }\n\n //here we detect values directly after equal character with no quotes\n if (!/[\\'\\\"]/.test(peek)) {\n state.tokenize = inAttributeNoQuote();\n }\n //end detect values\n\n return \"operator\";\n } else if (/[\\'\\\"]/.test(ch)) {\n state.tokenize = inAttribute(ch);\n return state.tokenize(stream, state);\n } else {\n stream.eatWhile(/[^\\s\\u00a0=\\\"\\'\\/?]/);\n return \"keyword\";\n }\n }\n\n function inAttribute(quote) {\n return function(stream, state) {\n while (!stream.eol()) {\n if (stream.next() == quote) {\n state.tokenize = inPlugin;\n break;\n }\n }\n return \"string\";\n };\n }\n\n function inAttributeNoQuote() {\n return function(stream, state) {\n while (!stream.eol()) {\n var ch = stream.next();\n var peek = stream.peek();\n if (ch == \" \" || ch == \",\" || /[ )}]/.test(peek)) {\n state.tokenize = inPlugin;\n break;\n }\n }\n return \"string\";\n};\n }\n\nvar curState, setStyle;\nfunction pass() {\n for (var i = arguments.length - 1; i >= 0; i--) curState.cc.push(arguments[i]);\n}\n\nfunction cont() {\n pass.apply(null, arguments);\n return true;\n}\n\nfunction pushContext(pluginName, startOfLine) {\n var noIndent = curState.context && curState.context.noIndent;\n curState.context = {\n prev: curState.context,\n pluginName: pluginName,\n indent: curState.indented,\n startOfLine: startOfLine,\n noIndent: noIndent\n };\n}\n\nfunction popContext() {\n if (curState.context) curState.context = curState.context.prev;\n}\n\nfunction element(type) {\n if (type == \"openPlugin\") {curState.pluginName = pluginName; return cont(attributes, endplugin(curState.startOfLine));}\n else if (type == \"closePlugin\") {\n var err = false;\n if (curState.context) {\n err = curState.context.pluginName != pluginName;\n popContext();\n } else {\n err = true;\n }\n if (err) setStyle = \"error\";\n return cont(endcloseplugin(err));\n }\n else if (type == \"string\") {\n if (!curState.context || curState.context.name != \"!cdata\") pushContext(\"!cdata\");\n if (curState.tokenize == inText) popContext();\n return cont();\n }\n else return cont();\n}\n\nfunction endplugin(startOfLine) {\n return function(type) {\n if (\n type == \"selfclosePlugin\" ||\n type == \"endPlugin\"\n )\n return cont();\n if (type == \"endPlugin\") {pushContext(curState.pluginName, startOfLine); return cont();}\n return cont();\n };\n}\n\nfunction endcloseplugin(err) {\n return function(type) {\n if (err) setStyle = \"error\";\n if (type == \"endPlugin\") return cont();\n return pass();\n };\n}\n\nfunction attributes(type) {\n if (type == \"keyword\") {setStyle = \"attribute\"; return cont(attributes);}\n if (type == \"equals\") return cont(attvalue, attributes);\n return pass();\n}\nfunction attvalue(type) {\n if (type == \"keyword\") {setStyle = \"string\"; return cont();}\n if (type == \"string\") return cont(attvaluemaybe);\n return pass();\n}\nfunction attvaluemaybe(type) {\n if (type == \"string\") return cont(attvaluemaybe);\n else return pass();\n}\nreturn {\n startState: function() {\n return {tokenize: inText, cc: [], indented: 0, startOfLine: true, pluginName: null, context: null};\n },\n token: function(stream, state) {\n if (stream.sol()) {\n state.startOfLine = true;\n state.indented = stream.indentation();\n }\n if (stream.eatSpace()) return null;\n\n setStyle = type = pluginName = null;\n var style = state.tokenize(stream, state);\n if ((style || type) && style != \"comment\") {\n curState = state;\n while (true) {\n var comb = state.cc.pop() || element;\n if (comb(type || style)) break;\n }\n }\n state.startOfLine = false;\n return setStyle || style;\n },\n indent: function(state, textAfter) {\n var context = state.context;\n if (context && context.noIndent) return 0;\n if (context && /^{\\//.test(textAfter))\n context = context.prev;\n while (context && !context.startOfLine)\n context = context.prev;\n if (context) return context.indent + indentUnit;\n else return 0;\n },\n electricChars: \"/\"\n};\n});\n\nCodeMirror.defineMIME(\"text/tiki\", \"tiki\");\n\n});\n"]}