الملفات
Building-API-and-Monitoring…/venv/lib/python3.12/site-packages/mistune/plugins/url.py
2025-09-27 23:34:33 +03:00

33 أسطر
800 B
Python

from typing import TYPE_CHECKING, Match
from ..util import escape_url
if TYPE_CHECKING:
from ..core import InlineState
from ..inline_parser import InlineParser
from ..markdown import Markdown
__all__ = ["url"]
URL_LINK_PATTERN = r"""https?:\/\/[^\s<]+[^<.,:;"')\]\s]"""
def parse_url_link(inline: "InlineParser", m: Match[str], state: "InlineState") -> int:
text = m.group(0)
pos = m.end()
if state.in_link:
inline.process_text(text, state)
return pos
state.append_token(
{
"type": "link",
"children": [{"type": "text", "raw": text}],
"attrs": {"url": escape_url(text)},
}
)
return pos
def url(md: "Markdown") -> None:
md.inline.register("url_link", URL_LINK_PATTERN, parse_url_link)