11import urllib .parse
22from urllib .parse import parse_qs , urlparse
3- from typing import Dict , Any , Match , Tuple
3+ from typing import Dict , Any , Match , Tuple , Optional
44
55from markdown import Markdown
66from markdown .extensions import Extension
77from markdown .inlinepatterns import InlineProcessor
8- from markdown . util import etree
8+ from xml . etree import ElementTree
99
1010
1111class EmbedInlineProcessor (InlineProcessor ):
@@ -23,18 +23,19 @@ def __init__(self, md: Markdown, configs: Dict[str, Any]) -> None:
2323 super ().__init__ (self .EMBED_RE , md )
2424 self .config = configs
2525
26- def handleMatch (self , m : Match [str ], data : str ) -> Tuple [etree .Element , int , int ]: # type: ignore[override]
26+ def handleMatch (self , m : Match [str ], data : str ) -> Tuple [ElementTree .Element , int , int ]: # type: ignore[override]
2727 d = m .groupdict ()
2828 url = d .get ('url' )
29+ el : Optional [ElementTree .Element ]
2930 if not url :
30- el = etree .Element ('span' )
31+ el = ElementTree .Element ('span' )
3132 el .text = "[[]]"
3233 return el , m .start (0 ), m .end (0 )
3334 try :
3435 link = urlparse (url )
3536 host = link .hostname
3637 except :
37- el = etree .Element ('span' )
38+ el = ElementTree .Element ('span' )
3839 el .text = "[[" + url + "]]"
3940 return el , m .start (0 ), m .end (0 )
4041 el = None
@@ -44,16 +45,16 @@ def handleMatch(self, m: Match[str], data: str) -> Tuple[etree.Element, int, int
4445 except :
4546 pass
4647 if el is None :
47- el = etree .Element ('span' )
48+ el = ElementTree .Element ('span' )
4849 el .text = "[[" + url + "]]"
4950 return el , m .start (0 ), m .end (0 )
5051
5152 def _get_youtube_id (self , link : urllib .parse .ParseResult ) -> str :
5253 return (link .path if link .netloc == 'youtu.be'
5354 else parse_qs (link .query )['v' ][0 ])
5455
55- def _embed_youtube (self , vid_id : str ) -> etree .Element :
56- el = etree .Element ('iframe' )
56+ def _embed_youtube (self , vid_id : str ) -> ElementTree .Element :
57+ el = ElementTree .Element ('iframe' )
5758 el .set ('width' , '100%' )
5859 el .set ('height' , '600' )
5960 el .set ('frameborder' , '0' )
0 commit comments