
    $g                        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        Zn# e$ r d ZY nw xY w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 )$    )annotationsN)TYPE_CHECKINGCallable)ElementTreezCallable[[str], str]	_unescapec                    | S N )ss    V/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/mkdocs/utils/rendering.py<lambda>r      s    !     eletree.Elementmdmarkdown.Markdownreturnstrc                    t          j        |           } t          |            t          |            t	          |            t          t          | |                    S r	   )copydeepcopy_remove_anchorlink_remove_fnrefs_extract_alt_texts_strip_tags_render_inner_html)r   r   s     r   get_heading_textr      sT    	r		Br2r)"b11222r   textc                l   |                      d          x}dk    rk|                      d|          x}dk    rO| d|         | |dz   d         z   } |                      d          x}dk    r|                      d|          x}dk    O|                      d          x}dk    rk|                      d|          x}dk    rO| d|         | |dz   d         z   } |                      d          x}dk    r|                      d|          x}dk    Od	                    |                                           } | S )
zJStrip HTML tags and return plain text. Note: HTML entities are unaffected.z<!--z-->N   <>    )findjoinsplit)r   startends      r   r   r      sJ    IIf%%%5"
,
,5%9P9P2P#UW1W1WFUF|d3799o- IIf%%%5"
,
,5%9P9P2P#UW1W1W IIcNN"5r
)
)diiU6K6K/KsPR.R.RFUF|d3799o- IIcNN"5r
)
)diiU6K6K/KsPR.R.R 88DJJLL!!DKr   c                   |                     |           }t          |          }|                    d          dz   }|                    d          }|||                                         }|j        D ]}|                    |          }|S )Nr#   r$   r"   )
serializerr   indexrindexstrippostprocessorsrun)r   r   r   r)   r*   pps         r   r   r   ,   s    ==DT??D JJsOOaE
++c

Cc	?  ""D  vvd||Kr   Nonec                    t          |           dk    r5| d         j        dk    r&| d                             d          dk    r	| d= dS dS dS dS )z-Drop anchorlink from the element, if present.r   r    aclass
headerlinkN)lentaggetr   s    r   r   r   ;   sY    
2ww{{r"vzS((RVZZ-@-@L-P-PrFFF {((-P-Pr   rootc                `    |                      d          D ]}t          |t                     dS )z@Remove footnote references from the element, if any are present.z.//sup[@id]/..N)findall_replace_elements_with_text_predicate_for_fnrefsr<   parents     r   r   r   A   s@    ,,/00 C C#F,ABBBBC Cr   
str | Nonec                r    | j         dk    r+|                     dd                              d          rdS d S )Nsupid fnref)r9   r:   
startswithr;   s    r   r@   r@   G   s7    	v266$++66w??r4r   c                `    |                      d          D ]}t          |t                     dS )zHFor images that have an `alt` attribute, replace them with this content.z.//img[@alt]/..N)r>   r?   _predicate_for_alt_textsrA   s     r   r   r   M   s@    ,,011 F F#F,DEEEEF Fr   c                N    | j         dk    r|                     d          x}r|S d S )Nimgalt)r9   r:   )r   rN   s     r   rK   rK   S   s*    	v266%==0C
4r   rB   	predicate%Callable[[etree.Element], str | None]c                    d}t          |           D ]I} ||          }|%||j        pdz   |z   }|                     |           4|r|j        pd|z   |_        d}J|r| j        pd|z   | _        dS dS )zYFor each child element, if matched, replace it with the text returned from the predicate.rG   N)reversedtailremover   )rB   rO   
carry_textchildnew_texts        r   r?   r?   Y   s     J&!!  9U##!UZ%526CJMM%     	**j8EJJ 7{(bJ67 7r   )r   r   r   r   r   r   )r   r   r   r   )r   r   r   r3   )r<   r   r   r3   )r   r   r   rC   )rB   r   rO   rP   r   r3   )
__future__r   r   typingr   r   markdownmarkdown.treeprocessors	xml.etreer   etree__annotations__treeprocessorsUnescapeTreeprocessorunescaper   AttributeErrorr   r   r   r   r   r@   r   rK   r?   r
   r   r   <module>rc      s   " " " " " " "  * * * * * * * *      /......     '==??HII   III3 3 3 3         C C C C   F F F F   7 7 7 7 7 7s   A	 	AA