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 : |
# Parse backticks import re from .state_inline import StateInline regex = re.compile("^ (.+) $") def backtick(state: StateInline, silent: bool) -> bool: pos = state.pos if state.src[pos] != "`": return False start = pos pos += 1 maximum = state.posMax # scan marker length while pos < maximum and (state.src[pos] == "`"): pos += 1 marker = state.src[start:pos] openerLength = len(marker) if state.backticksScanned and state.backticks.get(openerLength, 0) <= start: if not silent: state.pending += marker state.pos += openerLength return True matchStart = matchEnd = pos # Nothing found in the cache, scan until the end of the line (or until marker is found) while True: try: matchStart = state.src.index("`", matchEnd) except ValueError: break matchEnd = matchStart + 1 # scan marker length while matchEnd < maximum and (state.src[matchEnd] == "`"): matchEnd += 1 closerLength = matchEnd - matchStart if closerLength == openerLength: # Found matching closer length. if not silent: token = state.push("code_inline", "code", 0) token.markup = marker token.content = state.src[pos:matchStart].replace("\n", " ") if ( token.content.startswith(" ") and token.content.endswith(" ") and len(token.content.strip()) > 0 ): token.content = token.content[1:-1] state.pos = matchEnd return True # Some different length found, put it in cache as upper limit of where closer can be found state.backticks[closerLength] = matchStart # Scanned through the end, didn't find anything state.backticksScanned = True if not silent: state.pending += marker state.pos += openerLength return True