
    /Vh(
                    .   d Z ddlmZ ddlmZ ddlmZ ddlZddlZddl	m
Z
  ej                  d	      Z ej                  d
      Z ej                  d      Z ej                  d      Z ej                  d      Z G d de      Z G d de      Zd Zy)z
This extension adds Meta Data handling to markdown.

See the [documentation](https://Python-Markdown.github.io/extensions/meta_data)
for details.
    )annotations   )	Extension   )PreprocessorN)AnyMARKDOWNz1^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)z^[ ]{4,}(?P<value>.*)z^-{3}(\s.*)?z^(-{3}|\.{3})(\s.*)?c                      e Zd ZdZd ZddZy)MetaExtensionz* Meta-Data extension for Python-Markdown. c                    |j                  |        || _        |j                  j                  t	        |      dd       y)z. Add `MetaPreprocessor` to Markdown instance. meta   N)registerExtensionmdpreprocessorsregisterMetaPreprocessor)selfr   s     H/home/dcms/DCMS/lib/python3.12/site-packages/markdown/extensions/meta.pyextendMarkdownzMetaExtension.extendMarkdown*   s5    
T"
!!"22"6C    c                &    i | j                   _        y )N)r   Meta)r   s    r   resetzMetaExtension.reset0   s    r   N)returnNone)__name__
__module____qualname____doc__r   r    r   r   r   r   '   s    4Dr   r   c                      e Zd ZdZddZy)r   z Get Meta-Data. c                   i }d}|r)t         j                  |d         r|j                  d       |r|j                  d      }t        j                  |      }|j	                         dk(  st
        j                  |      rn|rb|j                  d      j                         j	                         }|j                  d      j	                         }	 ||   j                  |       n^t        j                  |      }|r4|r2||   j                  |j                  d      j	                                n|j                  d|       n|r|| j                  _        |S # t        $ r	 |g||<   Y (w xY w)z- Parse Meta-Data and store in Markdown.Meta. Nr    keyvalue)BEGIN_REmatchpopMETA_REstripEND_REgrouplowerappendKeyErrorMETA_MORE_REinsertr   r   )r   linesr   r%   linem1r&   m2s           r   runzMetaPreprocessor.run7   s2   !X^^E!H-IIaL99Q<Dt$Bzz|r!V\\$%7hhuo++-335)//1(I$$U+ "''-#I$$RXXg%6%<%<%>?LLD)' (    (!&DI(s   E E-,E-N)r3   	list[str]r   r8   )r   r   r   r    r7   r!   r   r   r   r   4   s
    r   r   c                     t        di | S )Nr!   )r   )kwargss    r   makeExtensionr;   U   s    "6""r   )r    
__future__r   r$   r   r   r   reloggingtypingr   	getLoggerlogcompiler*   r1   r'   r,   r   r   r;   r!   r   r   <module>rC      s    #  ( 	  g
# "**I
Jrzz232::o&	+	,
Y 
| B#r   