ó
    "nj’G  ã                  óÆ  • S r SSKJr  SSKJr  SSKJr  SSKJrJ	r	J
r
JrJr  SSKJr  SS	KJr  SS
KrSS
KrSS
KrSSKJr  SS
KJs  Jr  SSKJrJrJrJr  \(       a  SSKJr  S"S#S jjrS$S jr \RB                  " S5      r"S%S jr#\
" S5      S&S j5       r$\
" S5      S'S(S jj5       r%S)S jr&S)S jr'S)S jr(S*S jr)S+S jr*S,S jr+S r, " S S\5      r- " S S \5      r.S! r/g
)-z‹
Add table of contents support to Python-Markdown.

See the [documentation](https://Python-Markdown.github.io/extensions/toc)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚTreeprocessor)ÚparseBoolValueÚAMP_SUBSTITUTEÚ
deprecatedÚHTML_PLACEHOLDER_REÚAtomicString)ÚUnescapeTreeprocessor)ÚRE_AMPN)Údeepcopy)ÚTYPE_CHECKINGÚAnyÚIteratorÚ
MutableSet)ÚMarkdownc                ó4  • U(       d8  [         R                  " SU 5      n U R                  SS5      R                  S5      n [        R
                  " SSU 5      R                  5       R                  5       n [        R
                  " SR                  U5      X5      $ )z+Slugify a string, to make it URL friendly. ÚNFKDÚasciiÚignorez[^\w\s-]Ú z[{}\s]+)	ÚunicodedataÚ	normalizeÚencodeÚdecodeÚreÚsubÚstripÚlowerÚformat)ÚvalueÚ	separatorÚunicodes      Ú9/usr/lib/python3/dist-packages/markdown/extensions/toc.pyÚslugifyr'   &   sr   € æä×%Ò% f¨eÓ4ˆØ—‘˜W hÓ/×6Ñ6°wÓ?ˆÜ�FŠF�;  EÓ*×0Ñ0Ó2×8Ñ8Ó:€EÜ�6Š6�*×#Ñ# IÓ.°	ÓAÐAó    c                ó   • [        XSS9$ )zOSlugify a string, to make it URL friendly while preserving Unicode characters. T)r%   )r'   )r#   r$   s     r&   Úslugify_unicoder*   0   s   € ä�5¨TÑ2Ð2r(   z^(.*)_([0-9]+)$c                ó
  • X;   d  U (       de  [         R                  U 5      nU(       a2  SUR                  S5      [        UR                  S5      5      S-   4-  n OSU S4-  n X;   a  M\  U (       d  Me  UR	                  U 5        U $ )z?Ensure id is unique in set of ids. Append '_1', '_2'... if not z%s_%dr   r   )Ú
IDCOUNT_REÚmatchÚgroupÚintÚadd)ÚidÚidsÚms      r&   Úuniquer4   8   so   € à
‹)ž2Ü×Ñ˜RÓ ˆÞØ˜AŸG™G A›J¬¨A¯G©G°A«J«¸Ñ(9Ð:Ñ:‰Bà˜B ˜7Ñ"ˆBð �)Ÿ2˜2ð ‡G�GˆB„KØ€Ir(   z0Use `render_inner_html` and `striptags` instead.c                ó  • / nU R                  5        HP  n[        U[        5      (       a'  UR                  [        R
                  " U5      5        M?  UR                  U5        MR     SR                  U5      R                  5       $ )zGet title name.r   )ÚitertextÚ
isinstancer   ÚappendÚhtmlÚunescapeÚjoinr    )ÚelÚtextÚcs      r&   Úget_namer?   D   s_   € ð €DØ�[‰[Ž]ˆÜ�aœ×&Ñ&Ø�K‰KœŸš aÓ(Ö)à�K‰K˜ŽNñ	 ð
 �7‰7�4‹=×ÑÓ Ð r(   zIUse `run_postprocessors`, `render_inner_html` and/or `striptags` instead.c                óD   ^^• SUU4S jjn[         R                  " X05      $ )zMExtract raw HTML from stash, reduce to plain text and swap with placeholder. c                ó(  >•  TR                   R                  [        U R                  S5      5         n[        R                  " SSU5      nT(       a  [        R                  " SSU5      nU$ ! [        [
        4 a    U R                  S5      s $ f = f)z%Substitute raw html with plain text. r   r   z	(<[^>]+>)r   z(&[\#a-zA-Z0-9]+;))Ú	htmlStashÚrawHtmlBlocksr/   r.   Ú
IndexErrorÚ	TypeErrorr   r   )r3   ÚrawÚresÚmdÚstrip_entitiess      €€r&   Ú	_html_subÚ#stashedHTML2text.<locals>._html_subT   s{   ø€ ð	Ø—,‘,×,Ñ,¬S°·±¸³«_Ñ=ˆCô �fŠf�\ 2 sÓ+ˆÞÜ—&’&Ð.°°CÓ8ˆCØˆ
øô œIÐ&ó 	Ø—7‘7˜1“:Òð	ús   ƒ1A- Á-!BÂB)r3   zre.Match[str]ÚreturnÚstr)r   r   )r=   rH   rI   rJ   s    `` r&   ÚstashedHTML2textrN   Q   s    ù€ ÷
ð 
ô ×"Ò" 9Ó3Ð3r(   c                ó8   • [        5       nUR                  U 5      $ )z*Unescape Markdown backslash escaped text. )r   r:   )r=   r>   s     r&   r:   r:   c   s   € äÓ€AØ�:‰:�dÓÐr(   c                óü  • U R                  S5      =nS:w  aW  U R                  SU5      =nS:w  a?  U SU  XS-   S  3n U R                  S5      =nS:w  a  U R                  SU5      =nS:w  a  M?  U R                  S5      =nS:w  aW  U R                  SU5      =nS:w  a?  U SU  XS-   S  3n U R                  S5      =nS:w  a  U R                  SU5      =nS:w  a  M?  S	R                  U R                  5       5      n U $ )
zKStrip HTML tags and return plain text. Note: HTML entities are unaffected. z<!--éÿÿÿÿz-->Né   Ú<Ú>r   Ú )Úfindr;   Úsplit)r=   ÚstartÚends      r&   Ú
strip_tagsrZ   i   s  € ð —I‘I˜fÓ%Ð%ˆ5¨"Ó
,¸¿¹À5È%Ó9PÐ2P°#ÐUWÓ1WØ�v˜�,� ¨1¡W X Ð/Ð0ˆð —I‘I˜fÓ%Ð%ˆ5¨"Ó
,¸¿¹À5È%Ó9PÐ2P°#ÐUWÕ1Wð —I‘I˜c“NÐ"ˆ5 rÓ
)°d·i±iÀÀUÓ6KÐ/K¨sÐPRÓ.RØ�v˜�,� ¨1¡W X Ð/Ð0ˆð —I‘I˜c“NÐ"ˆ5 rÓ
)°d·i±iÀÀUÓ6KÐ/K¨sÐPRÕ.Rð �8‰8�D—J‘J“LÓ!€DØ€Kr(   c                ó    • SU ;   a  [         R                  " SU 5      n SU ;   a  U R                  SS5      n SU ;   a  U R                  SS5      n U $ )zEscape character data. Ú&z&amp;rS   z&lt;rT   z&gt;)r   r   Úreplace)r=   s    r&   Úescape_cdatar^   w   sL   € à
ˆdƒ{ä�zŠz˜' 4Ó(ˆØ
ˆdƒ{Ø�|‰|˜C Ó(ˆØ
ˆdƒ{Ø�|‰|˜C Ó(ˆØ€Kr(   c                ój   • UR                    H  nUR                  U 5      n M     U R                  5       $ )z3Run postprocessors from Markdown instance on text. )ÚpostprocessorsÚrunr    )r=   rH   Úpps      r&   Úrun_postprocessorsrc   ƒ   s+   € à×ÔˆØ�v‰v�d‹|Šñ  à�:‰:‹<Ðr(   c                óº   • [        UR                  U 5      5      nUR                  S5      S-   nUR                  S5      nX#U R	                  5       n[        X!5      $ )z;Fully render inner html of an `etree` element as a string. rT   r   rS   )r:   Ú
serializerÚindexÚrindexr    rc   )r<   rH   r=   rX   rY   s        r&   Úrender_inner_htmlrh   Š   sV   € ô �B—M‘M "Ó%Ó&€Dð �J‰J�s‹O˜aÑ€EØ
�+‰+�cÓ
€CØ�cˆ?× Ñ Ó"€Dä˜dÓ'Ð'r(   c                ó  • [        U R                  S5      S5      c  U $ [        U 5      n U R                  S5       HÉ  nSn[	        U5       HŽ  nUR
                  S:X  aR  UR                  SS5      R                  S5      (       a,  UR                  =(       d    S U 3nUR                  U5        Me  U(       d  Mn  UR                  =(       d    S U 3Ul        SnM�     U(       d  M«  UR                  =(       d    S U 3Ul
        MË     U $ )zKRemove footnote references from a copy of the element, if any are present. ÚsupNz	.//sup/..r   r1   Úfnref)ÚnextÚiterr   ÚfindallÚreversedÚtagÚgetÚ
startswithÚtailÚremover=   )ÚrootÚparentÚ
carry_textÚchilds       r&   Úremove_fnrefsry   —   sæ   € ô ˆD�I‰I�eÓ˜dÓ#Ñ+ØˆÜ�D‹>€Dà—,‘,˜{Ö+ˆØˆ
Ü˜fÖ%ˆEà�y‰y˜EÓ! e§i¡i°°bÓ&9×&DÑ&DÀW×&MÑ&MØ %§
¡
× 0¨bÐ1°*°Ð>�
Ø—‘˜eÖ$ß�Ø %§
¡
× 0¨bÐ1°*°Ð>�”
Ø’
ñ &÷ ˆ:Ø#Ÿ[™[×.¨BÐ/°
¨|Ð<ˆFŽKñ ,ð €Kr(   c                ó`  • / n[        U 5      (       Ga  U R                  S5      n/ US'   US   /nUR                  U5        / nU (       aä  U R                  S5      nUS   n/ US'   XcS   :  aW  UR                  5         Sn[        U5       H  nXhS   ::  a  US-  nM    O   U(       a  USU*  nUSU*  nUR                  U5        XcS   :X  a!  U(       a  US   S   OUR                  U5        O6US   R                  U5        UR                  U5        UR                  U5        UnU (       a  Mä  U$ )a6  Given an unsorted list with errors and skips, return a nested one.

    [{'level': 1}, {'level': 2}]
    =>
    [{'level': 1, 'children': [{'level': 2, 'children': []}]}]

A wrong list is also converted:

    [{'level': 2}, {'level': 1}]
    =>
    [{'level': 2, 'children': []}, {'level': 1, 'children': []}]
r   ÚchildrenÚlevelrQ   r   N)ÚlenÚpopr8   ro   )	Útoc_listÚordered_listÚlastÚlevelsÚparentsÚtÚcurrent_levelÚto_popÚps	            r&   Únest_toc_tokensrˆ   ®   sC  € ð €LÜ
ˆ8‡}‚}à�|‰|˜A‹ˆØˆˆZÑØ�w‘-�ˆØ×Ñ˜DÔ!Øˆö Ø—‘˜Q“ˆAØ˜g™JˆMØˆAˆj‰Mð  b™zÓ)à—
‘
”ð �Ü! 'Ö*�AØ$¨'©
Ó2Ø !™šáñ	 +ö
 Ø# H f WÐ-�FØ% h¨ wÐ/�Gð —‘˜mÔ,ð  r¡
Ó*Þ,3�˜‘˜ZÒ(Ø"§F¡F¨1¥Ið
 �ZÑ ×'Ñ'¨Ô*Ø—‘˜tÔ$Ø—‘˜mÔ,ØˆD÷I ˆhðL Ðr(   c                  óv   ^ • \ rS rSrSrSU 4S jjrSS jrSS jrSS jrSS jr	SS jr
SS	 jrSS
 jrSrU =r$ )ÚTocTreeprocessoréï   z%Step through document and build TOC. c                óÖ  >• [         TU ]  U5        US   U l        US   U l        [	        US   5      S-
  U l        US   U l        US   U l        US   U l        US   U l	        [        US	   5      U l        US
   U l        [        US   S5      U l        U R                  c
  US   U l        US   U l        US   U l        [        US   S5      U l        ["        R$                  " S5      U l        [)        US   [*        5      (       aE  SUS   ;   a<  US   R-                  S5       Vs/ s H  n[	        U5      PM     snu  U l        U l        g SU l        [	        US   5      U l        g s  snf )NÚmarkerÚtitleÚ	baselevelr   r'   r$   Ú	toc_classÚtitle_classÚ
anchorlinkÚanchorlink_classÚ	permalinkFÚpermalink_classÚpermalink_titleÚpermalink_leadingz[Hh][123456]Ú	toc_depthÚ-)ÚsuperÚ__init__r�   rŽ   r/   Ú
base_levelr'   Úsepr�   r‘   r   Úuse_anchorsr“   Úuse_permalinksr•   r–   r—   r   ÚcompileÚ
header_rgxr7   rM   rW   Útoc_topÚ
toc_bottom)ÚselfrH   ÚconfigÚxÚ	__class__s       €r&   r›   ÚTocTreeprocessor.__init__ò   sm  ø€ Ü‰Ñ˜Ôà! (Ñ+ˆŒØ  ™/ˆŒ
Ü˜f [Ñ1Ó2°QÑ6ˆŒØ˜iÑ(ˆŒØ˜+Ñ&ˆŒØ Ñ,ˆŒØ & }Ñ 5ˆÔÜ!/°°|Ñ0DÓ!EˆÔØ%+Ð,>Ñ%?ˆÔÜ,¨V°KÑ-@À%ÓHˆÔØ×ÑÑ&Ø"(¨Ñ"5ˆDÔØ$*Ð+<Ñ$=ˆÔØ$*Ð+<Ñ$=ˆÔÜ.<¸VÐDWÑ=XÐZ_Ó.`ˆÔÜŸ*š* ^Ó4ˆŒÜ�f˜[Ñ)¬3×/Ñ/°C¸6À+Ñ;NÓ4NØ=CÀKÑ=P×=VÑ=VÐWZÔ=[Ó,\Ò=[¸¬S°®VÑ=[Ñ,\Ñ)ˆDŒL˜$�/àˆDŒLÜ! &¨Ñ"5Ó6ˆD�Oùò -]s   Ä%E&c              #  óÚ   #   • U H_  nU R                   R                  UR                  5      (       a  M/  UR                  S;  d  MA  X4v •  U R                  U5       Sh  v•N   Ma     g N	7f)z>Iterator wrapper to get allowed parent and child all at once. )ÚpreÚcodeN)r¡   r-   rp   Ú
iterparent)r¤   Únoderx   s      r&   r¬   ÚTocTreeprocessor.iterparent  sT   é € ó ˆEØ—?‘?×(Ñ(¨¯©×3Ó3¸¿	¹	ÈÕ8XØ�kÒ!ØŸ?™?¨5Ó1×1Ò1ò ñ 2ùs   ‚.A+´A+ÁA+ÁA)Á 
A+c                ó”  • U R                  U5       H³  u  p4SR                  UR                  5       5      R                  5       nU(       d  M;  UR                  (       d  MN  UR                  R                  5       U R
                  :X  d  Mx  [        U5      S:X  d  M‰  [        [        U5      5       H  nX6   U:X  d  M  X#U'     M±     Mµ     g)zReplace marker with elem. r   r   N)r¬   r;   r6   r    r=   r�   r}   Úrange)r¤   ru   Úelemr‡   r>   r=   Úis          r&   Úreplace_markerÚTocTreeprocessor.replace_marker  s‰   € à—o‘o dÖ+‰FˆQØ—7‘7˜1Ÿ:™:›<Ó(×.Ñ.Ó0ˆDÞÙð �v�v‰v˜!Ÿ&™&Ÿ,™,›.¨D¯K©KÕ7¼CÀ»FÀa½KÜœs 1›vž�AØ‘t˜q•yØ#˜!™Úó 'ò ,r(   c                ór   • [        UR                  S   5      U R                  -   nUS:”  a  SnSU-  Ul        g)z-Adjust header level according to base level. rQ   é   zh%dN)r/   rp   rœ   )r¤   r±   r|   s      r&   Ú	set_levelÚTocTreeprocessor.set_level+  s4   € ä�D—H‘H˜R‘LÓ! D§O¡OÑ3ˆØ�1‹9ØˆEØ˜5‘=ˆ�r(   c                óx  • [         R                  " S5      nUR                  Ul        SU-   UR                  S'   U R                  UR                  S'   SUl        U H  nUR                  U5        M     [        U5      (       a&  UR                  US   5        [        U5      (       a  M&  UR                  U5        g )NÚaÚ#ÚhrefÚclassr   r   )ÚetreeÚElementr=   Úattribr“   r8   r}   rt   )r¤   r>   Úelem_idÚanchorr±   s        r&   Ú
add_anchorÚTocTreeprocessor.add_anchor2  s�   € Ü—’˜sÓ#ˆØ—f‘fˆŒØ # g¡ˆ�‰�fÑØ!%×!6Ñ!6ˆ�‰�gÑØˆŒÛˆDØ�M‰M˜$Öñ ä�!�f‰fØ�H‰H�Q�q‘TŒNô �!�f‹fà	�‰�Õr(   c                óÆ  • [         R                  " S5      nU R                  SL a	  S[        -  OU R                  Ul        SU-   UR
                  S'   U R                  UR
                  S'   U R                  (       a  U R                  UR
                  S'   U R                  (       a+  UR                  Ul	        SUl        UR                  S	U5        g UR                  U5        g )
Nrº   Tz%spara;r»   r¼   r½   rŽ   r   r   )r¾   r¿   rŸ   r	   r=   rÀ   r•   r–   r—   rs   Úinsertr8   )r¤   r>   rÁ   r”   s       r&   Úadd_permalinkÚTocTreeprocessor.add_permalink>  s¸   € Ü—M’M #Ó&ˆ	à!×0Ñ0°DÒ8ð $¤nÒ4à#×2Ñ2ð 	Œð $'¨¡=ˆ	×Ñ˜Ñ Ø$(×$8Ñ$8ˆ	×Ñ˜Ñ!Ø××Ø(,×(<Ñ(<ˆI×Ñ˜WÑ%Ø×!×!ØŸV™VˆIŒNØˆAŒFØ�H‰H�Q˜	Õ"à�H‰H�YÕr(   c                óÐ  ^• [         R                  " S5      nU R                  UR                  S'   U R                  (       aR  [         R
                  " US5      nU R                  (       a  U R                  UR                  S'   U R                  Ul        SU4S jjmT" X5        SU R                  R                  ;   a(  U R                  R                  S   R                  U5        U$ )z&Return a string div given a toc list. Údivr½   Úspanc                óF  >• [         R                  " US5      nU  H‚  n[         R                  " US5      n[         R                  " US5      nUR                  SS5      Ul        SUR                  SS5      -   UR                  S'   US	   (       d  Mv  T" US	   U5        M„     U$ )
NÚulÚlirº   Únamer   r»   r1   r¼   r{   )r¾   Ú
SubElementrq   r=   rÀ   )r   rv   rÍ   ÚitemrÎ   ÚlinkÚbuild_etree_uls         €r&   rÓ   Ú6TocTreeprocessor.build_toc_div.<locals>.build_etree_ulZ  s”   ø€ Ü×!Ò! &¨$Ó/ˆBÛ �ä×%Ò% b¨$Ó/�Ü×'Ò'¨¨CÓ0�Ø ŸH™H V¨RÓ0�”	Ø&)¨D¯H©H°T¸2Ó,>Ñ&>�—‘˜FÑ#Ø˜
×#Ñ#Ù" 4¨
Ñ#3°RÖ8ñ !ð ˆIr(   Úprettify)r   Úlistrv   úetree.ElementrL   r×   )r¾   r¿   r�   rÀ   rŽ   rÐ   r‘   r=   rH   Útreeprocessorsra   )r¤   r   rÊ   ÚheaderrÓ   s       @r&   Úbuild_toc_divÚTocTreeprocessor.build_toc_divN  s©   ø€ ä�mŠm˜EÓ"ˆØ"Ÿn™nˆ�
‰
�7Ñð �:�:Ü×%Ò% c¨6Ó2ˆFØ××Ø)-×)9Ñ)9�—‘˜gÑ&ØŸ*™*ˆFŒK÷
	ñ 	�xÔ%à˜Ÿ™×/Ñ/Ó/Ø�G‰G×"Ñ" :Ñ.×2Ñ2°3Ô7àˆ
r(   c           	     ór  • [        5       nUR                  5        H3  nSUR                  ;   d  M  UR                  UR                  S   5        M5     / nUR                  5        GH(  n[	        UR
                  [        5      (       d  M%  U R                  R                  UR
                  5      (       d  MQ  U R                  U5        [        [        U5      U R                  5      n[        U5      nSUR                  ;  aG  [        U R                  [         R"                  " U5      U R$                  5      U5      UR                  S'   SnSUR                  ;   aM  ['        [#        UR                  S   5      U R                  5      n[)        [        U5      5      nUR                  S	 [+        UR
                  S   5      U R,                  :¼  a`  [+        UR
                  S   5      U R.                  ::  a:  UR1                  [+        UR
                  S   5      UR                  S   UUUS.5        U R2                  (       a  U R5                  X3R                  S   5        U R6                  S;  d  GM
  U R9                  X3R                  S   5        GM+     [;        U5      nU R=                  U5      nU R>                  (       a  U RA                  X5        U R                  RC                  U5      n	U R                  RD                   H  n
U
RG                  U	5      n	M     X@R                  l$        X�R                  l%        g )Nr1   r   údata-toc-labelrQ   )r|   r1   rÏ   r9   rÝ   )FN)&Úsetrm   rÀ   r0   r7   rp   rM   r¡   r-   r·   rh   ry   rH   rZ   r4   r'   r9   r:   r�   rc   r^   r/   r¢   r£   r8   rž   rÃ   rŸ   rÇ   rˆ   rÚ   r�   r³   re   r`   ra   Ú
toc_tokensÚtoc)r¤   ÚdocÚused_idsr<   rß   Ú	innerhtmlrÏ   Údata_toc_labelrÊ   rà   rb   s              r&   ra   ÚTocTreeprocessor.runm  sR  € ä“5ˆØ—(‘(–*ˆBØ�r—y‘yÕ Ø—‘˜RŸY™Y t™_Ö-ñ ð ˆ
Ø—(‘(—*ˆBÜ˜"Ÿ&™&¤#×&Ó&¨4¯?©?×+@Ñ+@ÀÇÁ×+HÓ+HØ—‘˜rÔ"Ü-¬m¸BÓ.?ÀÇÁÓI�	Ü! )Ó,�ð ˜rŸy™yÓ(Ü&,¨T¯\©\¼$¿-º-ÈÓ:MÈtÏxÉxÓ-XÐZbÓ&c�B—I‘I˜d‘Oà!#�Ø# r§y¡yÓ0Ü%7¼ÀÇÁÐK[ÑA\Ó8]Ð_c×_fÑ_fÓ%g�Nä'¬
°>Ó(BÓC�DàŸ	™	Ð"2Ð3ä�r—v‘v˜b‘z“? d§l¡lÓ2´s¸2¿6¹6À"¹:³È$Ï/É/Ó7YØ×%Ñ%Ü!$ R§V¡V¨B¡Z£Ø Ÿi™i¨™oØ $Ø )Ø*8ñ'ô ð ×#×#Ø—O‘O B¯	©	°$©Ô8Ø×&Ñ&¨mÖ;Ø×&Ñ& r¯9©9°T©?×;ñ= ô@ % ZÓ0ˆ
Ø× Ñ  Ó,ˆØ�;�;Ø×Ñ Ô)ð �g‰g× Ñ  Ó%ˆØ—'‘'×(Ô(ˆBØ—&‘&˜“+ŠCñ )à'�‰ÔØ�‰�r(   )r“   rœ   r¡   r�   r•   r—   r–   r�   r'   rŽ   r‘   r£   r�   r¢   rž   rŸ   )rH   r   r¥   zdict[str, Any])r­   r×   rL   z-Iterator[tuple[etree.Element, etree.Element]])ru   r×   r±   r×   rL   ÚNone)r±   r×   rL   ræ   )r>   r×   rÁ   rM   rL   ræ   )r   rÖ   rL   r×   )rá   r×   rL   ræ   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r›   r¬   r³   r·   rÃ   rÇ   rÚ   ra   Ú__static_attributes__Ú__classcell__©r§   s   @r&   rŠ   rŠ   ï   s3   ø† Ù0÷7ô2	2ôô*!ô
ô ô ÷>2ò 2r(   rŠ   c                  ó<   ^ • \ rS rSr\rU 4S jrS rSS jrSr	U =r
$ )ÚTocExtensioni¢  c                ó”   >• SS/SS/SS/SS/S	S
/SS/SS/SS/SS/S	S/SS/[         S/SS/SS/S.U l         [        TU ]  " S0 UD6  g )Nz[TOC]zeText to find and replace with Table of Contents. Set to an empty string to disable. Default: `[TOC]`.r   z;Title to insert into TOC `<div>`. Default: an empty string.Útoctitlez2CSS class used for the title. Default: `toctitle`.rà   z4CSS class(es) used for the link. Default: `toclink`.Fz7True if header should be a self link. Default: `False`.Útoclinkz5CSS class(es) used for the link. Defaults: `toclink`.r   zPTrue or link text if a Sphinx-style permalink should be added. Default: `False`.Ú
headerlinkz7CSS class(es) used for the link. Default: `headerlink`.zPermanent linkz<Title attribute of the permalink. Default: `Permanent link`.z\True if permalinks should be placed at start of the header, rather than end. Default: False.Ú1z%Base level for headers. Default: `1`.zFFunction to generate anchors based on header text. Default: `slugify`.r™   zWord separator. Default: `-`.r¶   a'  Define the range of section levels to include in the Table of Contents. A single integer (b) defines the bottom section level (<h1>..<hb>) only. A string consisting of two digits separated by a hyphen in between (`2-5`) defines the top (t) and the bottom (b) (<ht>..<hb>). Default: `6` (bottom).)r�   rŽ   r‘   r�   r’   r“   r”   r•   r–   r—   r�   r'   r$   r˜   © )r'   r¥   rš   r›   )r¤   Úkwargsr§   s     €r&   r›   ÚTocExtension.__init__¦  sÕ   ø€ ð ð$ðð ÐQðð ÐPðð ÐMðð ÐPðð ÐRð!ð Ðeðð ÐWð ð !Ð"`ð ð Ønð"ð ÐFÐGäÐaðð Ð>Ð?àð)ðñO.
ˆŒð^ 	/ä‰ÒÑ"˜6Ó"r(   c                óÊ   • UR                  U 5        Xl        U R                  5         U R                  XR	                  5       5      nUR
                  R                  USS5        g)z$Add TOC tree processor to Markdown. rà   é   N)ÚregisterExtensionrH   ÚresetÚTreeProcessorClassÚ
getConfigsrØ   Úregister)r¤   rH   Útocexts      r&   ÚextendMarkdownÚTocExtension.extendMarkdownÚ  sM   € à
×Ñ˜TÔ"ØŒØ�
‰
ŒØ×(Ñ(¨¯_©_Ó->Ó?ˆØ
×Ñ×"Ñ" 6¨5°!Õ4r(   c                óH   • SU R                   l        / U R                   l        g )Nr   )rH   rà   rß   )r¤   s    r&   rü   ÚTocExtension.resetâ  s   € Øˆ�‰ŒØˆ�‰Õr(   )r¥   rH   )rL   ræ   )rç   rè   ré   rê   rŠ   rý   r›   r  rü   rì   rí   rî   s   @r&   rð   rð   ¢  s   ø† à)Ðõ2#òh5÷ ò  r(   rð   c                 ó   • [        S0 U D6$ )Nrö   )rð   )r÷   s    r&   ÚmakeExtensionr  ç  s   € ÜÑ!˜&Ñ!Ð!r(   )F)r#   rM   r$   rM   r%   ÚboolrL   rM   )r#   rM   r$   rM   rL   rM   )r1   rM   r2   zMutableSet[str]rL   rM   )r<   r×   rL   rM   )T)r=   rM   rH   r   rI   r  rL   rM   )r=   rM   rL   rM   )r=   rM   rH   r   rL   rM   )r<   r×   rH   r   rL   rM   )ru   r×   rL   r×   )0rë   Ú
__future__r   r   r   rØ   r   Úutilr   r	   r
   r   r   r   Úserializersr   r   r9   r   Úcopyr   Úxml.etree.ElementTreer¾   ÚElementTreeÚtypingr   r   r   r   Úmarkdownr   r'   r*   r    r,   r4   r?   rN   r:   rZ   r^   rc   rh   ry   rˆ   rŠ   rð   r  rö   r(   r&   Ú<module>r     sÝ   ðñõ #å Ý *ß `Õ `Ý 2Ý  Û 	Û Û Ý ß %Ð %ß ;Ó ;æÝ!öBô3ð
 �ZŠZÐ*Ó+€
ô	ñ Ð>Ó?ó	!ó @ð	!ñ ÐWÓXõ4ó Yð4ô"ôô	ôô
(ôò.>ôBp�}ô pôfB �9ô B óJ"r(   