"""Parse link labelthis function assumes that first character ("[") already matchesreturns the end of the label"""frommarkdown_it.rules_inlineimportStateInline
[文档]defparseLinkLabel(state:StateInline,start:int,disableNested:bool=False)->int:labelEnd=-1oldPos=state.posfound=Falsestate.pos=start+1level=1whilestate.pos<state.posMax:marker=state.srcCharCode[state.pos]ifmarker==0x5D:# /* ] */)level-=1iflevel==0:found=TruebreakprevPos=state.posstate.md.inline.skipToken(state)ifmarker==0x5B:# /* [ */)ifprevPos==state.pos-1:# increase level if we find text `[`,# which is not a part of any tokenlevel+=1elifdisableNested:state.pos=oldPosreturn-1iffound:labelEnd=state.pos# restore old statestate.pos=oldPosreturnlabelEnd