
    ̆h                        S r SSKJr  SSKJr  SSKJr  SSKJs  J	r  SSK
r
SSKJr  \(       a  SS	KJr   " S
 S\5      r " S S\5      rS rg)a  
Adds rST-style admonitions to Python-Markdown.
Inspired by [rST][] feature with the same name.

[rST]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#specific-admonitions

See the [documentation](https://Python-Markdown.github.io/extensions/admonition)
for details.
    )annotations   )	Extension   )BlockProcessorN)TYPE_CHECKING)blockparserc                      \ rS rSrSrS rSrg)AdmonitionExtension(   z*Admonition extension for Python-Markdown. c                    UR                  U 5        UR                  R                  R                  [	        UR                  5      SS5        g)z%Add Admonition to Markdown instance. 
admonitioni   N)registerExtensionparserblockprocessorsregisterAdmonitionProcessor)selfmds     V/opt/services/DDDS/venv/lib/python3.13/site-packages/markdown/extensions/admonition.pyextendMarkdown"AdmonitionExtension.extendMarkdown+   s7    
T"
		!!**+>ryy+I<Y\]     N)__name__
__module____qualname____firstlineno____doc__r   __static_attributes__r   r   r   r   r   (   s    5^r   r   c                     ^  \ rS rSrSrSr\R                  " S5      r\R                  " S5      r	SU 4S jjr
SS jrSS jrSS	 jrSS
 jrSrU =r$ )r   2   r   zadmonition-titlez<(?:^|\n)!!! ?([\w\-]+(?: +[\w\-]+)*)(?: +"(.*?)")? *(?:\n|$)z  +c                @   > [         TU ]  U5        SU l        SU l        g)zInitialization.Nr   )super__init__current_siblingcontent_indent)r   r   	__class__s     r   r&   AdmonitionProcessor.__init__9   s"     	 59r   c                2   UnSnU R                   b;  U R                   nU R                  X R                  5      u  p$SU l         SU l        XRU4$ U R                  U5      nUb?  UR                  S:w  d/  UR                  SS5      R                  U R                  5      S:X  a  SnOU R                  U5      nSnUb  Ub}  UR                  SU R                  -  S-  5      (       aW  UbT  UR                  S	;   aD  U R                  U5      nUb  U R                  U5      OSnX R                  S nXpR                  -  nOSnUb  M  UR                  SU R                  -  5      (       d  SnUb-  XpR                  -  nU R                  X75      u  p$XPl         Xpl        XRU4$ )
zqGet sibling admonition.

Retrieve the appropriate sibling element. This can get tricky when
dealing with lists.

 Nr   divclass r   )uloldl)
r'   detabr(   	lastChildtaggetfind	CLASSNAME
startswith
tab_length)r   parentblock	old_blockthe_restsibling
last_childindents           r   parse_content!AdmonitionProcessor.parse_contentA   s    	 +**G"jj0C0CDOE#'D "#D8++..(?gkkU2gkk'26N6S6STXTbTb6cgi6iG 0JF('E,<,<S4??=RUV=V,W,W*z~~AS/S
 #nnZ8G<C<O!8UYJ
 "//"23Eoo-F!%J# (& ##C$//$9::"//)"&**Y"?'.$&,#x''r   c                p    U R                   R                  U5      (       a  gU R                  X5      S   S L$ )NTr   )REsearchrC   )r   r<   r=   s      r   testAdmonitionProcessor.test{   s3    77>>%  %%f4Q7tCCr   c                   UR                  S5      nU R                  R                  U5      nU(       ag  UR                  5       S:  a-  U R                  R                  XS UR                  5        /5        X4R                  5       S  nU R                  U5      u  p5OU R                  X5      u  pcnU(       a  U R                  U5      u  px[        R                  " US5      n	U	R                  SSR                  U R                  U5      5        U(       a9  [        R                  " U	S5      n
Xl        U
R                  SU R                   5        OSWR"                  S;   aA  UR                  (       a0  UR                  nSUl        [        R                  " US5      n
Xl        Un	U R                  R%                  X5        U(       a  UR'                  SU5        g g )Nr   r-   r.   z{} {}p)liddr,   )poprF   rG   startr   parseBlocksendr4   rC   get_class_and_titleetree
SubElementsetformatr9   textCLASSNAME_TITLEr6   
parseChunkinsert)r   r<   blocksr=   mtheRestr@   klasstitler-   rK   rW   s               r   runAdmonitionProcessor.run   sf   

1GGNN5!wwy1}''z	1B0CD%%'(OE!ZZ.NE7&*&8&8&G#GG33A6LE""651CGGGW^^DNNEBC$$S#.gt334 {{l*w||||!$$Wc2Cs* MM!W%	 r   c                    UR                  S5      R                  5       UR                  S5      p2U R                  R                  SU5      nUc&  UR	                  SS5      S   R                  5       nX#4$ US:X  a  S nX#4$ )Nr   r   r0   r   r,   )grouplower	RE_SPACESsubsplit
capitalize)r   matchr^   r_   s       r   rR   'AdmonitionProcessor.get_class_and_title   s    {{1~++-u{{1~u""3.= KKQ'*557E
 |	 b[ E|r   )r(   r'   )r   zblockparser.BlockParser)r<   etree.Elementr=   strreturnz%tuple[etree.Element | None, str, str])r<   rk   r=   rl   rm   bool)r<   rk   r[   z	list[str]rm   None)ri   zre.Match[str]rm   ztuple[str, str | None])r   r   r   r   r9   rX   recompilerF   re   r&   rC   rH   r`   rR   r!   __classcell__)r)   s   @r   r   r   2   sK    I(O	S	TB

5!I 8(tD$&L r   r   c                     [        S0 U D6$ )Nr   )r   )kwargss    r   makeExtensionru      s    (((r   )r    
__future__r   r,   r   r   r   xml.etree.ElementTreerS   ElementTreerp   typingr   markdownr	   r   r   ru   r   r   r   <module>r{      sI   $ #  , % % 	  $^) ^B. BJ)r   