
    2yi                       U d dl mZ d dlZd dlmZmZ d dlZd dlZerd dlm	Z
 ded<   	 ej                  j                         j                  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y# e$ r d ZY 5w xY w)    )annotationsN)TYPE_CHECKINGCallable)ElementTreezCallable[[str], str]	_unescapec                    | S N )ss    X/var/www/html/content_weaver/venv/lib/python3.12/site-packages/mkdocs/utils/rendering.py<lambda>r      s    !     c                    t        j                  |       } t        |        t        |        t	        |        t        t        | |            S r	   )copydeepcopy_remove_anchorlink_remove_fnrefs_extract_alt_texts_strip_tags_render_inner_html)elmds     r   get_heading_textr      s;    	r	Br2r)"b122r   c                   | j                  d      x}dk7  rS| j                  d|      x}dk7  r<| d| | |dz   d z   } | j                  d      x}dk7  r| j                  d|      x}dk7  r<| j                  d      x}dk7  rS| j                  d|      x}dk7  r<| d| | |dz   d z   } | j                  d      x}dk7  r| j                  d|      x}dk7  r<d	j                  | j                               } | S )
zJStrip HTML tags and return plain text. Note: HTML entities are unaffected.z<!--z-->N   <>    )findjoinsplit)textstartends      r   r   r      s    IIf%%5"
,5%9P2P#UW1WFU|d379o- IIf%%5"
,5%9P2P#UW1W IIcN"5r
)diiU6K/KsPR.RFU|d379o- IIcN"5r
)diiU6K/KsPR.R 88DJJL!DKr   c                    |j                  |       }t        |      }|j                  d      dz   }|j                  d      }||| j	                         }|j
                  D ]  }|j                  |      } |S )Nr   r   r   )
serializerr   indexrindexstrippostprocessorsrun)r   r   r$   r%   r&   pps         r   r   r   ,   sv    ==DT?D JJsOaE
++c
Cc?  "D vvd|Kr   c                ~    t        |       dkD  r/| d   j                  dk(  r| d   j                  d      dk(  r| d= yyyy)z-Drop anchorlink from the element, if present.r   r   aclass
headerlinkN)lentaggetr   s    r   r   r   ;   sB    
2w{r"vzzS(RVZZ-@L-PrF .Q({r   c                P    | j                  d      D ]  }t        |t                y)z@Remove footnote references from the element, if any are present.z.//sup[@id]/..N)findall_replace_elements_with_text_predicate_for_fnrefsrootparents     r   r   r   A   s(    ,,/0 C#F,ABCr   c                f    | j                   dk(  r"| j                  dd      j                  d      ryy )Nsupid fnref)r4   r5   
startswithr6   s    r   r:   r:   G   s+    	vv266$+66w?r   c                P    | j                  d      D ]  }t        |t                y)zHFor images that have an `alt` attribute, replace them with this content.z.//img[@alt]/..N)r8   r9   _predicate_for_alt_textsr;   s     r   r   r   M   s(    ,,01 F#F,DEFr   c                L    | j                   dk(  r| j                  d      x}r|S y )Nimgalt)r4   r5   )r   rH   s     r   rE   rE   S   s'    	vv266%=0C0
r   c                    d}t        |       D ]Q  } ||      }|(||j                  xs dz   |z   }| j                  |       5|s8|j                  xs d|z   |_        d}S |r| j                  xs d|z   | _        yy)zYFor each child element, if matched, replace it with the text returned from the predicate.rA   N)reversedtailremover$   )r=   	predicate
carry_textchildnew_texts        r   r9   r9   Y   s     J&! U#!UZZ%526CJMM% ***j8EJJ {{(bJ6 r   )r   etree.Elementr   zmarkdown.Markdownreturnstr)r$   rS   rR   rS   )r   rQ   rR   None)r<   rQ   rR   rT   )r   rQ   rR   z
str | None)r=   rQ   rM   z%Callable[[etree.Element], str | None]rR   rT   )
__future__r   r   typingr   r   markdownmarkdown.treeprocessors	xml.etreer   etree__annotations__treeprocessorsUnescapeTreeprocessorunescaper   AttributeErrorr   r   r   r   r   r:   r   rE   r9   r
   r   r   <module>r`      s    "  *  .   ''==?HHI3CF77&K7	7S  Is   $A9 9BB