
    ei                         d Z ddlmZ ddlmZmZ ddlmZ dZdZ	 G d de      Z
 G d	 d
e      Z G d de      Zd Zy)a  
Bypass whitespace normalization.

pymdownx._bypassnorm

Strips `SOH` and `EOT` characters before whitespace normalization
allowing other extensions to then create preprocessors that stash HTML
with `SOH` and `EOT`  After whitespace normalization, all `SOH` and
`EOT` characters will be converted to the Python Markdown standard
`STX` and `ETX` convention since whitespace normalization usually
strips out the `STX` and `ETX` characters.

Copyright 2014 - 2018 Isaac Muse <isaacmuse@gmail.com>
    )	Extension)STXETX)Preprocessorc                       e Zd ZdZd Zy)PreNormalizePreprocessorz*Preprocessor to remove workaround symbols.c                     dj                  |      }|j                  t        d      j                  t        d      }|j	                  d      S )zSRemove workaround placeholder markers before adding actual workaround placeholders.
 )joinreplaceSOHEOTsplitselflinessources      V/var/www/html/glpi_dashboard/venv/lib/python3.12/site-packages/pymdownx/_bypassnorm.pyrunzPreNormalizePreprocessor.run   s>     5!R(00b9||D!!    N__name__
__module____qualname____doc__r    r   r   r
   r
      s
    4"r   r
   c                       e Zd ZdZd Zy)PostNormalizePreprocessorz3Preprocessor to clean up normalization bypass hack.c                     dj                  |      }|j                  t        t              j                  t        t
              }|j                  d      S )zDConvert alternate placeholder symbols to actual placeholder symbols.r   )r   r   r   r   r   r   r   r   s      r   r   zPostNormalizePreprocessor.run&   s>     5!S)11#s;||D!!r   Nr   r   r   r   r!   r!   #   s
    ="r   r!   c                   (     e Zd ZdZ fdZd Z xZS )BypassNormExtensionz Bypass whitespace normalization.c                 @    g | _         i | _        t        |   |i | y)zInitialize.N)inlinehiliteconfigsuper__init__)r   argskwargs	__class__s      r   r)   zBypassNormExtension.__init__1   s&     $)&)r   c                     |j                   j                  t        |      dd       |j                   j                  t        |      dd       y)zAAdd extensions that help with bypassing whitespace normalization.zpymdownx-pre-norm-ws#   zpymdownx-post-norm-wsgfffff=@N)preprocessorsregisterr
   r!   )r   mds     r   extendMarkdownz"BypassNormExtension.extendMarkdown8   sD     	!!":2">@VXZ[
!!";B"?AXZ^_r   )r   r   r   r   r)   r2   __classcell__)r,   s   @r   r$   r$   .   s    **`r   r$   c                      t        | i |S )zReturn extension.)r$   )r*   r+   s     r   makeExtensionr5   ?   s     ///r   N)r   markdownr   markdown.utilr   r   markdown.preprocessorsr   r   r   r
   r!   r$   r5   r   r   r   <module>r9      sJ     " /"| "" "`) `"0r   