
    jic                       U d Z ddlmZ ddlmZ ddlZddlmZ ddlm	Z	 ddl
mZ dd	lmZ dd
lmZ ddlmZ erddlmZ  ej        e          Zeeeeegef         Z	 de	j        ddgfde	j        g fde	j        g dfde	j        g dfde	j        g dfde	j        g dfde	j         g fde	j!        g dfde	j"        g dfde	j#        g fde	j$        g fgZ%de&d<    G d d          Z'dS )zBlock-level tokenizer.    )annotations)CallableN)TYPE_CHECKING   )rules_block)Ruler)
StateBlock)Token)EnvType)
MarkdownIttable	paragraph	referencecodefence)r   r   
blockquotelistr   hrr   )r   r   r   
html_blockheadinglheadingz.list[tuple[str, RuleFuncBlockType, list[str]]]_rulesc                  *    e Zd ZdZddZdd
ZddZdS )ParserBlockz`
    ParserBlock#ruler -> Ruler

    [[Ruler]] instance. Keep configuration of block rules.
    returnNonec                    t          t                               | _        t          D ]$\  }}}| j                            ||d|i           %d S )Nalt)r   RuleFuncBlockTyperulerr   push)selfnameruler   s       h/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/markdown_it/parser_block.py__init__zParserBlock.__init__7   sS    ,-//
% 	6 	6OD$JOOD$5555	6 	6    stater	   	startLineintendLinec                    | j                             d          }|}|j        j        j        }d}||k     r|                    |          x|_        }||k    rdS |j        |         |j        k     rdS |j	        |k    r	||_        dS |D ]} ||||d          r n| |_
        |j        }|dz
  |k     r|                    |dz
            rd}||k     r#|                    |          rd}|dz  }||_        ||k     dS dS )z Generate tokens for input range. Fr   TN)r    getRulesmdoptions
maxNestingskipEmptyLineslinesCount	blkIndentleveltightisEmpty)	r"   r(   r)   r+   rulesr3   r1   hasEmptyLinesr$   s	            r%   tokenizezParserBlock.tokenize<   sH   
##B''X%0
Wnn % 4 4T : ::EJw|D!EO33 {j(( %
   4tWe44 E
 ,+EK:D qG##dQh(?(?# $g~~%--"5"5~ $	!
I Wnnnnnnr'   srcstrr/   r   envr   	outTokenslist[Token]list[Token] | Nonec                ~    |sdS t          ||||          }|                     ||j        |j                   |j        S )z<Process input string and push block tokens into `outTokens`.N)r	   r;   r3   lineMaxtokens)r"   r<   r/   r>   r?   r(   s         r%   parsezParserBlock.parsei   sF      	43C33eUZ777|r'   N)r   r   )r(   r	   r)   r*   r+   r*   r   r   )
r<   r=   r/   r   r>   r   r?   r@   r   rA   )__name__
__module____qualname____doc__r&   r;   rE    r'   r%   r   r   0   s[         6 6 6 6
+" +" +" +"Z     r'   r   )(rI   
__future__r   collections.abcr   loggingtypingr   r-   r   r    r   rules_block.state_blockr	   tokenr
   utilsr   markdown_itr   	getLoggerrF   LOGGERr*   boolr   r   r   r   r   r   
list_blockr   r   r   r   r   r   __annotations__r   rJ   r'   r%   <module>rX      s      " " " " " " $ $ $ $ $ $                          / / / / / /             '&&&&&&		8	$	$ j#sD94?@  k+{!;<[r"k!Q!Q!QR888
 
;>KKKL[#%M%M%MN+',;)+S+S+ST#%M%M%MN%r*+',#:    *A A A A A A A A A Ar'   