主要功能: - 修改RequirementModal支持12个订单班选择 - 添加OrderClassIconMap图标映射组件 - Store中添加selectedOrderClass状态管理 - WorkflowPage支持传递orderClass参数 - web_result添加URL参数切换功能 - 创建order-class-handler.js动态处理页面主题 技术改进: - 创建软链接关联订单班数据目录 - 生成wenlu.json和food.json数据结构 - 删除重复的web_result目录 - 添加测试页面test-order-class.html 影响范围: - 展会策划系统现支持12个订单班 - 结果展示页面自动适配不同订单班主题 - 用户可选择不同行业生成对应方案 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
109 lines
3.3 KiB
JavaScript
109 lines
3.3 KiB
JavaScript
'use strict'
|
|
|
|
module.exports = elixir
|
|
elixir.displayName = 'elixir'
|
|
elixir.aliases = []
|
|
function elixir(Prism) {
|
|
Prism.languages.elixir = {
|
|
doc: {
|
|
pattern:
|
|
/@(?:doc|moduledoc)\s+(?:("""|''')[\s\S]*?\1|("|')(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2)/,
|
|
inside: {
|
|
attribute: /^@\w+/,
|
|
string: /['"][\s\S]+/
|
|
}
|
|
},
|
|
comment: {
|
|
pattern: /#.*/,
|
|
greedy: true
|
|
},
|
|
// ~r"""foo""" (multi-line), ~r'''foo''' (multi-line), ~r/foo/, ~r|foo|, ~r"foo", ~r'foo', ~r(foo), ~r[foo], ~r{foo}, ~r<foo>
|
|
regex: {
|
|
pattern:
|
|
/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,
|
|
greedy: true
|
|
},
|
|
string: [
|
|
{
|
|
// ~s"""foo""" (multi-line), ~s'''foo''' (multi-line), ~s/foo/, ~s|foo|, ~s"foo", ~s'foo', ~s(foo), ~s[foo], ~s{foo} (with interpolation care), ~s<foo>
|
|
pattern:
|
|
/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|#(?!\{)|[^#\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,
|
|
greedy: true,
|
|
inside: {
|
|
// See interpolation below
|
|
}
|
|
},
|
|
{
|
|
pattern: /("""|''')[\s\S]*?\1/,
|
|
greedy: true,
|
|
inside: {
|
|
// See interpolation below
|
|
}
|
|
},
|
|
{
|
|
// Multi-line strings are allowed
|
|
pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,
|
|
greedy: true,
|
|
inside: {
|
|
// See interpolation below
|
|
}
|
|
}
|
|
],
|
|
atom: {
|
|
// Look-behind prevents bad highlighting of the :: operator
|
|
pattern: /(^|[^:]):\w+/,
|
|
lookbehind: true,
|
|
alias: 'symbol'
|
|
},
|
|
module: {
|
|
pattern: /\b[A-Z]\w*\b/,
|
|
alias: 'class-name'
|
|
},
|
|
// Look-ahead prevents bad highlighting of the :: operator
|
|
'attr-name': /\b\w+\??:(?!:)/,
|
|
argument: {
|
|
// Look-behind prevents bad highlighting of the && operator
|
|
pattern: /(^|[^&])&\d+/,
|
|
lookbehind: true,
|
|
alias: 'variable'
|
|
},
|
|
attribute: {
|
|
pattern: /@\w+/,
|
|
alias: 'variable'
|
|
},
|
|
function: /\b[_a-zA-Z]\w*[?!]?(?:(?=\s*(?:\.\s*)?\()|(?=\/\d))/,
|
|
number: /\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,
|
|
keyword:
|
|
/\b(?:after|alias|and|case|catch|cond|def(?:callback|delegate|exception|impl|macro|module|n|np|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|quote|raise|require|rescue|try|unless|unquote|use|when)\b/,
|
|
boolean: /\b(?:false|nil|true)\b/,
|
|
operator: [
|
|
/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,
|
|
{
|
|
// We don't want to match <<
|
|
pattern: /([^<])<(?!<)/,
|
|
lookbehind: true
|
|
},
|
|
{
|
|
// We don't want to match >>
|
|
pattern: /([^>])>(?!>)/,
|
|
lookbehind: true
|
|
}
|
|
],
|
|
punctuation: /<<|>>|[.,%\[\]{}()]/
|
|
}
|
|
Prism.languages.elixir.string.forEach(function (o) {
|
|
o.inside = {
|
|
interpolation: {
|
|
pattern: /#\{[^}]+\}/,
|
|
inside: {
|
|
delimiter: {
|
|
pattern: /^#\{|\}$/,
|
|
alias: 'punctuation'
|
|
},
|
|
rest: Prism.languages.elixir
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|