
    %j                        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dS )    )unicode_literals   )WriterNc                       e Zd ZddZdS )_WriterOutputNc                 R    |t          |          }|| _        || _        || _        d S N)	_constantstartgenerate_endanchor_position)selfr   endr   r   s        `/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/mammoth/writers/markdown.py__init__z_WriterOutput.__init__	   s0    $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dS )_MarkdownStatec                 0    g | _         d | _        d| _        d S )NF)_list_state_stack
list_statelist_item_has_closedr   s    r   r   z_MarkdownState.__init__   s    !#$)!!!r   c                 R    | j                             | j                   || _        d S r	   )r    appendr!   )r   r!   s     r   update_list_statez _MarkdownState.update_list_state   s&    %%do666$r   c                 B    | j                                         | _        d S r	   )r    popr!   r#   s    r   pop_list_statez_MarkdownState.pop_list_state#   s    04466r   N)r   r   r   r   r&   r)   r   r   r   r   r      sA        * * *
% % %7 7 7 7 7r   r   c                       e Zd Zd ZdS )_MarkdownListStatec                 0    || _         d| _        || _        d S )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dS )r1   c                 "    || _         || _        d S r	   )_start_end)r   r   r   s      r   r   z_Wrapped.__init__3   s    			r   c                 6    t          | j        | j                  S r	   )r   r5   r6   )r   
attributesmarkdown_states      r   __call__z_Wrapped.__call__7   s    T[$)444r   N)r   r   r   r   r:   r   r   r   r1   r1   2   s2          5 5 5 5 5r   r1   c                     |                      dd          }|r%t          dd                    |          d          S t          S )Nhref [z]({0})before)r   r   r   format_default_output)r8   r9   r<   s      r   
_hyperlinkrC   ;   sP    >>&"%%D &&$
 
 
 	

 r   c                     |                      dd          }|                      dd          }|s|r$t          d                    ||          d          S t          S )Nsrcr=   altz![{0}]({1})r@   )r8   r9   rE   alt_texts       r   _imagerH   F   s]    
..
#
#C~~eR((H
 h ]11(C@@"EEEr   c                       fd}|S )Nc                     j         d}dd}nd}dj         j        dz   }fd}                    t          |                     t	          ||          S )Nr=   
r   r   c                  0                                       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   s    $,EHKKEH(3?!CK	 	 	 	 	 	 	(();#*
 *
 *
 	 	 	
 U>>>>r   r   )r-   rO   s   ` r   _listrP   O   s#    ? ? ? ? ?* Kr   c                     d_         j        pt          dd          }|xj        dz  c_        |j        rd                    |j                  }nd}fd}t          d|j        z  |z   d	z   |
          S )NFr   rN   r   z{0}.-c                  (     j         rdS d _         dS )Nr=   TrK   )r"   )r9   s   r   r   z _list_item.<locals>.generate_ends   s     . 	226N/4r   	 )r   r   )r"   r!   r+   r.   r-   rA   r   r/   )r8   r9   r!   bulletr   s    `   r   
_list_itemrW   h   s    */N'*^.@\].^.^.^J z/0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                    |          <   /| 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 L(0us1BF(K(Ke$$%%Nr   r=   c                     t           S r	   )rB   )r8   r9   s     r   _default_writerrk      s    r   c                   B    e Zd Zd Zd Zd
dZd Zd
dZd Zd Z	d	 Z
dS )MarkdownWriterc                 H    g | _         g | _        t                      | _        d S r	   )
_fragments_element_stackr   _markdown_stater#   s    r   r   zMarkdownWriter.__init__   s%     -//r   c                 T    | j                             t          |                     d S r	   )ro   r%   _escape_markdown)r   texts     r   rt   zMarkdownWriter.text   s'    /5566666r   Nc                 \   |i }t                              |t                    || j                  }| j                            |j                   |j        dk    }|r|                     |           | j	                            |j
                   |s|                     |           d S d S )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44ZAUVV""6#6777$4@ 	+z***v|,,," 	+z*****	+ 	+r   c                     | j                                         } |            }| j                            |           d S r	   )rp   r(   ro   r%   )r   rx   r   ry   s       r   r   zMarkdownWriter.end   s=    !%%''v&&&&&r   c                 \    |                      ||           |                     |           d S r	   )r   r   )r   rx   r8   s      r   self_closingzMarkdownWriter.self_closing   s)    

4$$$r   c                 :    | j                             |           d S r	   )ro   r%   )r   others     r   r%   zMarkdownWriter.append   s    u%%%%%r   c                 6    d                     | j                  S )Nr=   )joinro   r#   s    r   	as_stringzMarkdownWriter.as_string   s    wwt'''r   c                     |                     d          }|r/| j                            d                    |                     d S d S )Nidz<a id="{0}"></a>)r   ro   r%   rA   )r   r8   html_ids      r   rw   zMarkdownWriter._write_anchor   sS    ..&& 	GO""#5#<#<W#E#EFFFFF	G 	Gr   r	   )r   r   r   r   rt   r   r   r}   r%   r   rw   r   r   r   rm   rm      s        0 0 0
7 7 7+ + + +$' ' '
   & & &( ( (G G G G Gr   rm   c           	      V    t          j        ddt          j        dd|                     S )Nz([\`\*_\{\}\[\]\(\)\#\+\-\.\!])z\\\1z\\z\\\\)resubr   s    r   rs   rs      s&    64grvfjZ_?`?`a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 / / /  7 7 7 7 7V 7 7 7' ' ' ' ' ' ' '  5 5 5 5 5v 5 5 5      2  0  & =??-B''  -G -G -G -G -GV -G -G -G`b b b b br   