summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py
diff options
context:
space:
mode:
authorcyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
committercyfraeviolae <cyfraeviolae>2024-04-03 03:17:55 -0400
commit12cf076118570eebbff08c6b3090e0d4798447a1 (patch)
tree3ba25e17e3c3a5e82316558ba3864b955919ff72 /venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py
parentc45662ff3923b34614ddcc8feb9195541166dcc5 (diff)
no venv
Diffstat (limited to 'venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py')
-rw-r--r--venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py b/venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py
deleted file mode 100644
index a8a1815..0000000
--- a/venv/lib/python3.11/site-packages/markdown_it/rules_inline/linkify.py
+++ /dev/null
@@ -1,61 +0,0 @@
-"""Process links like https://example.org/"""
-import re
-
-from .state_inline import StateInline
-
-# RFC3986: scheme = ALPHA *( ALPHA / DIGIT / "+" / "-" / "." )
-SCHEME_RE = re.compile(r"(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$", re.IGNORECASE)
-
-
-def linkify(state: StateInline, silent: bool) -> bool:
- """Rule for identifying plain-text links."""
- if not state.md.options.linkify:
- return False
- if state.linkLevel > 0:
- return False
- if not state.md.linkify:
- raise ModuleNotFoundError("Linkify enabled but not installed.")
-
- pos = state.pos
- maximum = state.posMax
-
- if (
- (pos + 3) > maximum
- or state.src[pos] != ":"
- or state.src[pos + 1] != "/"
- or state.src[pos + 2] != "/"
- ):
- return False
-
- if not (match := SCHEME_RE.match(state.pending)):
- return False
-
- proto = match.group(1)
- if not (link := state.md.linkify.match_at_start(state.src[pos - len(proto) :])):
- return False
- url: str = link.url
-
- # disallow '*' at the end of the link (conflicts with emphasis)
- url = url.rstrip("*")
-
- full_url = state.md.normalizeLink(url)
- if not state.md.validateLink(full_url):
- return False
-
- if not silent:
- state.pending = state.pending[: -len(proto)]
-
- token = state.push("link_open", "a", 1)
- token.attrs = {"href": full_url}
- token.markup = "linkify"
- token.info = "auto"
-
- token = state.push("text", "", 0)
- token.content = state.md.normalizeLinkText(url)
-
- token = state.push("link_close", "a", -1)
- token.markup = "linkify"
- token.info = "auto"
-
- state.pos += len(url) - len(proto)
- return True