| 18 | const r=e=>!!e.scope||e.sublanguage&&e.language;class s{constructor(e,n){ |
| 19 | this.buffer="",this.classPrefix=n.classPrefix,e.walk(this)}addText(e){ |
| 20 | this.buffer+=a(e)}openNode(e){if(!r(e))return;let n="" |
| 21 | ;n=e.sublanguage?"language-"+e.language:((e,{prefix:n})=>{if(e.includes(".")){ |
| 22 | const t=e.split(".") |
| 23 | ;return[`${n}${t.shift()}`,...t.map(((e,n)=>`${e}${"_".repeat(n+1)}`))].join(" ") |
| 24 | }return`${n}${e}`})(e.scope,{prefix:this.classPrefix}),this.span(n)} |
| 25 | closeNode(e){r(e)&&(this.buffer+="</span>")}value(){return this.buffer}span(e){ |
| 26 | this.buffer+=`<span class="${e}">`}}const o=(e={})=>{const n={children:[]} |
| 27 | ;return Object.assign(n,e),n};class l{constructor(){ |