Server IP : 15.235.198.142 / Your IP : 216.73.216.32 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/markdown_it/rules_inline/ |
Upload File : |
""" Process escaped chars and hardbreaks """ from ..common.utils import isStrSpace from .state_inline import StateInline def escape(state: StateInline, silent: bool) -> bool: """Process escaped chars and hardbreaks.""" pos = state.pos maximum = state.posMax if state.src[pos] != "\\": return False pos += 1 # '\' at the end of the inline block if pos >= maximum: return False ch1 = state.src[pos] ch1_ord = ord(ch1) if ch1 == "\n": if not silent: state.push("hardbreak", "br", 0) pos += 1 # skip leading whitespaces from next line while pos < maximum: ch = state.src[pos] if not isStrSpace(ch): break pos += 1 state.pos = pos return True escapedStr = state.src[pos] if ch1_ord >= 0xD800 and ch1_ord <= 0xDBFF and pos + 1 < maximum: ch2 = state.src[pos + 1] ch2_ord = ord(ch2) if ch2_ord >= 0xDC00 and ch2_ord <= 0xDFFF: escapedStr += ch2 pos += 1 origStr = "\\" + escapedStr if not silent: token = state.push("text_special", "", 0) token.content = escapedStr if ch1 in _ESCAPED else origStr token.markup = origStr token.info = "escape" state.pos = pos + 1 return True _ESCAPED = { "!", '"', "#", "$", "%", "&", "'", "(", ")", "*", "+", ",", "-", ".", "/", ":", ";", "<", "=", ">", "?", "@", "[", "\\", "]", "^", "_", "`", "{", "|", "}", "~", }