"""Process escaped chars and hardbreaks"""from.state_inlineimportStateInlinefrom..common.utilsimportisSpaceESCAPED=[0for_inrange(256)]forchin"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-":ESCAPED[ord(ch)]=1
[文档]defescape(state:StateInline,silent:bool):pos=state.posmaximum=state.posMax# /* \ */ifstate.srcCharCode[pos]!=0x5C:returnFalsepos+=1ifpos<maximum:ch=state.srcCharCode[pos]ifch<256andESCAPED[ch]!=0:ifnotsilent:state.pending+=state.src[pos]state.pos+=2returnTrueifch==0x0A:ifnotsilent:state.push("hardbreak","br",0)pos+=1# skip leading whitespaces from next linewhilepos<maximum:ch=state.srcCharCode[pos]ifnotisSpace(ch):breakpos+=1state.pos=posreturnTrueifnotsilent:state.pending+="\\"state.pos+=1returnTrue