diff --git a/src/snek/system/template.py b/src/snek/system/template.py
index e8935b7..60b176d 100644
--- a/src/snek/system/template.py
+++ b/src/snek/system/template.py
@@ -23,7 +23,35 @@ def set_link_target_blank(text):
element.replace_with(BeautifulSoup(embed_template, 'html.parser'))
return str(soup)
-
+
+def embed_youtube(text):
+ soup = BeautifulSoup(text, 'html.parser')
+ for element in soup.find_all("a"):
+ if element.attrs['href'].startswith("https://www.you") and "?v=" in element.attrs["href"]:
+ video_name = element.attrs["href"].split("?v=")[1].split("&")[0]
+ embed_template = f''
+ element.replace_with(BeautifulSoup(embed_template, 'html.parser'))
+ return str(soup)
+
+def embed_image(text):
+ soup = BeautifulSoup(text, 'html.parser')
+ for element in soup.find_all("a"):
+ for extension in [".png", ".jpeg", ".gif", ".webp", ".svg", ".bmp", ".tiff", ".ico", ".heif"]:
+ if extension in element.attrs['href'].lower():
+ embed_template = f'
'
+ element.replace_with(BeautifulSoup(embed_template, 'html.parser'))
+ return str(soup)
+
+def embed_media(text):
+ soup = BeautifulSoup(text, 'html.parser')
+ for element in soup.find_all("a"):
+ for extension in [".mp4", ".mp3", ".wav", ".ogg", ".webm", ".flac", ".aac",".mpg",".avi",".wmv"]:
+ if extension in element.attrs['href'].lower():
+ embed_template = f''
+ element.replace_with(BeautifulSoup(embed_template, 'html.parser'))
+ return str(soup)
+
+
def linkify_https(text):
if not "https://" in text:
@@ -83,7 +111,11 @@ class LinkifyExtension(Extension):
).set_lineno(line_number)
def _to_html(self, md_file, caller):
- return linkify_https(caller())
+ result = linkify_https(caller())
+ result = embed_media(result)
+ result = embed_image(result)
+ result = embed_youtube(result)
+ return result
class PythonExtension(Extension):
tags = {"py3"}