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