
    c                     X    d dl mZ d dlmZmZ d dlmZ defdZdededed	e	fd
Z
d ZdS )    )
MarkdownIt)
escapeHtmlunescapeAll)
StateBlockmdc                     | j         j                            ddt          dg di           |                     dt
                     dS )zThis plugin directly mimics regular fences, but with `:` colons.

    Example::

        :::name
        contained text
        :::

    fencecolon_fencealt)	paragraph	reference
blockquotelistfootnote_defN)blockrulerbefore_ruleadd_render_rule_render)r   s    ;lib/python3.11/site-packages/mdit_py_plugins/colon_fence.pycolon_fence_pluginr      sV     HN	PPPQ	   }g.....    state	startLineendLinesilentc                    d}| j         |         | j        |         z   }| j        |         }| j        |         | j        z
  dk    rdS |dz   |k    rdS | j        |         }|dk    rdS |}|                     ||          }||z
  }	|	dk     rdS | j        ||         }
| j        ||         }|rdS |}	 |dz  }||k    rn| j         |         | j        |         z   x}}| j        |         }||k     r| j        |         | j        k     rnk| j        |         |k    rf| j        |         | j        z
  dk    r|                     ||          }||z
  |	k     r|                     |          }||k     rd}	 | j        |         }	||rdndz   | _	        | 
                    dd	d          }||_        |                     |dz   ||	d          |_        |
|_        || j	        g|_        dS )
NF      :   T   r   r
   code)bMarkstShifteMarkssCount	blkIndentsrcCharCode	skipCharssrc
skipSpaceslinepushinfogetLinescontentmarkupmap)r   r   r   r   haveEndMarkerposmaximummarkermemlengthr2   paramsnextLinetokens                 r   r   r      s]   M
,y
!EL$;
;Cl9%G |I0A5 u
Qw us#F ~ u C
//#v
&
&C3YFz uYs3wFYs7{#F  t H%Aw 	 L*U\(-CCCc,x(= 	U\(3eoE 	 S!V+ 	<!EO3q8 	ooc6** 9v 	 s##= 	 \)$F-6QQQ7EJJJ}fa00EEJNN9q=(FDIIEMELEJ'EI4r   c                     ||         }|j         r&t          |j                                                   nd}t          |j                  }d}|r|                                d         }d|rd| dndz   dz   |z   dz   S )N r   z
<pre><codez class="block-z" >z</code></pre>
)r/   r   stripr   r1   split)	selftokensidxoptionsenvr<   r/   r1   
block_names	            r   r   r   u   s    3KE.3j@;uz""((***bD''GJ %ZZ\\!_
 	.8@*J****b	B
	 	 		r   N)markdown_itr   markdown_it.common.utilsr   r   markdown_it.rules_blockr   r   intboolr   r    r   r   <module>rN      s    " " " " " " < < < < < < < < . . . . . ./: / / / /(X X Xc X4 X X X Xv    r   