
    ͆h                    ,   % S SK Jr  S SKrS SKJrJr  S SKrS SKr\(       a  S SKJ	r
  S\S'    \R                  R                  5       R                  rSS jrSS	 jrSS
 jrSS jrSS jrSS jrSS jrSS jr      SS jrg! \ a    S r N?f = f)    )annotationsN)TYPE_CHECKINGCallable)ElementTreezCallable[[str], str]	_unescapec                    U $ N )ss    N/opt/services/DDDS/venv/lib/python3.13/site-packages/mkdocs/utils/rendering.py<lambda>r      s    !    c                    [         R                  " U 5      n [        U 5        [        U 5        [	        U 5        [        [        X5      5      $ r	   )copydeepcopy_remove_anchorlink_remove_fnrefs_extract_alt_texts_strip_tags_render_inner_html)elmds     r   get_heading_textr      s9    	r	Br2r)"122r   c                   U R                  S5      =nS:w  aV  U R                  SU5      =nS:w  a>  U SU XS-   S -   n U R                  S5      =nS:w  a  U R                  SU5      =nS:w  a  M>  U R                  S5      =nS:w  aV  U R                  SU5      =nS:w  a>  U SU XS-   S -   n U R                  S5      =nS:w  a  U R                  SU5      =nS:w  a  M>  S	R                  U R                  5       5      n U $ )
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|d79o- IIf%%5"
,5%9P2P#UW1W IIcN"5r
)diiU6K/KsPR.RFU|d79o- IIcN"5r
)diiU6K/KsPR.R 88DJJL!DKr   c                    UR                  U 5      n[        U5      nUR                  S5      S-   nUR                  S5      nX#U R	                  5       nUR
                   H  nUR                  U5      nM     U$ )Nr   r   r   )
serializerr   indexrindexstrippostprocessorsrun)r   r   r$   r%   r&   pps         r   r   r   ,   so    ==DT?D JJsOaE
++c
Cc?  "Dvvd|  Kr   c                    [        U 5      S:  a1  U S   R                  S:X  a  U S   R                  S5      S:X  a  U S	 gggg)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                T    U R                  S5       H  n[        U[        5        M     g)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#F,AB 1r   c                r    U R                   S:X  a'  U R                  SS5      R                  S5      (       a  gg )Nsupid fnref)r4   r5   
startswithr6   s    r   r:   r:   G   s.    	vv266$+66w??r   c                T    U R                  S5       H  n[        U[        5        M     g)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,DE 2r   c                X    U R                   S:X  a  U R                  S5      =n(       a  U$ g )Nimgalt)r4   r5   )r   rH   s     r   rE   rE   S   s'    	vv266%=0C0
r   c                6   Sn[        U 5       Hc  nU" U5      nUb-  XCR                  =(       d    S-   U-   nU R                  U5        M;  U(       d  MD  UR                  =(       d    SU-   Ul        SnMe     U(       a  U R                  =(       d    SU-   U l        gg)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#!ZZ%526CJMM% Z***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   $B 	BB