§
    ŒŸjZ  ã                   óÐ   — d Z ddlmZmZmZmZ ddl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dedededef
d„Zdeeef         dededefd„ZdS )aP  
TOC directive
~~~~~~~~~~~~~

The TOC directive syntax looks like::

    .. toc:: Title
       :min-level: 1
       :max-level: 3

"Title", "min-level", and "max-level" option can be empty. "min-level"
and "max-level" are integers >= 1 and <= 6, which define the allowed
heading levels writers want to include in the table of contents.
é    )ÚTYPE_CHECKINGÚAnyÚDictÚMatché   )Únormalize_toc_itemÚrender_toc_ulé   )ÚBaseDirectiveÚDirectivePlugin)ÚBlockParser)ÚBaseRendererÚ
BlockState)ÚMarkdownc            
       ó˜   — e Zd Zddededdfd„Zdeeef         d	edefd
„Zddde	e         dddeeef         fd„Z
dd„Zdeddddfd„ZdS )ÚTableOfContentsr
   é   Ú	min_levelÚ	max_levelÚreturnNc                 ó"   — || _         || _        d S )N)r   r   )Úselfr   r   s      úc/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/mistune/directives/toc.pyÚ__init__zTableOfContents.__init__   s   € Ø"ˆŒØ"ˆŒˆˆó    ÚtokenÚindexc                 ó,   — dt          |dz   ¦  «        z   S )NÚtoc_r
   )Ústr)r   r   r   s      r   Úgenerate_heading_idz#TableOfContents.generate_heading_id    s   € Ø�˜E A™I™œÑ&Ð&r   Úblockr   ÚmÚstater   c                 óÈ  — |                       |¦  «        }|                      |¦  «        }|r™t          |¦  «        }d|v }t          |d| j        ¦  «        }t          |d| j        ¦  «        }	|| j        k     rt          d| j        › �¦  «        ‚|	| j        k    rt          d| j        › �¦  «        ‚||	k    rt          d¦  «        ‚nd}| j        }| j        }	||	|dœ}
d	|pd
|
dœS )NÚcollapsez	min-levelz	max-levelz"min-level" option MUST be >= z"max-level" option MUST be <= z7"min-level" option MUST be less than "max-level" optionF)r   r   r&   ÚtocÚ )ÚtypeÚtextÚattrs)Úparse_titleÚparse_optionsÚdictÚ_normalize_levelr   r   Ú
ValueError)r   r"   r#   r$   ÚtitleÚoptionsÚ	d_optionsr&   r   r   r+   s              r   ÚparsezTableOfContents.parse#   s  € Ø× Ò  Ñ#Ô#ˆØ×$Ò$ QÑ'Ô'ˆØð 	'Ý˜W™œˆIØ! YÐ.ˆHÝ(¨°KÀÄÑPÔPˆIÝ(¨°KÀÄÑPÔPˆIØ˜4œ>Ò)Ð)Ý Ð!RÀ$Ä.Ð!RÐ!RÑSÔSÐSØ˜4œ>Ò)Ð)Ý Ð!RÀ$Ä.Ð!RÐ!RÑSÔSÐSØ˜9Ò$Ð$Ý Ð!ZÑ[Ô[Ð[ð %ð ˆHØœˆIØœˆIð #Ø"Ø ð
ð 
ˆð
  u {°¸UÐCÐCÐCr   Úmdr   c                 óà  ‡
‡— g }g }|j         D ]E}|d         dk    r|                     |¦  «         Œ$|d         dk    r|                     |¦  «         ŒF|r–g }t          |¦  «        D ]I\  }}|                      ||¦  «        |d         d<   |                     t	          |||¬¦  «        ¦  «         ŒJ|D ]:}|d         d         Š|d         d         Š
ˆ
ˆfd	„|D ¦   «         }	|	|d         d<   Œ9d S d S )
Nr)   r'   Úheadingr+   Úid)Úparentr   r   c                 ó@   •— g | ]}‰|d          cxk    r‰k    ¯n n|‘ŒS )r   © )Ú.0ÚitemÚ_maxÚ_mins     €€r   ú
<listcomp>z,TableOfContents.toc_hook.<locals>.<listcomp>Q   s>   ø€ ÐMÐMÐM °T¸TÀ!¼WÐ5LÐ5LÒ5LÐ5LÈÒ5LÐ5LÐ5LÐ5LÐ5L�tÐ5LÐ5LÐ5Lr   )ÚtokensÚappendÚ	enumerater!   r   )r   r5   r$   ÚsectionsÚheadingsÚtokÚ	toc_itemsÚiÚsecr'   r>   r?   s             @@r   Útoc_hookzTableOfContents.toc_hook=   s@  øø€ ØˆØˆà”<ð 	%ð 	%ˆCØ�6Œ{˜eÒ#Ð#Ø—’ Ñ$Ô$Ð$Ð$Ø�V” 	Ò)Ð)Ø—’ Ñ$Ô$Ð$øàð 	*ØˆIå# HÑ-Ô-ð Lð L‘��3Ø%)×%=Ò%=¸cÀ1Ñ%EÔ%E��G”˜TÑ"Ø× Ò Õ!3°B¸ÀEÐ!JÑ!JÔ!JÑKÔKÐKÐKàð *ð *�Ø˜7”| KÔ0�Ø˜7”| KÔ0�ØMÐMÐMÐMÐM¨	ÐMÑMÔM�Ø&)��G”˜UÑ#Ð#ð	*ð 	*ð*ð *r   Ú	directivec                 óð   — |j         rl|j         j        dk    r^|                     d| j        ¦  «         |j                             | j        ¦  «         |j                              dt          ¦  «         d S d S d S )NÚhtmlr'   )ÚrendererÚNAMEÚregisterr4   Úbefore_render_hooksrB   rJ   Úrender_html_toc)r   rK   r5   s      r   Ú__call__zTableOfContents.__call__T   sz   € ØŒ;ð 	9˜2œ;Ô+¨vÒ5Ð5à×Ò˜u d¤jÑ1Ô1Ð1ØÔ"×)Ò)¨$¬-Ñ8Ô8Ð8ØŒK× Ò  ­Ñ8Ô8Ð8Ð8Ð8ð		9ð 	9Ð5Ð5r   )r
   r   )r5   r   r$   r   r   N)Ú__name__Ú
__module__Ú__qualname__Úintr   r   r    r   r!   r   r4   rJ   r   rS   r;   r   r   r   r      sù   € € € € € ð#ð # #ð #°cð #À$ð #ð #ð #ð #ð'¨¨c°3¨h¬ð 'Àð 'Èð 'ð 'ð 'ð 'ðD˜=ð D¨U°3¬Zð DÀð DÐQUÐVYÐ[^ÐV^ÔQ_ð Dð Dð Dð Dð4*ð *ð *ð *ð.9 -ð 9°Zð 9ÀDð 9ð 9ð 9ð 9ð 9ð 9r   r   FrN   r   r1   r&   r+   r   c                 ól   — |sd}t          |d         ¦  «        }d}|s|dz  }|d|z   dz   z  }||z   dz   S )NzTable of Contentsr'   z<details class="toc"z openz>
<summary>z</summary>
z</details>
)r	   )rN   r1   r&   r+   ÚcontentrM   s         r   rR   rR   \   sY   € Øð $Ø#ˆÝ˜E %œLÑ)Ô)€Gà!€DØð Ø�‰ˆØˆN˜UÑ" ^Ñ3Ñ3€DØ�'‰>˜NÑ*Ð*r   r2   ÚnameÚdefaultc                 ó¤   — |                       |¦  «        }|s|S 	 t          |¦  «        S # t          t          f$ r t          d|› d�¦  «        ‚w xY w)Nú"z" option MUST be integer)ÚgetrW   r0   Ú	TypeError)r2   rZ   r[   Úlevels       r   r/   r/   h   sk   € Ø�KŠK˜ÑÔ€EØð Øˆð=Ý�5‰zŒzÐøÝ�	Ð"ð =ð =ð =ÝÐ;˜TÐ;Ð;Ð;Ñ<Ô<Ð<ð=øøøs	   ›* ª%AN)F)Ú__doc__Útypingr   r   r   r   r'   r   r	   Ú_baser   r   Úblock_parserr   Úcorer   r   Úmarkdownr   r   r    ÚboolrR   r/   r;   r   r   ú<module>rh      sT  ððð ð 3Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1àð $Ø*Ð*Ð*Ð*Ð*Ð*Ø/Ð/Ð/Ð/Ð/Ð/Ð/Ð/Ø#Ð#Ð#Ð#Ð#Ð#ð>9ð >9ð >9ð >9ð >9�oñ >9ô >9ð >9ðB	+ð 	+˜nð 	+°Sð 	+ÀDð 	+Ð[^ð 	+Ðcfð 	+ð 	+ð 	+ð 	+ð=˜d 3¨ 8œnð =°Cð =À#ð =È#ð =ð =ð =ð =ð =ð =r   