mirror of
https://github.com/Funkoala14/knowledgebase_law.git
synced 2025-06-09 07:11:53 +08:00
169 lines
5.0 KiB
JavaScript
169 lines
5.0 KiB
JavaScript
import {
|
|
__commonJS
|
|
} from "./chunk-2TUXWMP5.js";
|
|
|
|
// node_modules/refractor/lang/naniscript.js
|
|
var require_naniscript = __commonJS({
|
|
"node_modules/refractor/lang/naniscript.js"(exports, module) {
|
|
module.exports = naniscript;
|
|
naniscript.displayName = "naniscript";
|
|
naniscript.aliases = [];
|
|
function naniscript(Prism) {
|
|
;
|
|
(function(Prism2) {
|
|
var expressionDef = /\{[^\r\n\[\]{}]*\}/;
|
|
var params = {
|
|
"quoted-string": {
|
|
pattern: /"(?:[^"\\]|\\.)*"/,
|
|
alias: "operator"
|
|
},
|
|
"command-param-id": {
|
|
pattern: /(\s)\w+:/,
|
|
lookbehind: true,
|
|
alias: "property"
|
|
},
|
|
"command-param-value": [
|
|
{
|
|
pattern: expressionDef,
|
|
alias: "selector"
|
|
},
|
|
{
|
|
pattern: /([\t ])\S+/,
|
|
lookbehind: true,
|
|
greedy: true,
|
|
alias: "operator"
|
|
},
|
|
{
|
|
pattern: /\S(?:.*\S)?/,
|
|
alias: "operator"
|
|
}
|
|
]
|
|
};
|
|
Prism2.languages.naniscript = {
|
|
// ; ...
|
|
comment: {
|
|
pattern: /^([\t ]*);.*/m,
|
|
lookbehind: true
|
|
},
|
|
// > ...
|
|
// Define is a control line starting with '>' followed by a word, a space and a text.
|
|
define: {
|
|
pattern: /^>.+/m,
|
|
alias: "tag",
|
|
inside: {
|
|
value: {
|
|
pattern: /(^>\w+[\t ]+)(?!\s)[^{}\r\n]+/,
|
|
lookbehind: true,
|
|
alias: "operator"
|
|
},
|
|
key: {
|
|
pattern: /(^>)\w+/,
|
|
lookbehind: true
|
|
}
|
|
}
|
|
},
|
|
// # ...
|
|
label: {
|
|
pattern: /^([\t ]*)#[\t ]*\w+[\t ]*$/m,
|
|
lookbehind: true,
|
|
alias: "regex"
|
|
},
|
|
command: {
|
|
pattern: /^([\t ]*)@\w+(?=[\t ]|$).*/m,
|
|
lookbehind: true,
|
|
alias: "function",
|
|
inside: {
|
|
"command-name": /^@\w+/,
|
|
expression: {
|
|
pattern: expressionDef,
|
|
greedy: true,
|
|
alias: "selector"
|
|
},
|
|
"command-params": {
|
|
pattern: /\s*\S[\s\S]*/,
|
|
inside: params
|
|
}
|
|
}
|
|
},
|
|
// Generic is any line that doesn't start with operators: ;>#@
|
|
"generic-text": {
|
|
pattern: /(^[ \t]*)[^#@>;\s].*/m,
|
|
lookbehind: true,
|
|
alias: "punctuation",
|
|
inside: {
|
|
// \{ ... \} ... \[ ... \] ... \"
|
|
"escaped-char": /\\[{}\[\]"]/,
|
|
expression: {
|
|
pattern: expressionDef,
|
|
greedy: true,
|
|
alias: "selector"
|
|
},
|
|
"inline-command": {
|
|
pattern: /\[[\t ]*\w[^\r\n\[\]]*\]/,
|
|
greedy: true,
|
|
alias: "function",
|
|
inside: {
|
|
"command-params": {
|
|
pattern: /(^\[[\t ]*\w+\b)[\s\S]+(?=\]$)/,
|
|
lookbehind: true,
|
|
inside: params
|
|
},
|
|
"command-param-name": {
|
|
pattern: /^(\[[\t ]*)\w+/,
|
|
lookbehind: true,
|
|
alias: "name"
|
|
},
|
|
"start-stop-char": /[\[\]]/
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
Prism2.languages.nani = Prism2.languages["naniscript"];
|
|
Prism2.hooks.add("after-tokenize", function(env) {
|
|
var tokens = env.tokens;
|
|
tokens.forEach(function(token) {
|
|
if (typeof token !== "string" && token.type === "generic-text") {
|
|
var content = getTextContent(token);
|
|
if (!isBracketsBalanced(content)) {
|
|
token.type = "bad-line";
|
|
token.content = content;
|
|
}
|
|
}
|
|
});
|
|
});
|
|
function isBracketsBalanced(input) {
|
|
var brackets = "[]{}";
|
|
var stack = [];
|
|
for (var i = 0; i < input.length; i++) {
|
|
var bracket = input[i];
|
|
var bracketsIndex = brackets.indexOf(bracket);
|
|
if (bracketsIndex !== -1) {
|
|
if (bracketsIndex % 2 === 0) {
|
|
stack.push(bracketsIndex + 1);
|
|
} else if (stack.pop() !== bracketsIndex) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return stack.length === 0;
|
|
}
|
|
function getTextContent(token) {
|
|
if (typeof token === "string") {
|
|
return token;
|
|
} else if (Array.isArray(token)) {
|
|
return token.map(getTextContent).join("");
|
|
} else {
|
|
return getTextContent(token.content);
|
|
}
|
|
}
|
|
})(Prism);
|
|
}
|
|
}
|
|
});
|
|
|
|
export {
|
|
require_naniscript
|
|
};
|
|
//# sourceMappingURL=chunk-XCTZJAJJ.js.map
|