
    Ph'	                         d dl Z d dlmZmZmZmZmZmZ ddlm	Z	m
Z
 erddlmZ ddlmZmZ ddlmZ  G d	 d
e
      ZdddededefdZy)    N)TYPE_CHECKINGAnyDictListMatchUnion   )BaseDirectiveDirectivePlugin   )BlockParser)BaseRenderer
BlockState)Markdownc                   b    e Zd Zdddee   dddeeeef   eeeef      f   fdZ	de
d	d
ddfdZy)Includeblockr   mstater   returnc                 n   |j                   j                  d      }|sdddS d}| j                  |      }|rt        |      }d|v r|d   }ni }| j	                  |      }t
        j                  j                  t
        j                  j                  |      |      }	t
        j                  j                  |	      }	|	|k(  rdd|z   dS t
        j                  j                  |	      sdd|z   dS t        |	d	      5 }
|
j                         j                  |      }d d d        t
        j                  j                  |      d
   }|dv rM|j                         }|	|j                   d<   |j!                         |j#                  |       |j$                  S |dv rddS |	|d<   d|dS # 1 sw Y   xY w)N__file__block_errorzMissing source file)typerawzutf-8encodingzCould not include self: zCould not find file: rbr	   >   .md.mkd	.markdown>   .htm.html.xhtml
block_htmlfilepathinclude)r   r   attrs)envgetparse_optionsdictparse_titleospathjoindirnamenormpathisfileopenreaddecodesplitext	state_clsprocessparsetokens)selfr   r   r   source_filer   optionsr'   relpathdestfcontentext	new_states                 T/var/www/html/saasai/venv/lib/python3.12/site-packages/mistune/directives/include.pyr9   zInclude.parse   s    iimmJ/)2GHH$$Q'MEU" ,E""1%ww||BGGOOK8'Bww%;%1G; 
 ww~~d#%.8 
 $ffhooh/G  ggw'*..)I(,IMM*%g&KK	"###//(99 j
 	
 s   < F++F4	directivemdr   Nc                     |j                  d| j                         |j                  r;|j                  j                  dk(  r!|j                  j                  dt               y y y )Nr&   html)registerr9   rendererNAMErender_html_include)r;   rE   rF   s      rD   __call__zInclude.__call__B   sJ    9djj1;;2;;++v5KK  ,?@ 6;    )__name__
__module____qualname__r   strr   r   r   r   r9   r
   rM    rN   rD   r   r      si    3
"3
',Sz3
:F3
	tCH~tDcN33	43
jA- AZ AD ArN   r   rJ   r   textr'   r   c                     d|z   dz   S )Nz <pre class="directive-include">
z</pre>
rS   )rJ   rT   r'   s      rD   rL   rL   H   s    .5
BBrN   )r-   typingr   r   r   r   r   r   _baser
   r   block_parserr   corer   r   markdownr   r   rR   rL   rS   rN   rD   <module>r[      sR    	 ? ? 1*/#9Ao 9AxC. C Cc Cc CrN   