o
    ;h%                  
   @   s   d dl Z ddlmZ ddlmZ e eZdededefd	d
Z	dededefddZ
dededdfddZdededededef
ddZdS )    N   )
isStrSpace   )
StateBlockstate	startLinereturnc                 C   sx   | j | | j|  }| j| }z| j| }W n
 ty    Y dS w |d7 }|dvr+dS ||k r:| j| }t|s:dS |S )Nr   )*-+)bMarkstShifteMarkssrc
IndexErrorr   )r   r   posmaximummarkerch r   O/var/www/html/venv/lib/python3.10/site-packages/markdown_it/rules_block/list.pyskipBulletListMarker   s   

r   c                 C   s   | j | | j|  }|}| j| }|d |krdS | j| }|d7 }t|}|dk s.|dkr0dS 	 ||kr7dS | j| }|d7 }t|}|dkrU|dkrU|| dkrTdS q0|dv rZndS ||k rk| j| }t|skdS |S )Nr   r	   0   9   T
   )).)r   r   r   r   ordr   )r   r   startr   r   r   Zch_ordr   r   r   skipOrderedListMarker%   s8   



r    idxc                 C   s   | j d }|d }t| jd }||k r@| j| j |kr6| j| jdkr6d| j|d  _d| j| _|d7 }|d7 }||k sd S d S )Nr   Zparagraph_openTr   )levellentokenstypeZhidden)r   r!   r"   ilengthr   r   r   markTightParagraphsX   s   
 r(   endLinesilentc           !      C   s  t d| ||| d}d}| |rdS | jdkr-| j| | j dkr-| j| | jk r-dS |r>| jdkr>| j| | jkr>d}t| |}|dkrgd}| j| | j	|  }t
| j||d  }	|rf|	dkrfdS nt| |}|dkrsd}ndS |r| || j| krdS | j|d  }
|rdS t| j}|r| dd	d}|	dkrd
|	i|_n| ddd}|dg |_}|
|_|}d}| jjjd}| j}d| _||k r>|}| j| }| j| | | j| | j	|    }}||k r| j| }|dkr|d|| j|  d  7 }n|dkr|d7 }nn|d7 }||k s|}||kr!dn|| }|dkr,d}|| }| ddd}|
|_|dg |_}|rN| j||d  |_| j}| j	| }| j| }| j}| j| _|| _d| _|| j|  | j	|< || j|< ||kr| |d rt| jd || _n	| jj| || | jr|rd}| j| dko| | jd }| j| _|| _|| j	|< || j|< || _| ddd}|
|_| j }}||d< ||krna| j| }| j| | jk rnR| |rnKd}|D ]} | | ||drd} nq|rn3|r$t| |}|dk rn%| j| | j	|  }nt| |}|dk r/n|
| j|d  kr:n||k s|rI| dd	d}n| ddd}|
|_||d< || _|| _|ret | | dS )Nzentering list: %s, %s, %s, %sFTr      Z	paragraphr   Zordered_list_openolr   Zbullet_list_openZullist	 Zlist_item_openZlir   Zlist_item_closer	   Zordered_list_closeZbullet_list_close)!LOGGERdebugZis_code_blockZ
listIndentZsCountZ	blkIndentZ
parentTyper    r   r   intr   r   Z
skipSpacesr   r#   r$   pushattrsmapmarkupmdblockZrulerZgetRulesZbsCountinfotightZisEmptyminlinetokenizer(   )!r   r   r)   r*   ZisTerminatingParagraphr:   ZposAfterMarkerZ	isOrderedr   ZmarkerValueZ
markerCharZ
listTokIdxtokenZ	listLinesZnextLineZprevEmptyEndZterminatorRulesZoldParentTyper   r   initialoffsetr   ZcontentStartZindentAfterMarkerindentZ	itemLinesZoldTightZ	oldTShiftZ	oldSCountZoldListIndent	terminateZterminatorRuler   r   r   
list_blocke   s  

	
















 








  
rC   )loggingZcommon.utilsr   Zstate_blockr   	getLogger__name__r0   r2   r   r    r(   boolrC   r   r   r   r   <module>   s   
3"