ó
    "njÕ  ã                  óŽ   • S r SSKJr  SSKJr  SSKJr  SSKJs  J	r  SSK
r
SSKJr  SS	 jr " S
 S\5      r " S S\5      rS rg)z‹
Converts `[[WikiLinks]]` to relative links.

See the [documentation](https://Python-Markdown.github.io/extensions/wikilinks)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚInlineProcessorN)ÚAnyc                óV   • [         R                  " SSU 5      nSR                  XU5      $ )z0Build a URL from the label, a base, and an end. z([ ]+_)|(_[ ]+)|([ ]+)Ú_z{}{}{})ÚreÚsubÚformat)ÚlabelÚbaseÚendÚclean_labels       Ú?/usr/lib/python3/dist-packages/markdown/extensions/wikilinks.pyÚ	build_urlr      s&   € ä—&’&Ð2°C¸Ó?€KØ�?‰?˜4¨cÓ2Ð2ó    c                  ó2   ^ • \ rS rSrSrU 4S jrS rSrU =r$ )ÚWikiLinkExtensioné%   z"Add inline processor to Markdown. c                óX   >• SS/SS/SS/[         S/S.U l         [        TU ]  " S0 UD6  g )	NÚ/z%String to append to beginning or URL.zString to append to end of URL.ÚwikilinkzCSS hook. Leave blank for none.z Callable formats URL from label.)Úbase_urlÚend_urlÚ
html_classr   © )r   ÚconfigÚsuperÚ__init__)ÚselfÚkwargsÚ	__class__s     €r   r!   ÚWikiLinkExtension.__init__(   sE   ø€ àÐEÐFØÐ>Ð?Ø%Ð'HÐIÜ#Ð%GÐHñ	
ˆŒð 	/Ü‰ÒÑ"˜6Ó"r   c                óŒ   • Xl         Sn[        X R                  5       5      nXl         UR                  R	                  USS5        g )Nz\[\[([\w0-9_ -]+)\]\]r   éK   )ÚmdÚWikiLinksInlineProcessorÚ
getConfigsÚinlinePatternsÚregister)r"   r(   ÚWIKILINK_REÚwikilinkPatterns       r   ÚextendMarkdownÚ WikiLinkExtension.extendMarkdown2   s=   € ØŒð /ˆÜ2°;ÇÁÓ@QÓRˆØÔØ
×Ñ×"Ñ" ?°JÀÕCr   )r   r(   )	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r!   r/   Ú__static_attributes__Ú__classcell__©r$   s   @r   r   r   %   s   ø† Ù-õ#÷Dð Dr   r   c                  óD   ^ • \ rS rSrSrSU 4S jjrSS jrS	S jrSrU =r	$ )
r)   é<   zBuild link from `wikilink`. c                ó0   >• [         TU ]  U5        X l        g )N)r    r!   r   )r"   Úpatternr   r$   s      €r   r!   Ú!WikiLinksInlineProcessor.__init__?   s   ø€ Ü‰Ñ˜Ô!Ø�r   c                ó²  • UR                  S5      R                  5       (       a�  U R                  5       u  p4nUR                  S5      R                  5       nU R                  S   " XcU5      n[        R
                  " S5      nXhl        UR                  SU5        U(       a  UR                  SU5        OSnX�R                  S5      UR                  S5      4$ )Nr   r   ÚaÚhrefÚclassÚ r   )
ÚgroupÚstripÚ_getMetar   ÚetreeÚElementÚtextÚsetÚstartr   )	r"   ÚmÚdatar   r   r   r   Úurlr?   s	            r   ÚhandleMatchÚ$WikiLinksInlineProcessor.handleMatchC   s§   € Ø�7‰7�1‹:×Ñ×ÑØ,0¯M©M«OÑ)ˆH˜zØ—G‘G˜A“J×$Ñ$Ó&ˆEØ—+‘+˜kÒ*¨5¸GÓDˆCÜ—’˜cÓ"ˆAØŒFØ�E‰E�&˜#ÔÞØ—‘�g˜zÔ*øàˆAØ—'‘'˜!“*˜aŸe™e A›hÐ&Ð&r   c                óÞ  • U R                   S   nU R                   S   nU R                   S   n[        U R                  S5      (       a¢  SU R                  R                  ;   a  U R                  R                  S   S   nSU R                  R                  ;   a  U R                  R                  S   S   nSU R                  R                  ;   a  U R                  R                  S   S   nXU4$ )	z#Return meta data or `config` data. r   r   r   ÚMetaÚwiki_base_urlr   Úwiki_end_urlÚwiki_html_class)r   Úhasattrr(   rQ   )r"   r   r   r   s       r   rE   Ú!WikiLinksInlineProcessor._getMetaQ   s¾   € à—;‘;˜zÑ*ˆØ—+‘+˜iÑ(ˆØ—[‘[ Ñ.ˆ
Ü�4—7‘7˜F×#Ñ#Ø $§'¡'§,¡,Ó.ØŸ7™7Ÿ<™<¨Ñ8¸Ñ;�Ø §¡§¡Ó-ØŸ'™'Ÿ,™, ~Ñ6°qÑ9�Ø  D§G¡G§L¡LÓ0Ø!ŸW™WŸ\™\Ð*;Ñ<¸QÑ?�
Ø *Ð,Ð,r   )r   )r<   Ústrr   zdict[str, Any])rK   zre.Match[str]rL   rW   Úreturnz$tuple[etree.Element | str, int, int])rX   ztuple[str, str, str])
r1   r2   r3   r4   r5   r!   rN   rE   r6   r7   r8   s   @r   r)   r)   <   s   ø† Ù'÷ô'÷-ò -r   r)   c                 ó   • [        S0 U D6$ )Nr   )r   )r#   s    r   ÚmakeExtensionrZ   `   s   € ÜÑ&˜vÑ&Ð&r   )r   rW   r   rW   r   rW   rX   rW   )r5   Ú
__future__r   rB   r   Úinlinepatternsr   Úxml.etree.ElementTreerF   ÚElementTreer   Útypingr   r   r   r)   rZ   r   r   r   Ú<module>r`      sF   ðñõ #å Ý ,ß %Ð %Û 	Ý ô3ôD˜	ô Dô.!-˜ô !-óH'r   