o
    i@                     @   s   d dl Z ddlmZ ddlmZ dgZde d Ze de d	 Zd
d Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    N   )
LINK_LABEL)unikeyplugin_footnotesz\[\^(z)\]z( {0,3})\[\^(z0)\]:[ \t]*([^\n]*\n+(?:\1 {1,3}(?! )[^\n]*\n+)*)c                 C   sf   t |d}|d}|r||vrd|dfS |dd}|d7 }||d< |d | d||fS )N   def_footnotestextr   footnote_index	footnotesfootnote_ref)r   groupgetappend)inlinemstatekeyr   index r   T/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/mistune/plugins/footnotes.pyparse_inline_footnote   s   

r   c                 C   s4   t |d}||d vr|d|d |< d S d S )Nr   r      )r   r   )blockr   r   r   r   r   r   parse_def_footnote$   s   r   c                 C   s   |d }|| }|  }d|vrd|dg}n=| }|dd  D ]}	|	r' nq!t|	t|	  }
tjdt|
 d tjd}|d	|}| 	||}t
|tsT|g}d
|||fdS )Nr   
	paragraph)typer   r   z^ {z,})flags footnote_item)r   childrenparams)strip
splitlineslenlstriprecompilestrMsub
parse_text
isinstancelist)r   kir   r   r   stripped_textr    linessecond_linespacespatternr   r   r   parse_footnote_item*   s(   
r5   c                    sP    d}|s	|S  fddt|D }d|dg} j| j}|| S )Nr
   c                    s$   g | ]\}}t  j||d  qS )r   )r5   r   ).0r/   r.   mdr   r   r   
<listcomp>J   s    z%md_footnotes_hook.<locals>.<listcomp>)r   r    )r   	enumerater   renderr   )r8   resultr   r
   r    tokensoutputr   r7   r   md_footnotes_hookE   s   
r?   c                 C   s   d| |dS )Nr   )r   r   r   r   )r   r   r   r   r   render_ast_footnote_refS   s   r@   c                 C   s   d| ||dS )Nr   )r   r    r   r   r   )r    r   r   r   r   r   render_ast_footnote_itemW   s
   rA   c                 C   s,   t |}d| d }|d | d | d S )Nz$<sup class="footnote-ref" id="fnref-">z<a href="#fn-z
</a></sup>)r(   )r   r   r/   htmlr   r   r   render_html_footnote_ref`   s   rD   c                 C   s   d|  d S )Nz!<section class="footnotes">
<ol>
z</ol>
</section>
r   )r   r   r   r   render_html_footnotesf   s   rE   c                 C   sX   t |}d| d }|  } | dr| d d | d } n| | } d| d |  d S )Nz<a href="#fnref-z" class="footnote">&#8617;</a>z</p>z<li id="fn-rB   z</li>
)r(   rstripendswith)r   r   r   r/   backr   r   r   render_html_footnote_itemn   s   
rJ   c                 C   s   | j dtt | j jd}|dkr| j j|d n| j jd | jdt	t
 | jjd}|dkr?| jj|d n| jjd | jjdkrb| jdt | jdt | jd	t n| jjd
krv| jdt | jdt | jt d S )Nfootnotestd_linkdef_footnotedef_linkrC   r   r   r
   ast)r   register_ruleINLINE_FOOTNOTE_PATTERNr   rulesr   insertr   r   DEF_FOOTNOTEr   rendererNAMEregisterrD   rJ   rE   r@   rA   after_render_hooksr?   )r8   r   r   r   r   r   z   s,   )r&   inline_parserr   utilr   __all__rR   r'   rU   r   r   r5   r?   r@   rA   rD   rE   rJ   r   r   r   r   r   <module>   s$    
	