codekingpro/portable-devtools
114k
1"""2Parse link label3 4this function assumes that first character ("[") already matches5returns the end of the label6 7"""8 9from markdown_it.rules_inline import StateInline10 11 12def parseLinkLabel(state: StateInline, start: int, disableNested: bool = False) -> int:13 labelEnd = -114 oldPos = state.pos15 found = False16 17 state.pos = start + 118 level = 119 20 while state.pos < state.posMax:21 marker = state.src[state.pos]22 if marker == "]":23 level -= 124 if level == 0:25 found = True26 break27 28 prevPos = state.pos29 state.md.inline.skipToken(state)30 if marker == "[":31 if prevPos == state.pos - 1:32 # increase level if we find text `[`,33 # which is not a part of any token34 level += 135 elif disableNested:36 state.pos = oldPos37 return -138 if found:39 labelEnd = state.pos40 41 # restore old state42 state.pos = oldPos43 44 return labelEnd45 