highlight.js-mermaid
Version:
Highlight.js / lowlight grammar for Mermaid diagrams. Enables syntax highlighting in editors like Tiptap with @tiptap/extension-code-block-lowlight.
2 lines (1 loc) • 1.37 kB
JavaScript
var a=e=>({name:"Mermaid",aliases:["mermaid"],case_insensitive:!0,contains:[e.COMMENT(/%%/,/$/),{className:"meta",begin:/%%\{/,end:/\}%%/,contains:[{className:"attr",begin:/[A-Za-z][A-Za-z0-9_-]*(?=\s*:)/},{className:"string",begin:/:\s*/,end:/(?=(,\s*[A-Za-z]|$))/,excludeBegin:!0}]},{className:"meta",begin:/^---\s*$/,end:/^---\s*$/,contains:[{className:"attr",begin:/^\s*[A-Za-z][A-Za-z0-9_-]*:/,end:/:/,excludeEnd:!0},{className:"string",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{className:"keyword",begin:/\b(?:flowchart|sequenceDiagram|classDiagram|stateDiagram|erDiagram|journey|pie|gantt|requirement|sankey|timeline|quadrant)(?:\s+(?:LR|TB|RL|BT))?\b/},{className:"operator",begin:/(?:-->|---|-\.-|==>|<-+>|o--o|x--x|\|>|<\||<-->|==|--\||\|--|->>|-->>|<\|--|\*--|:>|o\{--|\}o--)/},{className:"meta",begin:/\b[A-Za-z0-9_]+\s*-[->]+[A-Za-z0-9_]+\s*:/,end:/$/,contains:[{className:"string",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{className:"string",variants:[{begin:/\[[^\]]+\]/},{begin:/\([^)]+\)/},{begin:/\(\([^)]+\)\)/},{begin:/\{[^}]+\}/},{begin:/>[^<]+</},{begin:/\[\[[^\]]+\]\]/}]},{className:"string",begin:/note\s+(?:left|right|top|bottom)\s+of\s+[A-Za-z0-9_]+/i},{className:"title",begin:/\b[A-Za-z0-9_]+\b/},{className:"string",begin:/".*?"/},{className:"number",begin:/\b\d+([:.]\d+)?\b/},{className:"punctuation",begin:/[:;#{}[\]()]/}]});export{a};