o
    tf                     @   sX   d dl mZmZ d dlmZ ddlmZ ddlmZm	Z	 ddl
mZ G dd	 d	eZd
S )    )DictAnyindent   render_list   )BaseRenderer
BlockState)	strip_endc                   @   sx  e Zd ZdZdZddddddd	Zd
Zdd ZdefddZ	defddZ
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.d/Zdeeef dedefd0d1Zdeeef dedefd2d3Zdeeef dedefd4d5Zdeeef dedefd6d7Zdeeef dedefd8d9Z d:S );RSTRendererz+A renderer for converting Markdown to ReST.rst=-~^"')r   r	               zimg-c                 c   s<    d }|D ]}|d dkrq||d< |}|  ||V  qd S )Ntype
blank_lineprev)Zrender_token)selftokensstater   tok r    ^/var/www/html/software/conda/envs/catlas/lib/python3.10/site-packages/mistune/renderers/rst.pyiter_tokens   s   zRSTRenderer.iter_tokensr   c                 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   Zimagesindextokenr,   altidentr    r    r!   r)   (   s   
 zRSTRenderer.render_referrencesc                 C   s   |d }|  ||S )Nchildren)r'   )r   r4   r   r7   r    r    r!   r0   0      zRSTRenderer.render_childrenr4   returnc                 C   s   |d }| ddS )Nraw|z\|)replace)r   r4   r   textr    r    r!   r=   4   r8   zRSTRenderer.textc                 C      d|  || d S )N*r0   r   r4   r   r    r    r!   emphasis8      zRSTRenderer.emphasisc                 C   r>   )Nz**r@   rA   r    r    r!   strong;   rC   zRSTRenderer.strongc                 C   s,   |d }|  ||}d| d |d  d S )Nr,   `z <r-   z>`__r@   )r   r4   r   r,   r=   r    r    r!   link>   s   zRSTRenderer.linkc                 C   s2   |j d }t|}|| d| j t| d S )Nr#   r;   )r&   lenappendr1   r2   )r   r4   r   refsr3   r    r    r!   imageC   s   

zRSTRenderer.imagec                 C   s   d|d  d S )Nz``r:   r    rA   r    r    r!   codespanI      zRSTRenderer.codespanc                 C      dS )N<linebreak>r    rA   r    r    r!   	linebreakL      zRSTRenderer.linebreakc                 C   rM   )N r    rA   r    r    r!   	softbreakO   rP   zRSTRenderer.softbreakc                 C   rM   N r    rA   r    r    r!   inline_htmlR   s   zRSTRenderer.inline_htmlc           
      C   s   |d }t |dkr@|d d dkr@|d }|d }|d}| ||}d|d	  }|r3|d
| 7 }|dt|d 7 }|d S | ||}|d}	t |	dkr[ddd |	D }|d S )Nr7   r   r   r   rJ   r,   titlez.. figure:: r-   r.   r$      rN   r%   c                 s   s    | ]}d | V  qdS )z| Nr    ).0liner    r    r!   	<genexpr>e   s    z(RSTRenderer.paragraph.<locals>.<genexpr>)rG   getr0   r   r'   splitr(   )
r   r4   r   r7   rJ   r,   rV   r5   r=   linesr    r    r!   	paragraphV   s    

zRSTRenderer.paragraphc                 C   s:   |d }|  ||}| j|d  }|d |t|  d S )Nr,   levelr%   r$   )r0   HEADING_MARKERSrG   )r   r4   r   r,   r=   markerr    r    r!   headingh   s   zRSTRenderer.headingc                 C   rM   )Nz--------------

r    rA   r    r    r!   thematic_breakn   rP   zRSTRenderer.thematic_breakc                 C   s   |  ||d S )Nr%   r@   rA   r    r    r!   
block_textq   rL   zRSTRenderer.block_textc                 C   sT   | di }| d}t|d d}|r$| d }d| d | d S d	| d S )
Nr,   infor:   rW   r   z
.. code:: r$   r%   z::

)r[   r   r\   )r   r4   r   r,   re   codelangr    r    r!   
block_codet   s   
zRSTRenderer.block_codec                 C   s:   t | ||d}|d }d}|r|d |vrd| }|S )NrW   r   )r^   rc   rO   rb   r   z..

)r   r0   )r   r4   r   r=   r   Zignore_blocksr    r    r!   block_quote~   s   zRSTRenderer.block_quotec                 C   s   |d }dt |d d S )Nr:   z.. raw:: html

rW   r$   r   )r   r4   r   r:   r    r    r!   
block_html   s   zRSTRenderer.block_htmlc                 C   rM   rS   r    rA   r    r    r!   block_error   rP   zRSTRenderer.block_errorc                 C   s   t | ||S )Nr   rA   r    r    r!   list   s   zRSTRenderer.listN)!__name__
__module____qualname____doc__NAMEr`   r1   r"   r   r+   r)   r0   r   r2   r   r=   rB   rD   rF   rJ   rK   rO   rR   rU   r^   rb   rc   rd   rh   ri   rj   rk   rl   r    r    r    r!   r      sB    

"r   N)typingr   r   textwrapr   Z_listr   corer
   r   utilr   r   r    r    r    r!   <module>   s    