| Server IP : 85.214.239.14 / Your IP : 216.73.216.27 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/3/cwd/proc/3/root/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
ch = state.srcCharCode[pos]
# /* ` */
if ch != 0x60:
return False
start = pos
pos += 1
maximum = state.posMax
# scan marker length
while pos < maximum and (state.srcCharCode[pos] == 0x60): # /* ` */
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.srcCharCode[matchEnd] == 0x60): # /* ` */
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