Source code for markdown_it.rules_inline.escape

"""
Process escaped chars and hardbreaks
"""
from .state_inline import StateInline
from ..common.utils import isSpace


ESCAPED = [0 for _ in range(256)]
for ch in "\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-":
    ESCAPED[ord(ch)] = 1


[docs]def escape(state: StateInline, silent: bool): pos = state.pos maximum = state.posMax # /* \ */ if state.srcCharCode[pos] != 0x5C: return False pos += 1 if pos < maximum: ch = state.srcCharCode[pos] if ch < 256 and ESCAPED[ch] != 0: if not silent: state.pending += state.src[pos] state.pos += 2 return True if ch == 0x0A: if not silent: state.push("hardbreak", "br", 0) pos += 1 # skip leading whitespaces from next line while pos < maximum: ch = state.srcCharCode[pos] if not isSpace(ch): break pos += 1 state.pos = pos return True if not silent: state.pending += "\\" state.pos += 1 return True