[文档]defnewline(state:StateInline,silent:bool):pos=state.pos# /* \n */ifstate.srcCharCode[pos]!=0x0A:returnFalsepmax=len(state.pending)-1maximum=state.posMax# ' \n' -> hardbreak# Lookup in pending chars is bad practice! Don't copy to other rules!# Pending string is stored in concat mode, indexed lookups will cause# conversion to flat mode.ifnotsilent:ifpmax>=0andcharCodeAt(state.pending,pmax)==0x20:ifpmax>=1andcharCodeAt(state.pending,pmax-1)==0x20:state.pending=endSpace.sub("",state.pending)state.push("hardbreak","br",0)else:state.pending=state.pending[:-1]state.push("softbreak","br",0)else:state.push("softbreak","br",0)pos+=1# skip heading spaces for next linewhilepos<maximumandisSpace(state.srcCharCode[pos]):pos+=1state.pos=posreturnTrue