U
    Sh                     @   sL   d dl Z ddlmZmZmZ ddlmZ e eZ	ee
e
eedddZdS )	    N   )
charCodeAtisSpacenormalizeReference   )
StateBlock)state	startLine_endLinesilentreturnc                 C   s  t d| ||| d}| j| | j|  }| j| }|d }| |rJdS | j| dkr\dS ||k r| j| dkr| j|d  dkr|d |krdS | j|d  dkrdS q|d7 }q\| j}| jj	j
d	}	| j}
d	| _||k rf| |sf| j| | j d
kr|d7 }q| j| dk r(|d7 }qd}|	D ] }|| ||dr0d} qRq0|r\qf|d7 }q| ||| jd }t|}d }d}||k rt||}|dkrdS |dkr|}qnH|dkr|d7 }n4|dkr
|d7 }||k r
t||dkr
|d7 }|d7 }q|d ks>|dk s>t||d dkrBdS |d }||k rt||}|dkrr|d7 }nt|rnq|d7 }qJ| jj|||}|jsdS | j|j}| j|sdS |j}||j7 }|}|}|}||k r,t||}|dkr|d7 }nt|r,nq,|d7 }q| jj|||}||k rr||krr|jrr|j}|j}||j7 }nd}|}|}||k rt||}t|sq|d7 }q~||k rt||dkr|rd}|}|}||k rt||}t|sq|d7 }q||k r$t||dkr$dS t|d| }|s>dS |rHdS d| jkr^i | jd< || d | _ | jj!"ddr| #ddd}||||d| d|_$|| j g|_%|| jd kr|||| j gd| jd |< n$| j&dg '||||| j gd |
| _dS )Nz"entering reference: %s, %s, %s, %sr   r   F[]\:	reference   T[   ]   
   \   :   r    Z
referencesZinline_definitionsZ
definition)idtitleurllabel)r   hrefmapZduplicate_refs)r   r   r   r   )(LOGGERdebugZbMarksZtShiftZeMarksZis_code_blocksrcZlineMaxmdblockZrulerZgetRulesZ
parentTypeZisEmptyZsCountZ	blkIndentZgetLinesstriplenr   r   ZhelpersZparseLinkDestinationokZnormalizeLinkstrZvalidateLinkposlinesZparseLinkTitler   envlineoptionsgetpushmetar   
setdefaultappend)r   r	   r
   r   r)   r(   maximumZnextLineZendLineZterminatorRulesZoldParentType	terminateZterminatorRulestringZlabelEndchresr   Z
destEndPosZdestEndLineNostartr   r   token r9   T/root/rtd-docs/venv/lib/python3.8/site-packages/markdown_it/rules_block/reference.pyr   	   s*       

 























 




	r   )loggingZcommon.utilsr   r   r   Zstate_blockr   	getLogger__name__r   intboolr   r9   r9   r9   r:   <module>   s   
