Ë
    ÁjÁ  ã                  ó’   — d Z ddlmZ ddlmZ ddlmZmZ ddlm	c m
Z	 ddlZ G d„ d	e«      Z G d
„ de«      Z G d„ de«      Zd„ Zy)z›
Adds parsing of Definition Lists to Python-Markdown.

See the [documentation](https://Python-Markdown.github.io/extensions/definition_lists)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚBlockProcessorÚListIndentProcessorNc                  óh   — e Zd ZdZ ej
                  d«      Z ej
                  d«      Zdd„Zdd„Z	y)	ÚDefListProcessorz Process Definition Lists. z"(^|\n)[ ]{0,3}:[ ]{1,3}(.*?)(\n|$)z^[ ]{0,3}[^ :]c                óJ   — t        | j                  j                  |«      «      S )N)ÚboolÚREÚsearch)ÚselfÚparentÚblocks      úO/var/www/html/venv/lib/python3.12/site-packages/markdown/extensions/def_list.pyÚtestzDefListProcessor.test$   s   € Ü�D—G‘G—N‘N 5Ó)Ó*Ð*ó    c                ó  — |j                  d«      }| j                  j                  |«      }|d |j                  «        j	                  d«      D �cg c]"  }|j                  «       r|j                  «       ‘Œ$ }}||j                  «       d  }| j                  j                  |«      }|r|d }
}	n| j                  |«      \  }	}
|	r"dj                  |j                  d«      |	«      }	n|j                  d«      }	| j                  |«      }|s|€|j                  d|«       y|sO|j                  dk(  r@d}|j                  j	                  d«      }|j!                  |«       | j                  |«      }nd}|�A|j                  d	k(  r2|}|sDt#        |«      r9|d
   j                  dk(  r't#        |d
   «      rd}nt%        j&                  |d	«      }|D ]  }t%        j&                  |d«      }||_        Œ! | j(                  j*                  j-                  |«       t%        j&                  |d«      }| j(                  j/                  ||	g«       | j(                  j*                  j1                  «        |
r|j                  d|
«       y y c c}w )Nr   Ú
z{}
{}r   FÚpÚ	looselistÚlistÚdléÿÿÿÿÚddÚdt)Úpopr   r   ÚstartÚsplitÚstripÚendÚNO_INDENT_REÚmatchÚdetabÚformatÚgroupÚ	lastChildÚinsertÚtagÚtextÚremoveÚlenÚetreeÚ
SubElementÚparserÚstateÚsetÚparseBlocksÚreset)r   r   ÚblocksÚ	raw_blockÚmÚtermÚtermsr   Ú	no_indentÚdÚtheRestÚsiblingr1   r   r   r   s                   r   ÚrunzDefListProcessor.run'   s2  € à—J‘J˜q“Mˆ	Ø�G‰G�N‰N˜9Ó%ˆà˜:˜AŸG™G›IÐ&×,Ñ,¨TÔ2óDÙ2ð #'Ø6:·j±j´lð —‘•Ø2ð 	ð Dà˜!Ÿ%™%›'˜(Ð#ˆØ×%Ñ%×+Ñ+¨EÓ2ˆ	ÙØ ˆw‰AàŸ™ EÓ*‰JˆAˆwÙØ—‘ §¡¨£
¨AÓ.‰Aà—‘˜“
ˆAØ—.‘. Ó(ˆÙ˜˜ð �M‰M˜!˜YÔ'ØÙ˜Ÿ™¨Ò+àˆEØ—L‘L×&Ñ& tÓ,ˆEØ�M‰M˜'Ô"à—n‘n VÓ,‰GàˆEàÐ 7§;¡;°$Ò#6àˆBÙœS œW¨¨B©¯©°tÒ);ÄÀBÀrÁFÄØ#‘ô ×!Ñ! &¨$Ó/ˆBãˆDÜ×!Ñ! " dÓ+ˆBØˆB�Gð ð 	�‰×Ñ×Ñ˜eÔ$Ü×Ñ˜b $Ó'ˆØ�‰×Ñ  Q CÔ(Ø�‰×Ñ×ÑÔ!áØ�M‰M˜!˜WÕ%ð ùò]Ds   Á'JN)r   úetree.Elementr   ÚstrÚreturnr   )r   r?   r5   z	list[str]rA   zbool | None)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚreÚcompiler   r#   r   r>   © r   r   r
   r
      s1   „ Ù%à	ˆ�‰Ð9Ó	:€BØ�2—:‘:Ð/Ó0€Ló+ô3&r   r
   c                  ó,   — e Zd ZdZddgZ	 g d¢Z	 dd„Zy)ÚDefListIndentProcessorz5 Process indented children of definition list items. r   Úli)r   ÚolÚulc                ój   — t        j                  |d«      }| j                  j                  ||g«       y)z\ Create a new `dd` or `li` (depending on parent) and parse the block with it as the parent. r   N)r.   r/   r0   r3   )r   r   r   r   s       r   Úcreate_itemz"DefListIndentProcessor.create_itemf   s,   € ô ×Ñ˜f dÓ+ˆØ�‰×Ñ  U GÕ,r   N)r   r?   r   r@   rA   ÚNone)rB   rC   rD   rE   Ú
ITEM_TYPESÚ
LIST_TYPESrO   rH   r   r   rJ   rJ   ]   s    „ Ù?ð ˜�€JØ,Ú#€JØ'ô-r   rJ   c                  ó   — e Zd ZdZd„ Zy)ÚDefListExtensionz# Add definition lists to Markdown. c                óì   — |j                   j                  j                  t        |j                   «      dd«       |j                   j                  j                  t	        |j                   «      dd«       y)z9 Add an instance of `DefListProcessor` to `BlockParser`. Ú	defindentéU   Údeflisté   N)r0   ÚblockprocessorsÚregisterrJ   r
   )r   Úmds     r   ÚextendMarkdownzDefListExtension.extendMarkdownp   sP   € à
�	‰	×!Ñ!×*Ñ*Ô+AÀ"Ç)Á)Ó+LÈkÐ[]Ô^Ø
�	‰	×!Ñ!×*Ñ*Ô+;¸B¿I¹IÓ+FÈ	ÐSUÕVr   N)rB   rC   rD   rE   r]   rH   r   r   rT   rT   m   s   „ Ù-óWr   rT   c                 ó   — t        di | ¤ŽS )NrH   )rT   )Úkwargss    r   ÚmakeExtensionr`   v   s   € ÜÑ%˜fÑ%Ð%r   )rE   Ú
__future__r   Ú r   rZ   r   r   Úxml.etree.ElementTreer.   ÚElementTreerF   r
   rJ   rT   r`   rH   r   r   Ú<module>re      sK   ðñõ #å ß Aß %Ð %Û 	ô<&�~ô <&ô~-Ð0ô -ô W�yô Wó&r   