
    \j/              
           d dl Z ddlmZ ddlmZ  e j
                  e      Zdededefd	Z	dededefd
Z
dededdfdZdededededef
dZdededededz  fdZy)    N   )
isStrSpace   )
StateBlockstate	startLinereturnc                     | j                   |   | j                  |   z   }| j                  |   }	 | j                  |   }|dz  }|dvry||k  r| j                  |   }t        |      sy|S # t        $ r Y yw xY w)Nr   )*-+)bMarkstShifteMarkssrc
IndexErrorr   )r   r   posmaximummarkerchs         F/root/env/lib/python3.12/site-packages/markdown_it/rules_block/list.pyskipBulletListMarkerr      s    
,,y
!ELL$;
;Cll9%G3 1HC_$
W}YYs^"~J  s   A+ +	A76A7c                    | j                   |   | j                  |   z   }|}| j                  |   }|dz   |k\  ry| j                  |   }|dz  }t	        |      }|dk  s|dkD  ry	 ||k\  ry| j                  |   }|dz  }t	        |      }|dk\  r|dk  r
||z
  dk\  ry:|dv rny||k  r| j                  |   }t        |      sy|S )Nr   r   0   9   
   )).)r   r   r   r   ordr   )r   r   startr   r   r   ch_ords          r   skipOrderedListMarkerr#   %   s    LL#ell9&==E
Cll9%G Qw'	3B1HCWF}
'>YYs^q RT>fn U{b  
W}YYs^"~J    idxc                 N   | j                   dz   }|dz   }t        | j                        dz
  }||k  rt| j                  |   j                   |k(  rL| j                  |   j                  dk(  r0d| j                  |dz      _        d| j                  |   _        |dz  }|dz  }||k  rsy y )Nr   paragraph_openTr   )levellentokenstypehidden)r   r%   r(   ilengths        r   markTightParagraphsr/   X   s    KK!OEaA"F
f*<<?  E)ell1o.B.BFV.V)-ELLQ&%)ELLO"FA	Q f*r$   endLinesilentc                    t         j                  d| |||       d}d}| j                  |      ry| j                  dk\  r<| j                  |   | j                  z
  dk\  r| j                  |   | j
                  k  ry|r-| j                  dk(  r| j                  |   | j
                  k\  rd}t        | |      }|dk\  rDd}| j                  |   | j                  |   z   }t        | j                  ||dz
         }	|r|	dk7  ryt        | |      }|dk\  rd}ny|r"| j                  |      | j                  |   k\  ry| j                  |dz
     }
|ryt        | j                         }|r"| j#                  dd	d      }	dk7  rd
|	i|_        n| j#                  ddd      }|dgx|_        }|
|_        |}d}| j*                  j,                  j.                  j1                  d      }| j                  }d| _        ||k  r|}| j                  |   }| j                  |   |z   | j                  |   | j                  |   z   z
  x}}||k  rG| j                  |   }|dk(  r|d|| j2                  |   z   dz  z
  z  }n|dk(  r|dz  }nn|dz  }||k  rG|}||k\  rdn||z
  }|dkD  rd}||z   }| j#                  ddd      }|
|_        |dgx|_        }|r| j                  |dz
   |_        d}| j*                  j6                  j9                  dd      r)||k  r$t;        | j                  ||      }|d|i|_        d}| j>                  }| j                  |   }| j                  |   }| j                  |   } | j                  }!| j
                  | _        || _        d| _        || j                  |   z
  | j                  |<   || j                  |<   |r!||z   | j                  |<   d| j                  |<   ||k\  r3| jA                  |dz         rtC        | jD                  dz   |      | _"        n'| j*                  j,                  jG                  | ||       | j>                  r|rd}| jD                  |z
  dkD  xr | jA                  | jD                  dz
        }| j                  | _        |!| _        |r|| j                  |<   || j                  |<   | | j                  |<   || _        | j#                  ddd      }|
|_        | jD                  x}}||d<   ||k\  rn| j                  |   }| j                  |   | j
                  k  rn| j                  |      rn~d}"|D ]  }# |#| ||d      sd}" n |"rnc|r2t        | |      }|dk  rnO| j                  |   | j                  |   z   }nt        | |      }|dk  rn|
| j                  |dz
     k7  rn||k  r| j*                  j6                  j9                  dd      rd}$| j                   |   jH                  }%tK        |dz   t        | j                               D ]d  }&| j                   |&   }'|'jH                  |%dz   k(  s%|'jL                  dk(  s5|'j<                  sBd|'j<                  v sQ|'jO                  dd       d}$f |$r| j                   |   jO                  dd       |r| j#                  dd	d      }n| j#                  ddd      }|
|_        ||d<   || _"        || _        |rtQ        | |       y)Nzentering list: %s, %s, %s, %sFTr      	paragraphr   ordered_list_openolr!   bullet_list_openullist	 list_item_openli	tasklistscheckedr   list_item_closer   classztask-list-itemzcontains-task-listordered_list_closebullet_list_close))LOGGERdebugis_code_block
listIndentsCount	blkIndent
parentTyper#   r   r   intr   r   
skipSpacesr   r)   r*   pushattrsmapmarkupmdblockrulergetRulesbsCountinfooptionsget_detect_task_checkboxmetatightisEmptyminlinetokenizer(   ranger+   attrJoinr/   )(r   r   r0   r1   isTerminatingParagraphr[   posAfterMarker	isOrderedr!   markerValue
markerChar
listTokIdxtoken	listLinesnextLineprevEmptyEndterminatorRulesoldParentTyper   r   initialoffsetr   contentStartindentAfterMarkerindent	itemLinescheckboxLenr?   oldTightoldBMark	oldTShift	oldSCountoldListIndent	terminateterminatorRulecontainsTaskr(   jtoks(                                           r   
list_blockr   e   sQ   
LL0%GVT"E9% 	ALL#e&6&66!;LL#eoo5 	+LL#u6!% +5)<N	Y'%,,y*AA%))ENQ,>?@ "kQ&6-eY?QI
 	^,Y0GG >A-.J  U\\"J

.a8!"K0EK 

-tQ7&N*EI	EL HLhhnn**33F;O$$ME
W
,,x( LL"||I&i)@@B	
& Gm3BTz!vh(??1DDDs!1HC Gm  ".!8Afw>N q  ! ,, 

+T15!!*A.	I5>A+=>EJ 88U3w8N+EII|WMG"'1
   ;;<<	*LL+	LL+	 (( ?? ".i1H"HY"(Y &2[&@ELL#&'ELL#7"u}}Y]'C UZZ!^W5EJ
 HHNN##E9g> E 

Y.!3UejjSTn8U**(&.ELL#"+Y"+Y

,dB7!$zz)9	!w||I.
 <<!EOO3y) 	- 	NeXw= 		
  25(CN!LL*U\\(-CCE1%BN!>A#566o W
x xxK/Z(..zA~s5<<'89 		$A,,q/C		UQY&HH 00HH)W&67#		$ LL$--g7KL

/r:

.b9ELIaLEJ$E E:.r$   r   r   r   c                     |dz   |kD  ry| |   dk7  ry| |dz      }| |dz      dk7  ry|dk(  rd}n|d	v rd
}ny| |dz      dvry|S )zDetect ``[ ]``, ``[x]``, or ``[X]`` at *pos*, followed by whitespace.

    Returns ``True`` (checked), ``False`` (unchecked), or ``None`` (no match).
    r3   N[r   r   ]r;   F)xXT   )r;   r:    )r   r   r   innerr?   s        r   rY   rY     su     Qw
3x3aLE
37|s|	*	
37|;&Nr$   )loggingcommon.utilsr   state_blockr   	getLogger__name__rD   rK   r   r#   r/   boolr   strrY   r   r$   r   <module>r      s     % #			8	$

 s s 20 0 0 0f
z 
 
 
Zj ZS Z3 Z ZQU Zzs  s td{ r$   