Files
Agent-n8n/web_frontend/exhibition-demo/node_modules/prismjs/components/prism-cue.js
Yep_Q 1564396449 feat: 完善会展策划演示系统
详细说明:
- 添加了V2版本的工作流页面和结果页面
- 更新了Serena记忆文件
- 添加了详细实施计划文档
- 优化了Vite配置
- 更新了项目文档CLAUDE.md
- 构建了演示系统的dist版本
- 包含了exhibition-demo的完整依赖
2025-09-08 11:15:23 +08:00

85 lines
2.6 KiB
JavaScript

(function (Prism) {
// https://cuelang.org/docs/references/spec/
// eslint-disable-next-line regexp/strict
var stringEscape = /\\(?:(?!\2)|\2(?:[^()\r\n]|\([^()]*\)))/.source;
// eslint-disable-next-line regexp/strict
var stringTypes = /"""(?:[^\\"]|"(?!""\2)|<esc>)*"""/.source +
// eslint-disable-next-line regexp/strict
'|' + /'''(?:[^\\']|'(?!''\2)|<esc>)*'''/.source +
// eslint-disable-next-line regexp/strict
'|' + /"(?:[^\\\r\n"]|"(?!\2)|<esc>)*"/.source +
// eslint-disable-next-line regexp/strict
'|' + /'(?:[^\\\r\n']|'(?!\2)|<esc>)*'/.source;
var stringLiteral = '(?:' + stringTypes.replace(/<esc>/g, stringEscape) + ')';
Prism.languages.cue = {
'comment': {
pattern: /\/\/.*/,
greedy: true
},
'string-literal': {
// eslint-disable-next-line regexp/strict
pattern: RegExp(/(^|[^#"'\\])(#*)/.source + stringLiteral + /(?!["'])\2/.source),
lookbehind: true,
greedy: true,
inside: {
// I'm using dirty hack here. We have to know the number hashes at the start of the string somehow,
// but we can't look back. So instead, we will use a lookahead, go to the end of the string, and
// capture the hashes at the end of the string.
'escape': {
pattern: /(?=[\s\S]*["'](#*)$)\\\1(?:U[a-fA-F0-9]{1,8}|u[a-fA-F0-9]{1,4}|x[a-fA-F0-9]{1,2}|\d{2,3}|[^(])/,
greedy: true,
alias: 'string'
},
'interpolation': {
pattern: /(?=[\s\S]*["'](#*)$)\\\1\([^()]*\)/,
greedy: true,
inside: {
'punctuation': /^\\#*\(|\)$/,
'expression': {
pattern: /[\s\S]+/,
inside: null
}
}
},
'string': /[\s\S]+/
}
},
'keyword': {
pattern: /(^|[^\w$])(?:for|if|import|in|let|null|package)(?![\w$])/,
lookbehind: true
},
'boolean': {
pattern: /(^|[^\w$])(?:false|true)(?![\w$])/,
lookbehind: true
},
'builtin': {
pattern: /(^|[^\w$])(?:bool|bytes|float|float(?:32|64)|u?int(?:8|16|32|64|128)?|number|rune|string)(?![\w$])/,
lookbehind: true
},
'attribute': {
pattern: /@[\w$]+(?=\s*\()/,
alias: 'function'
},
'function': {
pattern: /(^|[^\w$])[a-z_$][\w$]*(?=\s*\()/i,
lookbehind: true
},
'number': {
pattern: /(^|[^\w$.])(?:0b[01]+(?:_[01]+)*|0o[0-7]+(?:_[0-7]+)*|0[xX][0-9A-Fa-f]+(?:_[0-9A-Fa-f]+)*|(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[eE][+-]?\d+(?:_\d+)*)?(?:[KMGTP]i?)?)(?![\w$])/,
lookbehind: true
},
'operator': /\.{3}|_\|_|&&?|\|\|?|[=!]~|[<>=!]=?|[+\-*/?]/,
'punctuation': /[()[\]{},.:]/
};
Prism.languages.cue['string-literal'].inside.interpolation.inside.expression.inside = Prism.languages.cue;
}(Prism));