Ë
    ÁjØ  ã                  óŒ   — d Z ddlmZ ddlmZ ddlmZ ddlmc m	Z ddl
Z
ddlmZ dd	„Z G d
„ de«      Z G d„ de«      Zd„ Zy)z‹
Converts `[[WikiLinks]]` to relative links.

See the [documentation](https://Python-Markdown.github.io/extensions/wikilinks)
for details.
é    )Úannotationsé   )Ú	Extensioné   )ÚInlineProcessorN)ÚAnyc                óV   — t        j                  dd| «      }dj                  |||«      S )z1 Build a URL from the label, a base, and an end. z([ ]+_)|(_[ ]+)|([ ]+)Ú_z{}{}{})ÚreÚsubÚformat)ÚlabelÚbaseÚendÚclean_labels       úP/var/www/html/venv/lib/python3.12/site-packages/markdown/extensions/wikilinks.pyÚ	build_urlr      s(   € ä—&‘&Ð2°C¸Ó?€KØ�?‰?˜4 ¨cÓ2Ð2ó    c                  ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚWikiLinkExtensionz# Add inline processor to Markdown. c                óV   •— ddgddgddgt         dgdœ| _        	 t        ‰| �  di |¤Ž y )	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    zWikiLinkExtension.__init__(   sE   ø€ àÐEÐFØÐ>Ð?Ø%Ð'HÐIÜ#Ð%GÐHñ	
ˆŒð 	/Ü‰ÑÑ"˜6Ó"r   c                ó’   — || _         d}t        || j                  «       «      }||_         |j                  j	                  |dd«       y )Nz\[\[([\w0-9_ -]+)\]\]r   éK   )ÚmdÚWikiLinksInlineProcessorÚ
getConfigsÚinlinePatternsÚregister)r!   r&   ÚWIKILINK_REÚwikilinkPatterns       r   ÚextendMarkdownz WikiLinkExtension.extendMarkdown2   sC   € ØˆŒð /ˆÜ2°;ÀÇÁÓ@QÓRˆØˆÔØ
×Ñ×"Ñ" ?°JÀÕCr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r    r-   Ú__classcell__©r#   s   @r   r   r   %   s   ø„ Ù-ô#öDr   r   c                  ó4   ‡ — e Zd ZdZdˆ fd„Zdd„Zdd„Zˆ xZS )r'   z Build link from `wikilink`. c                ó2   •— t         ‰| �  |«       || _        y )N)r   r    r   )r!   Úpatternr   r#   s      €r   r    z!WikiLinksInlineProcessor.__init__?   s   ø€ Ü‰Ñ˜Ô!Øˆ�r   c                ó¤  — |j                  d«      j                  «       r�| j                  «       \  }}}|j                  d«      j                  «       } | j                  d   |||«      }t	        j
                  d«      }||_        |j                  d|«       |r|j                  d|«       nd}||j                  d«      |j                  d«      fS )Nr   r   ÚaÚhrefÚclassÚ r   )
ÚgroupÚstripÚ_getMetar   ÚetreeÚElementÚtextÚsetÚstartr   )	r!   ÚmÚdatar   r   r   r   Úurlr8   s	            r   ÚhandleMatchz$WikiLinksInlineProcessor.handleMatchC   s­   € Ø�7‰7�1‹:×ÑÔØ,0¯M©M«OÑ)ˆH�g˜zØ—G‘G˜A“J×$Ñ$Ó&ˆEØ*�$—+‘+˜kÑ*¨5°(¸GÓDˆCÜ—‘˜cÓ"ˆAØˆAŒFØ�E‰E�&˜#ÔÙØ—‘�g˜zÕ*àˆAØ�!—'‘'˜!“*˜aŸe™e A›hÐ&Ð&r   c                óÊ  — | j                   d   }| j                   d   }| j                   d   }t        | j                  d«      rœd| j                  j                  v r| j                  j                  d   d   }d| j                  j                  v r| j                  j                  d   d   }d| j                  j                  v r| j                  j                  d   d   }|||fS )	z$ Return meta data or `config` data. r   r   r   ÚMetaÚwiki_base_urlr   Úwiki_end_urlÚwiki_html_class)r   Úhasattrr&   rI   )r!   r   r   r   s       r   r>   z!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   )r6   Ústrr   zdict[str, Any])rD   zre.Match[str]rE   rN   Úreturnz$tuple[etree.Element | str, int, int])rO   ztuple[str, str, str])r.   r/   r0   r1   r    rG   r>   r2   r3   s   @r   r'   r'   <   s   ø„ Ù'õó'÷-r   r'   c                 ó   — t        di | ¤ŽS )Nr   )r   )r"   s    r   ÚmakeExtensionrQ   `   s   € ÜÑ&˜vÑ&Ð&r   )r   rN   r   rN   r   rN   rO   rN   )r1   Ú
__future__r   r;   r   Úinlinepatternsr   Úxml.etree.ElementTreer?   ÚElementTreer   Útypingr   r   r   r'   rQ   r   r   r   Ú<module>rW      sF   ðñõ #å Ý ,ß %Ð %Û 	Ý ó3ôD˜	ô Dô.!-˜ô !-óH'r   