
    ,h                     v    d dl mZ d dlmZ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  G d	 d
e      Zy)    )annotations)TYPE_CHECKINGLiteral   )
isStrSpace)	StateBase)Token)EnvType)
MarkdownItc                      e Zd Z	 	 	 	 	 	 	 	 	 	 ddZddZddZddZddZddZddZ	ddZ
dd	Zdd
ZddZddZddZy)
StateBlockc                   || _         || _        || _        || _        g | _        g | _        g | _        g | _        g | _        d| _	        d| _
        d| _        d| _        d| _        d| _        d| _        d| _        d| _        d}dx}x}x}}	t%        | j                         }
t'        | j                         D ]  \  }}|s)t)        |      r|dz  }|dk(  r|	d|	dz  z
  z  }	n|	dz  }	/d	}|d
k(  s	||
dz
  k(  s?|d
k7  r|dz  }| j                  j+                  |       | j
                  j+                  |       | j                  j+                  |       | j                  j+                  |	       | j                  j+                  d       d}d}d}	|dz   } | j                  j+                  |
       | j
                  j+                  |
       | j                  j+                  d       | j                  j+                  d       | j                  j+                  d       t%        | j                        dz
  | _        d| j                  d   j,                  j/                         v | _        y )Nr   Froot    	   T
codeblock)srcmdenvtokensbMarkseMarkstShiftsCountbsCount	blkIndentlinelineMaxtightddIndent
listIndent
parentTypelevelresultlen	enumerater   appendrulerget_active_rules_code_enabled)selfr   r   r   r   indent_foundstartposindentoffsetlength	characters               e/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/markdown_it/rules_block/state_block.py__init__zStateBlock.__init__   s?      !#!#!#!# #% 	
 !
  ())))fvTXX'1 	 NCi(aKF D(!fqj.0!#'LD C6A:$5$1HC""5)""3'""6*""6*##A&$a3	 8 	6"6"11A4;;'!+ $twww'7'='='N'N'PP    c           	         | j                   j                   d| j                   d| j                   dt	        | j
                         dS )Nz(line=z,level=z,tokens=))	__class____name__r"   r(   r*   r   )r0   s    r8   __repr__zStateBlock.__repr__q   sD    ~~&&'TYYKwtzzl(3t{{;K:LAO	
r:   c                    t        |||      }d|_        |dk  r| xj                  dz  c_        | j                  |_        |dkD  r| xj                  dz  c_        | j                  j	                  |       |S )zPush new token to "stream".Tr   r   )r	   r   r(   r   r,   )r0   ttypetagnestingtokens        r8   pushzStateBlock.pushw   sa    eS'*Q;JJ!OJjjQ;JJ!OJ5!r:   c                `    | j                   |   | j                  |   z   | j                  |   k\  S ).)r   r   r   r0   r"   s     r8   isEmptyzStateBlock.isEmpty   s-    D!DKK$55$++d:KKKr:   c                    || j                   k  rI	 | j                  |   | j                  |   z   | j                  |   k  r	 |S 	 |dz  }|| j                   k  rI|S # t        $ r Y "w xY w)rG   r   )r#   r   r   r   
IndexError)r0   from_poss     r8   skipEmptyLineszStateBlock.skipEmptyLines   s    %KK)DKK,AAT[[F    MH %   s   /A 	A'&A'c                l    	 	 | j                   |   }t        |      s	 |S |dz  }$# t        $ r Y |S w xY w)z Skip spaces from given position.r   )r   rK   r   )r0   r3   currents      r8   
skipSpaceszStateBlock.skipSpaces   sT    ((3- g&
 1HC    
s   & 	33c                n    ||k  r|S ||kD  r(|dz  }t        | j                  |         s|dz   S ||kD  r(|S )z+Skip spaces from given position in reverse.r   )r   r   )r0   r3   minimums      r8   skipSpacesBackzStateBlock.skipSpacesBack   sG    '>JGm1HCdhhsm,Qw Gm 
r:   c                `    	 	 | j                   |   }||k7  r	 |S |dz  }# t        $ r Y |S w xY w)z(Skip character code from given position.r   )srcCharCoderK   )r0   r3   r   rO   s       r8   	skipCharszStateBlock.skipChars   sV    **3/ $
 1HC    
     	--c                `    	 	 | j                   |   }||k7  r	 |S |dz  }# t        $ r Y |S w xY w)z*Skip character string from given position.r   )r   rK   )r0   r3   chrO   s       r8   skipCharsStrzStateBlock.skipCharsStr   sS    ((3- "}
 1HC    
rW   c                b    ||k  r|S ||kD  r"|dz  }|| j                   |   k7  r|dz   S ||kD  r"|S )z4Skip character code reverse from given position - 1.r   )rU   )r0   r3   r   rR   s       r8   skipCharsBackzStateBlock.skipCharsBack   sJ    '>JGm1HCt'',,Qw Gm 
r:   c                b    ||k  r|S ||kD  r"|dz  }|| j                   |   k7  r|dz   S ||kD  r"|S )z6Skip character string reverse from given position - 1.r   )r   )r0   r3   rY   rR   s       r8   skipCharsStrBackzStateBlock.skipCharsStrBack   sG    '>JGm1HCTXXc]"Qw Gm 
r:   c                P   |}||k\  rydg||z
  z  }d}||k  rd}| j                   |   x}	}
|dz   |k  s|r| j                  |   dz   n| j                  |   }|
|k  rr||k  rm| j                  |
   }t        |      r'|dk(  r|d|| j                  |   z   dz  z
  z  }n"|dz  }n|
|	z
  | j
                  |   k  r|dz  }nn|
dz  }
|
|k  r||k  rm||kD  rd||z
  z  | j                  |
| z   ||dz
  <   n| j                  |
| ||dz
  <   |dz  }|dz  }||k  rdj                  |      S )zCut lines range from source.r   r   r   r   r    )r   r   r   r   r    r   join)r0   beginendr4   
keepLastLFr"   queuei
lineIndent	lineStartfirstlastrY   s                r8   getLineszStateBlock.getLines   s   C<e$SjJ $D 11I !8c>Z D!A%[[&  4<j6&9XXe_b>Tz"a:T8J+Ja*O&OO
"a
Y&T)::!OJ
 4<j6&9 F" !$zF': ;txxd?SSa!e#xxd3a!eAIDFA= Sj@ wwu~r:   c                \    | j                   xr | j                  |   | j                  z
  dk\  S )zCheck if line is a code block,
        i.e. the code block rule is enabled and text is indented by more than 3 spaces.
        r   )r/   r   r!   rH   s     r8   is_code_blockzStateBlock.is_code_block  s,     !!Ot{{4'84>>'Ia&OOr:   N)
r   strr   r   r   r
   r   zlist[Token]returnNone)ro   rn   )rA   rn   rB   rn   rC   zLiteral[-1, 0, 1]ro   r	   )r"   intro   bool)rL   rq   ro   rq   )r3   rq   ro   rq   )r3   rq   rR   rq   ro   rq   )r3   rq   r   rq   ro   rq   )r3   rq   rY   rn   ro   rq   )r3   rq   r   rq   rR   rq   ro   rq   )r3   rq   rY   rn   rR   rq   ro   rq   )
rb   rq   rc   rq   r4   rq   rd   rr   ro   rn   )r>   
__module____qualname__r9   r?   rE   rI   rM   rP   rS   rV   rZ   r\   r^   rk   rm    r:   r8   r   r      s{    `Q`Q&`Q-4`Q>I`Q	`QD

L


)VPr:   r   N)
__future__r   typingr   r   common.utilsr   r-   r   rD   r	   utilsr
   markdown_it.mainr   r   ru   r:   r8   <module>r{      s-    " ) %   +wP wPr:   