
    /Vhf                        d Z ddlmZ ddlmZ ddlmZmZ ddlZddl	m
Z
 e
rdd	lmZ  G d
 de      Z G d de      Z G d de      Zd Zy)z
Modify the behavior of Lists in Python-Markdown to act in a sane manor.

See [documentation](https://Python-Markdown.github.io/extensions/sane_lists)
for details.
    )annotations   )	Extension   )OListProcessorUListProcessorN)TYPE_CHECKING)blockparserc                  2     e Zd ZdZdgZ	 dZ	 d fdZ xZS )SaneOListProcessorzK Override `SIBLING_TAGS` to not include `ul` and set `LAZY_OL` to `False`. olFc                x    t         |   |       t        j                  d| j                  dz
  z        | _        y )Nz^[ ]{0,%d}((\d+\.))[ ]+(.*)r   super__init__recompile
tab_lengthCHILD_REselfparser	__class__s     N/home/dcms/DCMS/lib/python3.12/site-packages/markdown/extensions/sane_lists.pyr   zSaneOListProcessor.__init__)   4     

#A$(OOa$7$9 :    r   zblockparser.BlockParser)__name__
__module____qualname____doc__SIBLING_TAGSLAZY_OLr   __classcell__r   s   @r   r   r   !   s"    U6L/G': :r   r   c                  ,     e Zd ZdZdgZ	 d fdZ xZS )SaneUListProcessorz. Override `SIBLING_TAGS` to not include `ol`. ulc                x    t         |   |       t        j                  d| j                  dz
  z        | _        y )Nz^[ ]{0,%d}(([*+-]))[ ]+(.*)r   r   r   s     r   r   zSaneUListProcessor.__init__5   r   r   r   )r   r   r    r!   r"   r   r$   r%   s   @r   r'   r'   /   s    86L/: :r   r'   c                      e Zd ZdZd Zy)SaneListExtensionz Add sane lists to Markdown. c                    |j                   j                  j                  t        |j                         dd       |j                   j                  j                  t	        |j                         dd       y)z Override existing Processors. olist(   ulist   N)r   blockprocessorsregisterr   r'   )r   mds     r   extendMarkdownz SaneListExtension.extendMarkdown>   sP    
		!!**+=bii+H'SUV
		!!**+=bii+H'SUVr   N)r   r   r    r!   r4    r   r   r+   r+   ;   s    'Wr   r+   c                     t        di | S )Nr5   )r+   )kwargss    r   makeExtensionr8   D   s    &v&&r   )r!   
__future__r    r   r1   r   r   r   typingr	   r
   r   r'   r+   r8   r5   r   r   <module>r<      sL    #  < 	  : :	: 	:W	 W'r   