o
    ^i                     @   sd   d dl mZ d dlmZmZmZmZmZ ddlm	Z	m
Z
 ddlmZ ddlmZ G dd	 d	e	Zd
S )    indent)AnyDictIterableListcast   )BaseRenderer
BlockState)	strip_end   render_listc                   @   s  e Zd ZdZdZddddddd	Zd
Zdeee	e
f  dedee	 fddZdeee	e
f  dede	fddZdedee	 fddZdee	e
f dede	fddZdee	e
f dede	fddZdee	e
f dede	fddZdee	e
f dede	fddZdee	e
f dede	fddZdee	e
f dede	fdd Zdee	e
f dede	fd!d"Zdee	e
f dede	fd#d$Zdee	e
f dede	fd%d&Zdee	e
f dede	fd'd(Zdee	e
f dede	fd)d*Zdee	e
f dede	fd+d,Zdee	e
f dede	fd-d.Zdee	e
f dede	fd/d0Zdee	e
f dede	fd1d2Zdee	e
f dede	fd3d4Zdee	e
f dede	fd5d6Zdee	e
f dede	fd7d8Z dee	e
f dede	fd9d:Z!d;S )<RSTRendererz+A renderer for converting Markdown to ReST.rst=-~^"')r   r	               zimg-tokensstatereturnc                 c   s<    d }|D ]}|d dkrq||d< |}|  ||V  qd S )Ntype
blank_lineprev)render_token)selfr   r   r!   tok r%   P/home/ubuntu/hpml_nyu/venv/lib/python3.10/site-packages/mistune/renderers/rst.pyiter_tokens   s   zRSTRenderer.iter_tokensc                 C   s6   g |j d< | ||}|d| |d 7 }t|S )Ninline_images


)envrender_tokensjoinrender_referrencesr   )r#   r   r   outr%   r%   r&   __call__#   s   
zRSTRenderer.__call__c                 c   sb    |j d }t|D ]$\}}|d }| ||}| jt| }d| d |d  d | V  q
d S )Nr(   attrsz.. |z
| image:: url

   :alt: )r+   	enumeraterender_childrenINLINE_IMAGE_PREFIXstr)r#   r   imagesindextokenr1   altidentr%   r%   r&   r.   *   s   
 zRSTRenderer.render_referrencesr:   c                 C   s   |d }|  ||S )Nchildren)r,   )r#   r:   r   r=   r%   r%   r&   r5   2   s   zRSTRenderer.render_childrenc                 C   s   t t|d }|ddS )Nraw|z\|)r   r7   replace)r#   r:   r   textr%   r%   r&   rA   6   s   zRSTRenderer.textc                 C      d|  || d S )N*r5   r#   r:   r   r%   r%   r&   emphasis:      zRSTRenderer.emphasisc                 C   rB   )Nz**rD   rE   r%   r%   r&   strong=   rG   zRSTRenderer.strongc                 C   s2   |d }|  ||}d| d tt|d  d S )Nr1   `z <r2   z>`__)r5   r   r7   )r#   r:   r   r1   rA   r%   r%   r&   link@   s   zRSTRenderer.linkc                 C   s2   |j d }t|}|| d| j t| d S )Nr(   r?   )r+   lenappendr6   r7   )r#   r:   r   refsr9   r%   r%   r&   imageE   s   

zRSTRenderer.imagec                 C   s   dt t|d  d S )Nz``r>   )r   r7   rE   r%   r%   r&   codespanK   s   zRSTRenderer.codespanc                 C      dS )N<linebreak>r%   rE   r%   r%   r&   	linebreakN      zRSTRenderer.linebreakc                 C   rP   )N r%   rE   r%   r%   r&   	softbreakQ   rS   zRSTRenderer.softbreakc                 C   rP   N r%   rE   r%   r%   r&   inline_htmlT   s   zRSTRenderer.inline_htmlc           
      C   s   |d }t |dkrF|d d dkrF|d }|d }tt|d}| ||}dtt|d	  }|r9|d
| 7 }|dt|d 7 }|d S | ||}|d}	t |	dkraddd |	D }|d S )Nr=   r   r   r   rN   r1   titlez.. figure:: r2   r3   r)      rQ   r*   c                 s   s    | ]}d | V  qdS )z| Nr%   ).0liner%   r%   r&   	<genexpr>g   s    z(RSTRenderer.paragraph.<locals>.<genexpr>)	rK   r   r7   getr5   r   r,   splitr-   )
r#   r:   r   r=   rN   r1   rY   r;   rA   linesr%   r%   r&   	paragraphX   s    
zRSTRenderer.paragraphc                 C   s:   |d }|  ||}| j|d  }|d |t|  d S )Nr1   levelr*   r)   )r5   HEADING_MARKERSrK   )r#   r:   r   r1   rA   markerr%   r%   r&   headingj   s   zRSTRenderer.headingc                 C   rP   )Nz--------------

r%   rE   r%   r%   r&   thematic_breakp   rS   zRSTRenderer.thematic_breakc                 C   s   |  ||d S )Nr*   rD   rE   r%   r%   r&   
block_texts   s   zRSTRenderer.block_textc                 C   s`   | di }tt| d}ttt|d d}|r*| d }d| d | d S d	| d S )
Nr1   infor>   rZ   r   z
.. code:: r)   r*   z::

)r^   r   r7   r   r_   )r#   r:   r   r1   rh   codelangr%   r%   r&   
block_codev   s   zRSTRenderer.block_codec                 C   s:   t | ||d}|d }d}|r|d |vrd| }|S )NrZ   r!   )ra   rf   rR   re   r   z..

)r   r5   )r#   r:   r   rA   r!   ignore_blocksr%   r%   r&   block_quote   s   zRSTRenderer.block_quotec                 C   s   |d }dt |d d S )Nr>   z.. raw:: html

rZ   r)   r   )r#   r:   r   r>   r%   r%   r&   
block_html   s   zRSTRenderer.block_htmlc                 C   rP   rV   r%   rE   r%   r%   r&   block_error   rS   zRSTRenderer.block_errorc                 C   s   t | ||S )Nr   rE   r%   r%   r&   list   s   zRSTRenderer.listN)"__name__
__module____qualname____doc__NAMErc   r6   r   r   r7   r   r   r'   r0   r.   r5   rA   rF   rH   rJ   rN   rO   rR   rU   rX   ra   re   rf   rg   rk   rm   rn   ro   rp   r%   r%   r%   r&   r   	   sB    &"

"r   N)textwrapr   typingr   r   r   r   r   corer
   r   utilr   _listr   r   r%   r%   r%   r&   <module>   s    