
    hL                         S r SSKJrJrJrJr  SSKJrJr  SSK	J
r
Jr  \(       a  SSKJr  SSKJrJr  SS	KJr   " S
 S\5      rSSSS\S\S\S\4
S jjrS\\\4   S\S\S\4S jrg)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            
           \ rS rSrSS\S\SS4S jjrS\\\4   S\S\4S	 jr	S
SS\
\   SSS\\\4   4S jrSS jrS\SSSS4S jrSrg)TableOfContents   	min_level	max_levelreturnNc                     Xl         X l        g )N)r   r   )selfr   r   s      iC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/directives/toc.py__init__TableOfContents.__init__   s    ""    tokenindexc                 $    S[        US-   5      -   $ )Ntoc_r
   )str)r   r   r   s      r   generate_heading_id#TableOfContents.generate_heading_id    s    EAI&&r   blockr   mstater   c                    U R                  U5      nU R                  U5      nU(       a  [        U5      nSU;   n[        USU R                  5      n[        USU R
                  5      n	XR                  :  a  [        SU R                   35      eXR
                  :  a  [        SU R
                   35      eX:  a  [        S5      eOSnU R                  nU R
                  n	UU	US.n
S	U=(       d    S
U
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   parseTableOfContents.parse#   s      #$$Q'WI!Y.H(KPI(KPI>>) #A$..AQ!RSS>>) #A$..AQ!RSS$ !Z[[ % HII #" 

 u{UCCr   mdr   c                    / n/ nUR                    H;  nUS   S:X  a  UR                  U5        M  US   S:X  d  M*  UR                  U5        M=     U(       a  / n[        U5       H6  u  puU R                  XW5      US   S'   UR                  [	        X5      5        M8     U HA  nUS   S   n	US   S   n
U Vs/ s H  oUS   s=::  a  U
::  d  M  O  M  UPM     nnXS   S'   MC     g g s  snf )	Nr+   r)   headingr-   idr   r   r   )tokensappend	enumerater"   r   )r   r8   r&   sectionsheadingstok	toc_itemsisec_min_maxitemr)   s                r   toc_hookTableOfContents.toc_hook=   s    <<C6{e#$V	)$	   I#H-%)%=%=c%EGT"  !3B!<= .  7|K07|K0(1M	T!W5L5Lt5Lt	M&)GU#	    Ns   7C'C'C'	directivec                     UR                   (       a}  UR                   R                  S:X  ab  UR                  SU R                  5        UR                  R                  U R                  5        UR                   R                  S[        5        g g g )Nhtmlr)   )rendererNAMEregisterr6   before_render_hooksr=   rH   render_html_toc)r   rJ   r8   s      r   __call__TableOfContents.__call__T   sa    ;;2;;++v5udjj1""))$--8KK  8	 6;r   )r   r   )r
      )r8   r   r&   r   r   N)__name__
__module____qualname____firstlineno__intr   r   r!   r   r"   r   r6   rH   r   rR   __static_attributes__ r   r   r   r      s    ## #c #$ #'c3h ' ' 'D= DU3Z D DQUVY[^V^Q_ D4*.9- 9Z 9D 9r   r   rM   r   r3   r(   r-   r   c                 p    U(       d  Sn[        US   5      nSnU(       d  US-  nUSU-   S-   -  nXT-   S-   $ )NzTable of Contentsr)   z<details class="toc"z openz>
<summary>z</summary>
z</details>
)r	   )rM   r3   r(   r-   contentrL   s         r   rQ   rQ   \   sJ    #E%L)G!DNU"^33D>N**r   r4   namedefaultc                     U R                  U5      nU(       d  U$  [        U5      $ ! [        [        4 a    [        SU S35      ef = f)N"z" option MUST be integer)getrY   r2   	TypeError)r4   r^   r_   levels       r   r1   r1   h   sP    KKE=5z	" =1TF":;<<=s	   
'  AN)F)__doc__typingr   r   r   r   r)   r   r	   _baser   r   block_parserr   corer   r   markdownr   r   r!   boolrQ   r1   r[   r   r   <module>rl      s    3 2 3 1*/#>9o >9B	+n 	+S 	+D 	+[^ 	+cf 	+=d38n =C =# =# =r   