
    $gf                        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dS )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`. olFparserblockparser.BlockParserc                    t                                          |           t          j        d| j        dz
  z            | _        d S )Nz^[ ]{0,%d}((\d+\.))[ ]+(.*)r   super__init__recompile
tab_lengthCHILD_REselfr   	__class__s     ^/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/markdown/extensions/sane_lists.pyr   zSaneOListProcessor.__init__)   D       
#A$(Oa$7$9 : :    r   r   )__name__
__module____qualname____doc__SIBLING_TAGSLAZY_OLr   __classcell__r   s   @r   r   r   !   sU        U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`. ulr   r   c                    t                                          |           t          j        d| j        dz
  z            | _        d S )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(   /   sM        886L/: : : : : : : : : :r   r(   c                      e Zd ZdZd ZdS )SaneListExtensionz Add sane lists to Markdown. c                    |j         j                            t          |j                   dd           |j         j                            t	          |j                   dd           dS )z Override existing Processors. olist(   ulist   N)r   blockprocessorsregisterr   r(   )r   mds     r   extendMarkdownz SaneListExtension.extendMarkdown>   sZ    
	!**+=bi+H+H'SUVVV
	!**+=bi+H+H'SUVVVVVr   N)r   r    r!   r"   r5    r   r   r,   r,   ;   s.        ''W W W W Wr   r,   c                     t          di | S )Nr6   )r,   )kwargss    r   makeExtensionr9   D   s    &&v&&&r   )r"   
__future__r    r   r2   r   r   r   typingr	   r
   r   r(   r,   r9   r6   r   r   <module>r=      s!    # " " " " "       < < < < < < < < 				             : : : : : : : :	: 	: 	: 	: 	: 	: 	: 	:W W W W W	 W W W' ' ' ' 'r   