§
    ŒŸjŒ  ã                   ó$  — d dl mZmZmZmZmZmZmZmZ ddl	m
Z
 ddlmZmZ erddlmZ 	 	 	 ddd	d
ededeeeeef         egef                  ddf
d„Zddd	deeef         dee         deeeef         fd„Zdeeeeef                  defd„ZdS )é    )ÚTYPE_CHECKINGÚAnyÚCallableÚDictÚIterableÚListÚOptionalÚTupleé   )Ú
BlockState)Ú	striptagsÚescape)ÚMarkdowné   NÚmdr   Ú	min_levelÚ	max_levelÚ
heading_idÚreturnc                 óª   ‡‡‡— ‰€+dt           t          t          f         dt          dt          fd„Šdˆˆˆfd
„}| j                             |¦  «         dS )a%  Add a hook to save toc items into ``state.env``. This is
    usually helpful for doc generator::

        import mistune
        from mistune.toc import add_toc_hook, render_toc_ul

        md = mistune.create_markdown(...)
        add_toc_hook(md)

        html, state = md.parse(text)
        toc_items = state.env['toc_items']
        toc_html = render_toc_ul(toc_items)

    :param md: Markdown instance
    :param min_level: min heading level
    :param max_level: max heading level
    :param heading_id: a function to generate heading_id
    NÚtokenÚindexr   c                 ó,   — dt          |dz   ¦  «        z   S )NÚtoc_r   )Ústr)r   r   s     úX/var/www/finuniver-perm.ru/html/student/venv/lib/python3.11/site-packages/mistune/toc.pyr   z add_toc_hook.<locals>.heading_id$   s   € Ø�C ¨¡	™NœNÑ*Ð*ó    r   r   Ústater   c                 óT  •— g }|j         D ]A}|d         dk    r3|d         d         }‰	|cxk    r‰k    rn Œ,|                     |¦  «         ŒBg }t          |¦  «        D ]?\  }} ‰||¦  «        |d         d<   |                     t          | ||¬¦  «        ¦  «         Œ@||j        d<   d S )NÚtypeÚheadingÚattrsÚlevelÚid)ÚparentÚ	toc_items)ÚtokensÚappendÚ	enumerateÚnormalize_toc_itemÚenv)
r   r   ÚheadingsÚtokr#   r&   Úir   r   r   s
          €€€r   Útoc_hookzadd_toc_hook.<locals>.toc_hook'   sâ   ø€ Øˆà”<ð 	)ð 	)ˆCØ�6Œ{˜iÒ'Ð'Ø˜Gœ WÔ-�Ø Ð2Ð2Ò2Ð2¨Ò2Ð2Ð2Ð2Ð2Ø—O’O CÑ(Ô(Ð(øàˆ	Ý Ñ)Ô)ð 	Hð 	H‰FˆAˆsØ!+ ¨C°Ñ!3Ô!3ˆC�ŒL˜ÑØ×ÒÕ/°°CÀÐFÑFÔFÑGÔGÐGÐGð "+ˆŒ	�+ÑÐÐr   )r   r   r   r   r   N)r   r   r   ÚintÚbefore_render_hooksr(   )r   r   r   r   r/   s    ``` r   Úadd_toc_hookr2   
   s…   øøø€ ð0 Ðð	+�d¥3­ 8œnð 	+µSð 	+½Sð 	+ð 	+ð 	+ð 	+ð+ð +ð +ð +ð +ð +ð +ð +ð" Ô×!Ò! (Ñ+Ô+Ð+Ð+Ð+r   r   r%   c                 óö   — |d         }|                       ||r|j        ni ¦  «        }| j        €J ‚|                      |t          ¦   «         ¦  «        }t	          |¦  «        }|d         }|d         |d         |fS )NÚtextr"   r#   r$   )Úinliner+   Úrendererr   r   )r   r   r%   r4   r'   Úhtmlr"   s          r   r*   r*   ;   sw   € Ø�Œ=€DØ�YŠY�t¨6Ð9˜VœZ˜Z°rÑ:Ô:€FØŒ;Ð"Ð"Ð"Ø�;Š;�v�z™|œ|Ñ,Ô,€DÝ�T‰?Œ?€DØ�'ŒN€EØ�Œ>˜5 œ;¨Ð,Ð,r   Útocc                 ó  — | sdS d}g }| D �]4\  }}}d                      t          |¦  «        |¦  «        }|s|d|z   z  }|                     |¦  «         ŒJ||d         k    r	|d|z   z  }Œ_||d         k    r|d|z   z  }|                     |¦  «         Œ‰|                     ¦   «          |rx|                     ¦   «         }||k    r|d|z   z  }|                     |¦  «         n]||k    r3|d|z   z  }|                     |¦  «         |                     |¦  «         n$|dz  }|°x|                     |¦  «         |d|z   z  }�Œ6t	          |¦  «        d	k    r,|dz  }|                     ¦   «          t	          |¦  «        d	k    °,|sdS d
|z   dz   S )ah  Render a <ul> table of content HTML. The param "toc" should
    be formatted into this structure::

        [
          (level, id, text),
        ]

    For example::

        [
          (1, 'toc-intro', 'Introduction'),
          (2, 'toc-install', 'Install'),
          (2, 'toc-upgrade', 'Upgrade'),
          (1, 'toc-license', 'License'),
        ]
    Ú z<a href="#{}">{}</a>z<li>éÿÿÿÿz
</li>
<li>z

<ul>
<li>z</li>
</ul>
</li>
<li>z</li>
</ul>
r   z<ul>
)Úformatr   r(   ÚpopÚlen)r8   ÚsÚlevelsr#   Úkr4   ÚitemÚ
last_levels           r   Úrender_toc_ulrD   E   sì  € ð" ð Øˆrà
€AØ€FØð *ñ *‰ˆˆq�$Ø%×,Ò,­V°A©Y¬Y¸Ñ=Ô=ˆØð 	*Ø�˜$‘ÑˆAØ�MŠM˜%Ñ Ô Ð Ð Ø�f˜R”jÒ Ð Ø� Ñ%Ñ%ˆAˆAØ�V˜B”ZÒÐØ� $Ñ&Ñ&ˆAØ�MŠM˜%Ñ Ô Ð Ð à�JŠJ‰LŒLˆLØð *Ø#ŸZšZ™\œ\�
Ø˜JÒ&Ð&ØÐ4°tÑ;Ñ;�AØ—M’M %Ñ(Ô(Ð(ØØ˜ZÒ'Ð'Ø˜¨Ñ-Ñ-�AØ—M’M *Ñ-Ô-Ð-Ø—M’M %Ñ(Ô(Ð(ØàÐ)Ñ)�Að ð *ð —’˜eÑ$Ô$Ð$Ø�] TÑ)Ñ)�ùå
ˆf‰+Œ+˜Š/ˆ/Ø	ÐÑˆØ�
Š
‰Œˆõ ˆf‰+Œ+˜Š/ˆ/ð ð ØˆrØ�a‰<Ð*Ñ*Ð*r   )r   r   N)N)Útypingr   r   r   r   r   r   r	   r
   Úcorer   Úutilr   r   Úmarkdownr   r0   r   r2   r*   rD   © r   r   ú<module>rJ      s�  ðØ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ VÐ Và Ð Ð Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #àð #Ø"Ð"Ð"Ð"Ð"Ð"ð
 ØØAEð	.,ð .,Øð.,àð.,ð ð.,ð ˜ 4¨¨S¨¤>°3Ð"7¸Ð"<Ô=Ô>ð	.,ð
 
ð.,ð .,ð .,ð .,ðb-ð -˜:ð -¨d°3¸°8¬nð -ÀhÈsÄmð -Ð_dÐehÐjmÐorÐerÔ_sð -ð -ð -ð -ð9+�x  c¨3° mÔ 4Ô5ð 9+¸#ð 9+ð 9+ð 9+ð 9+ð 9+ð 9+r   