
    Lc                     j    d dl mZmZ  G d de          Z G d de          Z G d de          ZdS )	   )escapeescape_htmlc                   *    e Zd ZdZd Zd Zd Zd ZdS )BaseRendererbasec                     i | _         d S N_methodsselfs    1lib/python3.11/site-packages/mistune/renderers.py__init__zBaseRenderer.__init__   s        c                     || j         |<   d S r	   r
   r   namemethods      r   registerzBaseRenderer.register
   s    $dr   c                     	 t                               | |          S # t          $ rC | j                            |          }|s"t          d                    |                    |cY S w xY w)NzNo renderer "{!r}")object__getattribute__AttributeErrorr   getformatr   s      r   _get_methodzBaseRenderer._get_method   s|    	**4666 	 	 	]&&t,,F H$%9%@%@%F%FGGGMMM		s    A
A*)A*c                      t          d          )Nz4The renderer needs to implement the finalize method.)NotImplementedErrorr   datas     r   finalizezBaseRenderer.finalize   s    !BD D 	Dr   N)__name__
__module____qualname__NAMEr   r   r   r!    r   r   r   r      sZ        D  % % %  D D D D Dr   r   c                        e Zd ZdZd ZddZddZd Zd Zd	 Z	d
 Z
d Zd ZddZd ZddZd Zd Z fdZd Z xZS )AstRendererastc                     d|dS )Ntexttyper+   r&   r   r+   s     r   r+   zAstRenderer.text   s    ---r   Nc                 F    t          |t                    rd|dg}d|||dS )Nr+   r,   link)r-   r0   childrentitle)
isinstancestr)r   r0   r1   r2   s       r   r0   zAstRenderer.link!   s?    h$$ 	<!'::;H 	
 
 	
r    c                     d|||dS )Nimage)r-   srcaltr2   r&   )r   r8   r9   r2   s       r   r7   zAstRenderer.image+   s    C%HHHr   c                     d|dS )Ncodespanr,   r&   r.   s     r   r;   zAstRenderer.codespan.   s    "D111r   c                 
    ddiS )Nr-   	linebreakr&   r   s    r   r=   zAstRenderer.linebreak1   s    $$r   c                     d|dS )Ninline_htmlr,   r&   r   htmls     r   r?   zAstRenderer.inline_html4   s    %t444r   c                     d||dS )Nheadingr-   r1   levelr&   r   r1   rE   s      r   rC   zAstRenderer.heading7   s    !x%HHHr   c                 
    ddiS )Nr-   newliner&   r   s    r   rH   zAstRenderer.newline:   s    	""r   c                 
    ddiS )Nr-   thematic_breakr&   r   s    r   rJ   zAstRenderer.thematic_break=   s    ())r   c                     d||dS )N
block_code)r-   r+   infor&   )r   r1   rM   s      r   rL   zAstRenderer.block_code@   s     
 
 	
r   c                     d|dS )N
block_htmlr,   r&   )r   r1   s     r   rO   zAstRenderer.block_htmlG   s    $h777r   c                 "    d|||d}|||d<   |S )Nlist)r-   r1   orderedrE   startr&   )r   r1   rR   rE   rS   tokens         r   rQ   zAstRenderer.listJ   s2     	
 
  	#"E'Nr   c                     d||dS )N	list_itemrD   r&   rF   s      r   rV   zAstRenderer.list_itemU   s    #EJJJr   c                     fd}|S )Nc                     | dS )N)r-   r1   r&   )r1   r   s    r   __astz1AstRenderer._create_default_method.<locals>.__astY   s     h777r   r&   )r   r   _AstRenderer__asts    ` r   _create_default_methodz"AstRenderer._create_default_methodX   s!    	8 	8 	8 	8 	8r   c                     	 t          t          |                               |          S # t          $ r |                     |          cY S w xY wr	   )superr(   r   r   r[   )r   r   	__class__s     r   r   zAstRenderer._get_method]   s[    	5d++77=== 	5 	5 	5..t44444	5s   '+ AAc                      t          |          S r	   )rQ   r   s     r   r!   zAstRenderer.finalizec   s    Dzzr   NNr5   Nr	   )r"   r#   r$   r%   r+   r0   r7   r;   r=   r?   rC   rH   rJ   rL   rO   rQ   rV   r[   r   r!   __classcell__r^   s   @r   r(   r(      s<       D. . .
 
 
 
I I I I2 2 2% % %5 5 5I I I# # #* * *
 
 
 
8 8 8	 	 	 	K K K  
5 5 5 5 5      r   r(   c                        e Zd ZdZh dZd fd	Zd Zd ZddZdd
Z	d Z
d Zd Zd Zd Zd Zd Zd Zd Zd ZddZd Zd Zd ZddZd Zd Z xZS ) HTMLRendererrA   >   data:	vbscript:javascript:TNc                 r    t          t          |                                            || _        || _        d S r	   )r]   re   r   _escape_allow_harmful_protocols)r   r   allow_harmful_protocolsr^   s      r   r   zHTMLRenderer.__init__o   s4    lD!!**,,,(?%%%r   c                     | j         | j        }n*| j         du rd }nt          | j                   }| j        |z
  }|r0|D ]-}|                                                    |          rd} n.|S )NTz#harmful-link)rk   HARMFUL_PROTOCOLSsetlower
startswith)r   urlschemesallowedss        r   	_safe_urlzHTMLRenderer._safe_urlt   s    ( 	7,GG*d2 	7GG$788G,w6G 	  99;;))!,, )CE 
r   c                 L    | j         rt          |          S t          |          S r	   )rj   r   r   r.   s     r   r+   zHTMLRenderer.text   s&    < 	 $<<4   r   c                     ||}d|                      |          z   dz   }|r|dt          |          z   dz   z  }|dz   |p|z   dz   S )Nz	<a href="" title=">z</a>rv   r   )r   r0   r+   r2   ru   s        r   r0   zHTMLRenderer.link   sf     	D$.....4 	7k%000366A3w$,$'&00r   r5   c                     |                      |          }t          |          }d|z   dz   |z   dz   }|r|dt          |          z   dz   z  }|dz   S )Nz
<img src="z" alt="ry   rz   z />r|   )r   r8   r9   r2   ru   s        r   r7   zHTMLRenderer.image   sg    nnS!!#3*S036 	7k%000366A5yr   c                     d|z   dz   S )Nz<em>z</em>r&   r.   s     r   emphasiszHTMLRenderer.emphasis   s    }w&&r   c                     d|z   dz   S )Nz<strong>z	</strong>r&   r.   s     r   strongzHTMLRenderer.strong   s    D ;..r   c                 ,    dt          |          z   dz   S )Nz<code>z</code>)r   r.   s     r   r;   zHTMLRenderer.codespan   s    &,,&22r   c                     dS )Nz<br />
r&   r   s    r   r=   zHTMLRenderer.linebreak       zr   c                 2    | j         rt          |          S |S r	   rj   r   r@   s     r   r?   zHTMLRenderer.inline_html   s    < 	 $<<r   c                     d|z   dz   S )N<p></p>
r&   r.   s     r   	paragraphzHTMLRenderer.paragraph   s    t|h&&r   c                 N    dt          |          z   }d|z   dz   |z   dz   |z   dz   S )Nh<r{   z</>
r4   )r   r+   rE   tags       r   rC   zHTMLRenderer.heading   s4    CJJSy3%,s2U::r   c                     dS Nr5   r&   r   s    r   rH   zHTMLRenderer.newline   s    rr   c                     dS )Nz<hr />
r&   r   s    r   rJ   zHTMLRenderer.thematic_break   r   r   c                     |S r	   r&   r.   s     r   
block_textzHTMLRenderer.block_text   s    r   c                     d}||                                 }|r6|                    d d          d         }t          |          }|d|z   dz   z  }|dz   t          |          z   dz   S )Nz
<pre><coder       z class="language-ry   r{   z</code></pre>
)stripsplitr   r   )r   coderM   rA   langs        r   rL   zHTMLRenderer.block_code   sy     	 ::<<D 	5::dA&&q)Dt$$D'$.44DczF4LL(+<<<r   c                     d|z   dz   S )Nz<blockquote>
z</blockquote>
r&   r.   s     r   block_quotezHTMLRenderer.block_quote   s    $&):::r   c                 D    | j         s|dz   S dt          |          z   dz   S )N
r   r   r   r@   s     r   rO   zHTMLRenderer.block_html   s,    | 	$;vd||#h..r   c                     d|z   dz   S )Nz<div class="error">z</div>
r&   r@   s     r   block_errorzHTMLRenderer.block_error   s    $t+j88r   c                 d    |r'd}||dt          |          z   dz   z  }|dz   |z   dz   S d|z   dz   S )Nz<olz start="ry   r   z</ol>
z<ul>
z</ul>
r   )r   r+   rR   rE   rS   rA   s         r   rQ   zHTMLRenderer.list   sT     	3D 6
SZZ/#55%<$&22$**r   c                     d|z   dz   S )Nz<li>z</li>
r&   )r   r+   rE   s      r   rV   zHTMLRenderer.list_item   s    }y((r   c                 ,    d                     |          S r   )joinr   s     r   r!   zHTMLRenderer.finalize   s    wwt}}r   )TNr`   ra   r	   )r"   r#   r$   r%   rn   r   rv   r+   r0   r7   r   r   r;   r=   r?   r   rC   rH   rJ   r   rL   r   rO   r   rQ   rV   r!   rb   rc   s   @r   re   re   g   s       D  @ @ @ @ @ @
   ! ! !
1 1 1 1   ' ' '/ / /3 3 3    
' ' '; ; ;      = = = =; ; ;/ / /
9 9 9+ + + +) ) )      r   re   N)utilr   r   r   r   r(   re   r&   r   r   <module>r      s    % % % % % % % %D D D D D6 D D D.I I I I I, I I IXu u u u u< u u u u ur   