
    h>                     f    S SK JrJrJrJrJrJr  SSKJrJ	r	  SSK
Jr  SSK
JrJr   " S S\5      rg)	    )AnyClassVarDictOptionalTupleLiteral   )BaseRenderer
BlockState)escape)safe_entity	striptagsc            	       t  ^  \ rS rSr% Sr\\S'   Sr\\	S      \S'   Sr
\\\S4      \S'   S	r\\\S4      \S
'   S1S\S\\   SS4U 4S jjjrS\\\4   S\S\4S jrS\S\4S jrS\S\4S jrS\S\4S jrS\S\4S jrS2S\S\S\\   S\4S jjrS2S\S\S\\   S\4S jjrS\S\4S jrS\4S jrS\4S jrS\S\4S jrS\S\4S  jrS\S!\S"\S\4S# jr S\4S$ jr!S\4S% jr"S\S\4S& jr#S2S'\S(\\   S\4S) jjr$S\S\4S* jr%S\S\4S+ jr&S\S\4S, jr'S\S-\S"\S\4S. jr(S\S\4S/ jr)S0r*U =r+$ )3HTMLRenderer   z+A renderer for converting Markdown to HTML._escapehtmlNAME)zjavascript:z	vbscript:zfile:zdata:.HARMFUL_PROTOCOLS)zdata:image/gif;zdata:image/png;zdata:image/jpeg;zdata:image/webp;GOOD_DATA_PROTOCOLSNr   allow_harmful_protocolsreturnc                 B   > [         [        U ]  5         X l        Xl        g N)superr   __init___allow_harmful_protocolsr   )selfr   r   	__class__s      iC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/renderers/html.pyr   HTMLRenderer.__init__   s    lD*,(?%    tokenstatec                     U R                  US   5      nUR                  S5      nSU;   a  US   nO2SU;   a  U R                  US   U5      nOU(       a  U" S0 UD6$ U" 5       $ U(       a	  U" U40 UD6$ U" U5      $ )Ntypeattrsrawchildren )_get_methodgetrender_tokens)r   r#   r$   funcr'   texts         r    render_tokenHTMLRenderer.render_token   s    f.		'"E><D5 %%eJ&7?D}e}$v&&&:r"   urlc                 x   U R                   SL a  [        U5      $ UR                  5       nU R                   (       a4  UR                  [	        U R                   5      5      (       a  [        U5      $ UR                  U R
                  5      (       a!  UR                  U R                  5      (       d  g[        U5      $ )zXEnsure the given URL is safe. This method is used for rendering
links, images, and etc.
Tz#harmful-link)r   escape_textlower
startswithtupler   r   )r   r2   _urls      r    safe_urlHTMLRenderer.safe_url1   s     ((D0s##yy{((T__U4C`C`=a-b-bs##??411224??4KcKc;d;d"3r"   r/   c                 P    U R                   (       a  [        U5      $ [        U5      $ r   )r   r4   r   r   r/   s     r    r/   HTMLRenderer.text@   s    <<t$$4  r"   c                     SU-   S-   $ )Nz<em>z</em>r*   r<   s     r    emphasisHTMLRenderer.emphasisE   s    }w&&r"   c                     SU-   S-   $ )Nz<strong>z	</strong>r*   r<   s     r    strongHTMLRenderer.strongH   s    D ;..r"   titlec                 |    SU R                  U5      -   S-   nU(       a  US[        U5      -   S-   -  nUS-   U-   S-   $ )Nz	<a href="" title=">z</a>)r9   r   )r   r/   r2   rD   ss        r    linkHTMLRenderer.linkK   sI    $--,,s2k%00366A3w~&&r"   c                     U R                  U5      n[        [        U5      5      nSU-   S-   U-   S-   nU(       a  US[        U5      -   S-   -  nUS-   $ )Nz
<img src="z" alt="rF   rG   z />)r9   r4   r   r   )r   r/   r2   rD   srcaltrI   s          r    imageHTMLRenderer.imageQ   s]    mmC )D/*3*S036k%00366A5yr"   c                 $    S[        U5      -   S-   $ )Nz<code>z</code>)r4   r<   s     r    codespanHTMLRenderer.codespanY   s    +d++i77r"   c                     g)Nz<br />
r*   r   s    r    	linebreakHTMLRenderer.linebreak\       r"   c                     g)N
r*   rU   s    r    	softbreakHTMLRenderer.softbreak_   s    r"   c                 >    U R                   (       a  [        U5      $ U$ r   )r   r4   r   r   s     r    inline_htmlHTMLRenderer.inline_htmlb   s    <<t$$r"   c                     SU-   S-   $ )N<p></p>
r*   r<   s     r    	paragraphHTMLRenderer.paragraphg   s    t|h&&r"   levelr'   c                     S[        U5      -   nSU-   nUR                  S5      nU(       a  USU-   S-   -  nUS-   U-   S-   U-   S-   $ )	Nh<idz id="rF   rH   z</>
)strr,   )r   r/   rf   r'   tagr   _ids          r    headingHTMLRenderer.headingj   sZ    CJSyiioGcMC''DczD 4'#-55r"   c                     g)N r*   rU   s    r    
blank_lineHTMLRenderer.blank_liner   s    r"   c                     g)Nz<hr />
r*   rU   s    r    thematic_breakHTMLRenderer.thematic_breaku   rX   r"   c                     U$ r   r*   r<   s     r    
block_textHTMLRenderer.block_textx   s    r"   codeinfoc                     SnUb  [        UR                  5       5      nU(       a   UR                  S S5      S   nUSU-   S-   -  nUS-   [        U5      -   S-   $ )Nz
<pre><code   r   z class="language-rF   rH   z</code></pre>
)r   stripsplitr4   )r   r{   r|   r   langs        r    
block_codeHTMLRenderer.block_code{   sd    tzz|,D::dA&q)D'$.44DczK--0AAAr"   c                     SU-   S-   $ )Nz<blockquote>
z</blockquote>
r*   r<   s     r    block_quoteHTMLRenderer.block_quote   s    $&):::r"   c                 l    U R                   (       a  S[        UR                  5       5      -   S-   $ US-   $ )Nrb   rc   rZ   )r   r4   r   r^   s     r    
block_htmlHTMLRenderer.block_html   s.    <<;tzz|44x??d{r"   c                     SU-   S-   $ )Nz<div class="error"><pre>z</pre></div>
r*   r<   s     r    block_errorHTMLRenderer.block_error   s    )D03CCCr"   orderedc                     U(       a5  SnUR                  S5      nUb  US[        U5      -   S-   -  nUS-   U-   S-   $ SU-   S-   $ )	Nz<olstartz start="rF   rk   z</ol>
z<ul>
z</ul>
)r,   rl   )r   r/   r   r'   r   r   s         r    listHTMLRenderer.list   sY    DIIg&E 
SZ/#55%<$&22$**r"   c                     SU-   S-   $ )Nz<li>z</li>
r*   r<   s     r    	list_itemHTMLRenderer.list_item   s    }y((r"   )r   r   )TNr   ),__name__
__module____qualname____firstlineno____doc__bool__annotations__r   r   r   r   r   rl   r   r   r   r   r   r   r0   r9   r/   r?   rB   rJ   rO   rR   rV   r[   r_   rd   intro   rs   rv   ry   r   r   r   r   r   r   __static_attributes____classcell__)r   s   @r    r   r      sf   5M&,D(76?
#,4xc3h0 6%S/2 t Xd^ _c  
$sCx.   & C  C  ! ! !
'S 'S '/3 /3 /' '3 'x} ' '# C   8S 8S 83 3   
'c 'c '6C 6 6c 6c 6C  s s Bs B(3- B3 B; ; ;s s 
D D D+ +t +c +c +)c )c ) )r"   r   N)typingr   r   r   r   r   r   corer
   r   utilr   r4   r   r   r   r*   r"   r    <module>r      s"    @ @ + ( )R)< R)r"   