"use strict";const rkatex=(md,options)=>{const backslash='\\';const dollar='$';const opts=options||{};const delimiter=opts.delimiter||dollar;if(delimiter.length!==1){throw new Error('invalid delimiter');} const katex=require("katex");const renderKatex=(source,displayMode)=>katex.renderToString(source,{displayMode:displayMode,throwOnError:false});const parseBlockKatex=(state,startLine,endLine)=>{let haveEndMarker=false;let pos=state.bMarks[startLine]+state.tShift[startLine];let max=state.eMarks[startLine];if(pos+1>max){return false;} const marker=state.src.charAt(pos);if(marker!==delimiter){return false;} let mem=pos;pos=state.skipChars(pos,marker);let len=pos-mem;if(len!==2){return false;} let nextLine=startLine;for(;;){++nextLine;if(nextLine>=endLine){break;} pos=mem=state.bMarks[nextLine]+state.tShift[nextLine];max=state.eMarks[nextLine];if(pos=4){continue;} pos=state.skipChars(pos,marker);if(pos-mem{const start=state.pos;const max=state.posMax;let pos=start;if(state.src.charAt(pos)!==delimiter){return false;} ++pos;while(pos2){return false;} const spanStart=pos;let escapedDepth=0;while(pos1,level:state.level});} state.pos=matchEnd;return true;}} pos+=1;} if(!silent){state.pending+=marker;} state.pos+=marker.length;return true;};md.inline.ruler.push('katex',parseInlineKatex,options);md.block.ruler.push('katex',parseBlockKatex,options);md.renderer.rules.katex=(tokens,idx)=>renderKatex(tokens[idx].content,tokens[idx].block);md.renderer.rules.katex.delimiter=delimiter;};module.exports=rkatex;