ó
    ›ökjÖ  ã                  óf   • S r SSKJr  SSKJrJrJrJr  SSKJ	r	  \(       a  SSK
Jr   " S S5      rg	)
aì  
Markdown accepts an [`Extension`][markdown.extensions.Extension] instance for each extension. Therefore, each extension
must to define a class that extends [`Extension`][markdown.extensions.Extension] and over-rides the
[`extendMarkdown`][markdown.extensions.Extension.extendMarkdown] method. Within this class one can manage configuration
options for their extension and attach the various processors and patterns which make up an extension to the
[`Markdown`][markdown.Markdown] instance.
é    )Úannotations)ÚTYPE_CHECKINGÚAnyÚIterableÚMappingé   )ÚparseBoolValue)ÚMarkdownc                  óp   • \ rS rSr% Sr0 rS\S'    S rSS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rg)Ú	Extensioné%   z'Base class for extensions to subclass. zMapping[str, list]Úconfigc                ó&   • U R                  U5        g)z'Initiate Extension and set up configs. N)Ú
setConfigs)ÚselfÚkwargss     ÚªC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\markdown/extensions/__init__.pyÚ__init__ÚExtension.__init__8   s   € à�‰˜Õó    c                óH   • XR                   ;   a  U R                   U   S   $ U$ )zÍ
Return a single configuration option value.

Arguments:
    key: The configuration option name.
    default: Default value to return if key is not set.

Returns:
    Value of stored configuration option.
r   )r   )r   ÚkeyÚdefaults      r   Ú	getConfigÚExtension.getConfig<   s'   € ð —+‘+ÓØ—;‘;˜sÑ# AÑ&Ð&àˆNr   c                ó€   • U R                   R                  5        Vs0 s H  oU R                  U5      _M     sn$ s  snf )zL
Return all configuration options.

Returns:
    All configuration options.
)r   Úkeysr   ©r   r   s     r   Ú
getConfigsÚExtension.getConfigsL   s7   € ð 59·K±K×4DÑ4DÔ4FÓGÒ4F¨S�T—^‘^ CÓ(Ò(Ñ4FÑGÐGùÒGs   �;c                ó„   • U R                   R                  5        Vs/ s H  oU R                   U   S   4PM     sn$ s  snf )zl
Return descriptions of all configuration options.

Returns:
    All descriptions of configuration options.
é   )r   r   r   s     r   ÚgetConfigInfoÚExtension.getConfigInfoU   s<   € ð 7;·k±k×6FÑ6FÔ6HÓIÒ6H¨s�d—k‘k #Ñ& qÑ)Ó*Ñ6HÑIÐIùÒIs   �=c                óÀ   • [        U R                  U   S   [        5      (       a  [        U5      nU R                  U   S   c
  [        USS9nX R                  U   S'   g)a‰  
Set a configuration option.

If the corresponding default value set in [`config`][markdown.extensions.Extension.config]
is a `bool` value or `None`, then `value` is passed through
[`parseBoolValue`][markdown.util.parseBoolValue] before being stored.

Arguments:
    key: Name of configuration option to set.
    value: Value to assign to option.

Raises:
    KeyError: If `key` is not known.
r   NT)Úpreserve_none)Ú
isinstancer   Úboolr	   )r   r   Úvalues      r   Ú	setConfigÚExtension.setConfig^   sZ   € ô �d—k‘k #Ñ& qÑ)¬4×0Ñ0Ü" 5Ó)ˆEØ�;‰;�sÑ˜AÑÑ&Ü" 5¸Ñ=ˆEØ#�‰�CÑ˜Òr   c                ó~   • [        US5      (       a  UR                  5       nU H  u  p#U R                  X#5        M     g)zå
Loop through a collection of configuration options, passing each to
[`setConfig`][markdown.extensions.Extension.setConfig].

Arguments:
    items: Collection of configuration options.

Raises:
    KeyError: for any unknown key.
ÚitemsN)Úhasattrr-   r*   )r   r-   r   r)   s       r   r   ÚExtension.setConfigss   s4   € ô �5˜'×"Ñ"à—K‘K“MˆEÛ‰JˆCØ�N‰N˜3Ö&ò  r   c                óz   • [        SU R                  R                  < SU R                  R                  < S35      e)z£
Add the various processors and patterns to the Markdown Instance.

This method must be overridden by every extension.

Arguments:
    md: The Markdown instance.

zExtension "Ú.z(" must define an "extendMarkdown"method.)ÚNotImplementedErrorÚ	__class__Ú
__module__Ú__name__)r   Úmds     r   ÚextendMarkdownÚExtension.extendMarkdown„   s0   € õ "àŸ™×2Ô2°D·N±N×4KÔ4KðMó
ð 	
r   © N)Ú )r   Ústrr   r   Úreturnr   )r<   zdict[str, Any])r<   zlist[tuple[str, str]])r   r;   r)   r   r<   ÚNone)r-   z-Mapping[str, Any] | Iterable[tuple[str, Any]]r<   r=   )r6   r
   r<   r=   )r5   r4   Ú__qualname__Ú__firstlineno__Ú__doc__r   Ú__annotations__r   r   r   r#   r*   r   r7   Ú__static_attributes__r9   r   r   r   r   %   s:   ‡ Ù2à!#€FÐÓ#ðò öô HôJô$ô*'÷"
r   r   N)r@   Ú
__future__r   Útypingr   r   r   r   Úutilr	   Úmarkdownr
   r   r9   r   r   Ú<module>rG      s*   ðñ(õ #ç 8Ó 8Ý !æÝ!÷l
ò l
r   