
    kh                         d dl mZ ddlmZ d dlZ G d de      Zd Z G d d	e      Z G d
 de      Z	d Z
 G d de      Zd Zd Zd Zd Zd Z e       Z edd      Zd Z G d de      Zd Zy)    )unicode_literals   )WriterNc                       e Zd ZddZy)_WriterOutputNc                 H    |t        |      }|| _        || _        || _        y N)	_constantstartgenerate_endanchor_position)selfr   endr   r   s        T/var/www/teggl/fontify/venv/lib/python3.12/site-packages/mammoth/writers/markdown.py__init__z_WriterOutput.__init__	   s(    $S>L
(.    )NNN__name__
__module____qualname__r    r   r   r   r      s    /r   r   c                       fd}|S )Nc                       S r	   r   values   r   getz_constant.<locals>.get   s    r   r   )r   r   s   ` r   r
   r
      s     Jr   c                       e Zd Zd Zd Zd Zy)_MarkdownStatec                 .    g | _         d | _        d| _        y )NF)_list_state_stack
list_statelist_item_has_closedr   s    r   r   z_MarkdownState.__init__   s    !#$)!r   c                 \    | j                   j                  | j                         || _        y r	   )r    appendr!   )r   r!   s     r   update_list_statez _MarkdownState.update_list_state   s!    %%doo6$r   c                 B    | j                   j                         | _        y r	   )r    popr!   r#   s    r   pop_list_statez_MarkdownState.pop_list_state#   s    00446r   N)r   r   r   r   r&   r)   r   r   r   r   r      s    *
%7r   r   c                       e Zd Zd Zy)_MarkdownListStatec                 .    || _         d| _        || _        y )Nr   )orderedcountindentation)r   r-   r/   s      r   r   z_MarkdownListState.__init__(   s    
&r   Nr   r   r   r   r+   r+   '   s    'r   r+   c                     t        | |       S r	   )_Wrapped)r   s    r   _symmetric_wrappedr2   .   s    Cr   c                       e Zd Zd Zd Zy)r1   c                      || _         || _        y r	   )_start_end)r   r   r   s      r   r   z_Wrapped.__init__3   s    	r   c                 B    t        | j                  | j                        S r	   )r   r5   r6   )r   
attributesmarkdown_states      r   __call__z_Wrapped.__call__7   s    T[[$))44r   N)r   r   r   r   r:   r   r   r   r1   r1   2   s    5r   r1   c                 p    | j                  dd      }|rt        ddj                  |      d      S t        S )Nhref [z]({0})before)r   r   r   format_default_output)r8   r9   r<   s      r   
_hyperlinkrC   ;   s;    >>&"%D&$
 	

 r   c                     | j                  dd      }| j                  dd      }|s|rt        dj                  ||      d      S t        S )Nsrcr=   altz![{0}]({1})r@   )r8   r9   rE   alt_texts       r   _imagerH   F   sG    
..
#C~~eR(H
h]11(C@"EEr   c                       fd}|S )Nc                     j                   d}dd}nd}dj                   j                  dz   }fd}j                  t        |             t	        ||      S )Nr=   
r   r   c                  (    j                           S r	   )r)   )end_textr9   s   r   r   z)_list.<locals>.call.<locals>.generate_endZ   s    ))+Or   r-   r/   )r   )r!   r/   r&   r+   r   )r8   r9   r   r/   r   rM   r-   s    `   @r   callz_list.<locals>.callP   sp    $$,EHKEH(33??!CK	 	(();#*
 	
 U>>r   r   )r-   rO   s   ` r   _listrP   O   s    ?* Kr   c                    d_         j                  xs t        dd      }|xj                  dz  c_        |j                  rdj                  |j                        }nd}fd}t        d|j                  z  |z   d	z   |
      S )NFr   rN   r   z{0}.-c                  .     j                   ryd _         y)Nr=   TrK   )r"   )r9   s   r   r   z _list_item.<locals>.generate_ends   s    ..26N/r   	 )r   r   )r"   r!   r+   r.   r-   rA   r   r/   )r8   r9   r!   bulletr   s    `   r   
_list_itemrW   h   s    */N'**^.@\].^Jz//0 j,,,6<! r   c            
         t        dd      t        dd      t        d      t        d      t        t        t	        d      t	        d      t
        d		} t        d
d      D ]&  }t        d|z  dz   d      | dj                  |      <   ( | S )Nr=   z

z  
__*T)r-   F)	pbrstrongemaimgolullir      #rU   zh{0})r1   r2   rC   rH   rP   rW   rangerA   )writerslevels     r   _init_writersri      s    b&!r6"$T* %D!E"
G q! L(0us1BF(Ke$%L Nr   r=   c                     t         S r	   )rB   )r8   r9   s     r   _default_writerrk      s    r   c                   @    e Zd Zd Zd Zd
dZd Zd
dZd Zd Z	d	 Z
y)MarkdownWriterc                 >    g | _         g | _        t               | _        y r	   )
_fragments_element_stackr   _markdown_stater#   s    r   r   zMarkdownWriter.__init__   s     -/r   c                 L    | j                   j                  t        |             y r	   )ro   r%   _escape_markdown)r   texts     r   rt   zMarkdownWriter.text   s    /56r   Nc                 `   |i }t        j                  |t              || j                        }| j                  j                  |j                         |j                  dk(  }|r| j                  |       | j                  j                  |j                         |s| j                  |       y y )Nr?   )_writersr   rk   rq   rp   r%   r   r   _write_anchorro   r   )r   namer8   outputanchor_before_starts        r   r   zMarkdownWriter.start   s    JdO4ZAUAUV""6#6#67$44@z*v||,"z* #r   c                 |    | j                   j                         } |       }| j                  j                  |       y r	   )rp   r(   ro   r%   )r   rx   r   ry   s       r   r   zMarkdownWriter.end   s/    !!%%'v&r   c                 J    | j                  ||       | j                  |       y r	   )r   r   )r   rx   r8   s      r   self_closingzMarkdownWriter.self_closing   s    

4$r   c                 :    | j                   j                  |       y r	   )ro   r%   )r   others     r   r%   zMarkdownWriter.append   s    u%r   c                 8    dj                  | j                        S )Nr=   )joinro   r#   s    r   	as_stringzMarkdownWriter.as_string   s    wwt''r   c                     |j                  d      }|r+| j                  j                  dj                  |             y y )Nidz<a id="{0}"></a>)r   ro   r%   rA   )r   r8   html_ids      r   rw   zMarkdownWriter._write_anchor   s6    ..&OO""#5#<#<W#EF r   r	   )r   r   r   r   rt   r   r   r}   r%   r   rw   r   r   r   rm   rm      s+    0
7+$'
&(Gr   rm   c           	      Z    t        j                  ddt        j                  dd|             S )Nz([\`\*_\{\}\[\]\(\)\#\+\-\.\!])z\\\1z\\z\\\\)resubr   s    r   rs   rs      s$    664grvvfjZ_?`aar   )
__future__r   abcr   r   objectr   r
   r   r+   r2   r1   rC   rH   rP   rW   ri   rv   rB   rk   rm   rs   r   r   r   <module>r      s    '  	/F /7V 7' '5v 520& ?B'-GV -G`br   