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


[文档]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.srcCharCode[state.pos] if marker == 0x5D: # /* ] */) level -= 1 if level == 0: found = True break prevPos = state.pos state.md.inline.skipToken(state) if marker == 0x5B: # /* [ */) 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