
    $gF                         d Z ddlmc mZ ddlmZmZ ddlmZ ddl	Z	 e	j
        d          Z e	j
        d          Z G d	 d
e          Z G d de          Zd ZdS )zAdmonitions.    N   )Blocktype_html_identifier   )BlocksExtensionz[_-]+z[\w-]+c                   :    e Zd ZdZdZdZddegiZdZdZ	d Z
d ZdS )
Admonitiona  
    Admonition.

    Arguments (1 optional):
    - A title.

    Options:
    - `type` (string): Attach a single special class for styling purposes. If more are needed,
      use the built-in `attributes` options to apply as many classes as desired.

    Content:
    Detail body.
    
admonitionNtype c                     | j         dk    rId| j         i| j        d<   | j        r| j        | j        d         d<   | j        r| j        | j        d         d<   dS )zHandle on validate event.r
   namer   titleclassT)NAMEoptions	DEF_TITLE	DEF_CLASS)selfparents     Z/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/pymdownx/blocks/admonition.pyon_validatezAdmonition.on_validate"   sc     9$$$*DI#6DL ~ ?04V$W-~ ?04V$W-t    c                    dg}| j         d         }dx}x}}t          |t                    r`|d         }|                    d|          }|                    dt                              d|                                                    }nFt          |t                    r1|}|}t                              d|                                          }|r|dk    r|                    |           t          j
        |ddd                    |          i          }d	}| j        |r|}n| j        r| j        }|t          j
        |d
ddi          }	||	_        |S )zCreate the element.r
   r   r   r   r   r    divNpzadmonition-title)r   
isinstancedictgetRE_SEPsubr   strappendetree
SubElementjoinargumenttext)
r   r   classesobjatype	def_title
class_nameelr   ad_titles
             r   	on_createzAdmonition.on_create-   sc     .l6")+++	Jc4   	7KE%00JC)D)D)J)J)L)LMMIIS!! 	7EJ

3..4466I 	'Ul**NN:&&& fegsxx7H7H-IJJ =  "!] 	"ME'C';M1NOOH!HM	r   )__name__
__module____qualname____doc__r   ARGUMENTr   OPTIONSr   r   r   r1    r   r   r	   r	      sf          DH)*G II	 	 	" " " " "r   r	   c                   (     e Zd ZdZ fdZd Z xZS )AdmonitionExtensionzAdmonition Blocks Extension.c                 T    dg ddgi| _          t                      j        |i | dS )zInitialize.types)note	attentioncautiondangererrortiphintwarningz9Generate Admonition block extensions for the given types.N)configsuper__init__)r   argskwargs	__class__s      r   rG   zAdmonitionExtension.__init__U   sF     ]]]K
 	$)&)))))r   c                    |                     t          |                                            |                     dg           D ]}t	          |t
                    r`|d         }|                    d|          }|                    dt                              d|          	                                          }n1|}|}t                              d|          	                                }t                              d|          	                                }|                     t          |t          fi |||d          i            dS )	zExtend Markdown blocks.r<   r   r   r   r   r   )r7   r   r   r   N)registerr	   
getConfigs	getConfigr   r   r    r!   r"   r   r   )r   md	block_mgrr+   r   r.   r   subclasss           r   extendMarkdownBlocksz(AdmonitionExtension.extendMarkdownBlocksa   s9    	:t'8'8999 >>'2.. 	 	C#t$$ <6{ WWWd33
C)D)D)J)J)L)LMM!


3
3399;;zz"d++1133HM "DuS]^^ 
    	 	r   )r2   r3   r4   r5   rG   rR   __classcell__)rJ   s   @r   r:   r:   R   sM        &&
* 
* 
* 
* 
*      r   r:   c                      t          | i |S )zReturn extension.)r:   )rH   rI   s     r   makeExtensionrU   {   s     ////r   )r5   xml.etree.ElementTreer%   ElementTreeblockr   r   blocksr   recompiler!   RE_VALID_NAMEr	   r:   rU   r8   r   r   <module>r]      s      % % % % % % % % % . . . . . . . . % % % % % % 					H		
9%%D D D D D D D DN& & & & &/ & & &R0 0 0 0 0r   