Source code for markdown_it.helpers.parse_link_label

"""
Parse link label

this function assumes that first character ("[") already matches
returns the end of the label

"""
from markdown_it.rules_inline import StateInline


[docs]def parseLinkLabel(state: StateInline, start: int, disableNested: bool = False) -> int: labelEnd = -1 oldPos = state.pos found = False state.pos = start + 1 level = 1 while state.pos < state.posMax: marker = state.src[state.pos] if marker == "]": level -= 1 if level == 0: found = True break prevPos = state.pos state.md.inline.skipToken(state) if marker == "[": if prevPos == state.pos - 1: # increase level if we find text `[`, # which is not a part of any token level += 1 elif disableNested: state.pos = oldPos return -1 if found: labelEnd = state.pos # restore old state state.pos = oldPos return labelEnd