Ë
    Ÿ2Úi°  ã                  óè   — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	Z	erdd	l
mZ d
„ Zd„ Zd„ Zd„ Z e	j                   defdefdefdefdg«      Zdd„Zdd„Z G d„ de«      Z G d„ de«      Zd„ Zy)zè
 Adds attribute list syntax. Inspired by
[Maruku](http://maruku.rubyforge.org/proposal.html#attribute_lists)'s
feature of the same name.

See the [documentation](https://Python-Markdown.github.io/extensions/attr_list)
for details.
é    )Úannotations)ÚTYPE_CHECKINGé   )Ú	Extensioné   )ÚTreeprocessorN)ÚElementc                óR   — |j                  dd«      \  }}||j                  d«      fS )Nú=r   ú"©ÚsplitÚstrip©ÚsÚtÚkÚvs       úT/var/www/html/acx/venv/lib/python3.12/site-packages/markdown/extensions/attr_list.pyÚ_handle_double_quoter   %   ó'   € Ø�7‰7�3˜‹?�D€A€qØˆa�g‰g�c‹lˆ?Ðó    c                óR   — |j                  dd«      \  }}||j                  d«      fS )Nr   r   ú'r   r   s       r   Ú_handle_single_quoter   *   r   r   c                ó&   — |j                  dd«      S )Nr   r   )r   ©r   r   s     r   Ú_handle_key_valuer   /   s   € Ø�7‰7�3˜‹?Ðr   c                ój   — |j                  d«      rd|dd  fS |j                  d«      rd|dd  fS ||fS )Nú.r   ú#Úid)Ú
startswithr   s     r   Ú_handle_wordr$   3   sC   € Ø‡|�|�CÔØ�A�a�b�EˆzÐØ‡|�|�CÔØ�Q�q�r�Uˆ{ÐØˆaˆ4€Kr   z[^ =]+=".*?"z[^ =]+='.*?'z[^ =]+=[^ =]+z[^ =]+)ú Nc                ó2   — t         j                  | «      d   S )z= Parse attribute list and return a list of attribute tuples. r   )Ú_scannerÚscan)Ústrs    r   Ú	get_attrsr*   D   s   € ä�=‰=˜Ó˜aÑ Ð r   c                ó   — | j                   dv S )N)Úh1Úh2Úh3Úh4Úh5Úh6)Útag)Úelems    r   Úisheaderr4   I   s   € Ø�8‰8Ð;Ð;Ð;r   c                  ó  — e Zd ZdZ ej
                  dj                  e«      «      Z ej
                  dj                  e«      «      Z ej
                  dj                  e«      «      Z	 ej
                  d«      Z
d
d„Zdd„Zdd„Zy	)ÚAttrListTreeprocessorz!\{\:?[ ]*([^\}\n ][^\}\n]*)[ ]*\}z[ ]+{}[ ]*$z\n[ ]*{}[ ]*$z^{}zÃ[^A-Z_a-z\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02ff\u0370-\u037d\u037f-\u1fff\u200c-\u200d\u2070-\u218f\u2c00-\u2fef\u3001-\ud7ff\uf900-\ufdcf\ufdf0-\ufffd\:\-\.0-9\u00b7\u0300-\u036f\u203f-\u2040]+c                ó@  — |j                  «       D �]
  }| j                  j                  |j                  «      �rg| j                  }t        |«      s|j                  dv r| j                  }t        |«      �rµ|j                  dk(  �r¥d }t        |«      D ]  \  }}|j                  dv sŒ|} n |€{|d   j                  rl|j                  |d   j                  «      }|sŒÐ| j                  ||j                  d«      «       |d   j                  d |j                  «        |d   _	        �Œ|��|dkD  rˆ||dz
     j                  rv|j                  ||dz
     j                  «      }|s�ŒY| j                  ||j                  d«      «       ||dz
     j                  d |j                  «        ||dz
     _	        �Œª|j                  s�Œ¸|j                  |j                  «      }|s�Œ×| j                  ||j                  d«      «       |j                  d |j                  «        |_        �Œt        |«      r½|d   j                  r®|j                  |d   j                  «      }|s�ŒX| j                  ||j                  d«      «       |d   j                  d |j                  «        |d   _	        t        |«      s�Œ®|d   j                  j                  d«      j                  «       |d   _	        �Œä|j                  s�Œò|j                  |j                  «      }|s�Œ| j                  ||j                  d«      «       |j                  d |j                  «        |_        t        |«      s�Œa|j                  j                  d«      j                  «       |_        �Œ‘|j                  s�ŒŸ| j                   j#                  |j                  «      }|s�ŒÈ| j                  ||j                  d«      «       |j                  |j%                  «       d  |_	        �Œ y )N)ÚdtÚtdÚthÚli)ÚulÚoléÿÿÿÿr   r   r!   )ÚiterÚmdÚis_block_levelr2   ÚBLOCK_REr4   Ú	HEADER_REÚlenÚ	enumerateÚtailÚsearchÚassign_attrsÚgroupÚstartÚtextÚrstripÚ	INLINE_REÚmatchÚend)ÚselfÚdocr3   ÚREÚposÚiÚchildÚms           r   ÚrunzAttrListTreeprocessor.runY   s  € Ø—H‘H“Jó 9	8ˆDØ�w‰w×%Ñ% d§h¡hÕ/à—]‘]�Ü˜D”> T§X¡XÐ1CÑ%CàŸ™�BÜ�t•9 §¡¨TÓ!1à�Cä$-¨d£Oò "™˜˜5Ø Ÿ9™9¨Ò4Ø"#˜CÙ!ð"ð �{ t¨B¡x§}¢}àŸI™I d¨2¡h§m¡mÓ4˜ÚØ ×-Ñ-¨d°A·G±G¸A³JÔ?Ø,0°©H¯M©M¸*¸1¿7¹7»9Ð,E˜D ™HžMØ˜¨S°1ªW¸¸cÀ!¹e¹×9IÒ9IàŸI™I d¨3¨q©5¡k×&6Ñ&6Ó7˜ÛØ ×-Ñ-¨d°A·G±G¸A³JÔ?Ø/3°C¸±E©{×/?Ñ/?À
ÀÇÁÃÐ/K˜D  Q¡™KÖ,ØŸœàŸI™I d§i¡iÓ0˜ÛØ ×-Ñ-¨d°A·G±G¸A³JÔ?Ø(,¯	©	°*°1·7±7³9Ð(=˜DžIÜ˜”Y 4¨¡8§=¢=àŸ	™	 $ r¡(§-¡-Ó0�AÛØ×)Ñ)¨$°·±¸³
Ô;Ø(,¨R©¯©°j°q·w±w³yÐ(A˜˜R™œÜ# Dž>à,0°©H¯M©M×,@Ñ,@ÀÓ,E×,LÑ,LÓ,N˜D ™HžMØ—Y”YàŸ	™	 $§)¡)Ó,�AÛØ×)Ñ)¨$°·±¸³
Ô;Ø$(§I¡I¨j¨q¯w©w«yÐ$9˜œ	Ü# Dž>à(,¯	©	×(8Ñ(8¸Ó(=×(DÑ(DÓ(F˜DžIð —9”9ØŸ™×,Ñ,¨T¯Y©YÓ7�AÛØ×)Ñ)¨$°·±¸³
Ô;Ø$(§I¡I¨a¯e©e«g¨hÐ$7˜ž	ñs9	8r   c                ó  — t        |«      D ]t  \  }}|dk(  rI|j                  d«      }|r#|j                  ddj                  ||«      «       ŒA|j                  d|«       ŒT|j                  | j	                  |«      |«       Œv y)z Assign `attrs` to element. r    Úclassz{} {}N)r*   ÚgetÚsetÚformatÚsanitize_name)rP   r3   Úattrsr   r   Úclss         r   rH   z"AttrListTreeprocessor.assign_attrs•   st   € ä˜eÓ$ò 
	3‰DˆAˆqØ�CŠxà—h‘h˜wÓ'�ÙØ—H‘H˜W g§n¡n°S¸!Ó&<Õ=à—H‘H˜W aÕ(ð —‘˜×+Ñ+¨AÓ.°Õ2ñ
	3r   c                ó:   — | j                   j                  d|«      S )z{
        Sanitize name as 'an XML Name, minus the ":"'.
        See https://www.w3.org/TR/REC-xml-names/#NT-NCName
        Ú_)ÚNAME_REÚsub)rP   Únames     r   r]   z#AttrListTreeprocessor.sanitize_name£   s   € ð
 �|‰|×Ñ  TÓ*Ð*r   N)rQ   r	   )r3   r	   r^   r)   ÚreturnÚNone)rd   r)   re   r)   )Ú__name__Ú
__module__Ú__qualname__ÚBASE_REÚreÚcompiler\   rC   rB   rM   rb   rW   rH   r]   © r   r   r6   r6   M   s~   „ à2€GØ�—
‘
˜>×0Ñ0°Ó9Ó:€IØˆr�z‰zÐ*×1Ñ1°'Ó:Ó;€HØ�—
‘
˜6Ÿ=™=¨Ó1Ó2€IØˆb�j‰jð Hó I€Gó:8óx3ô+r   r6   c                  ó   — e Zd ZdZd„ Zy)ÚAttrListExtensionz. Attribute List extension for Python-Markdown c                ór   — |j                   j                  t        |«      dd«       |j                  | «       y )NÚ	attr_listé   )ÚtreeprocessorsÚregisterr6   ÚregisterExtension)rP   r@   s     r   ÚextendMarkdownz AttrListExtension.extendMarkdown­   s.   € Ø
×Ñ×"Ñ"Ô#8¸Ó#<¸kÈ1ÔMØ
×Ñ˜TÕ"r   N)rg   rh   ri   Ú__doc__rv   rm   r   r   ro   ro   «   s
   „ Ù8ó#r   ro   c                 ó   — t        di | ¤ŽS )Nrm   )ro   )Úkwargss    r   ÚmakeExtensionrz   ²   s   € ÜÑ&˜vÑ&Ð&r   )r)   r)   re   zlist[tuple[str, str]])r3   r	   re   Úbool)rw   Ú
__future__r   Útypingr   Ú r   rs   r   rk   Úxml.etree.ElementTreer	   r   r   r   r$   ÚScannerr'   r*   r4   r6   ro   rz   rm   r   r   ú<module>r�      sœ   ðñ"õ #Ý  å Ý *Û 	áÝ-òò
ò
òð ˆ2�:‰:ØÐ*Ð+ØÐ*Ð+ØÐ(Ð)Ø�ÐØðó €ó!ó
<ô[+˜Mô [+ô|#˜	ô #ó'r   