UNPKG

hljs-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.88 kB
"use strict";var i=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var r=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var b=(e,a)=>{for(var n in a)i(e,n,{get:a[n],enumerable:!0})},c=(e,a,n,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let s of r(a))!m.call(e,s)&&s!==n&&i(e,s,{get:()=>a[s],enumerable:!(t=g(a,s))||t.enumerable});return e};var l=e=>c(i({},"__esModule",{value:!0}),e);var d={};b(d,{mermaidGrammar:()=>o});module.exports=l(d);var o=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:/[:;#{}[\]()]/}]});0&&(module.exports={mermaidGrammar});