U
    ú±d	  ã                   @   sŠ   d Z ddlmZ ddlmZ ddlZddlZe d¡Ze 	d¡Z
e 	d	¡Ze 	d
¡Ze 	d¡ZG dd„ deƒZG dd„ deƒZdd„ ZdS )a¢  
Meta Data Extension for Python-Markdown
=======================================

This extension adds Meta Data handling to markdown.

See <https://Python-Markdown.github.io/extensions/meta_data>
for documentation.

Original code Copyright 2007-2008 [Waylan Limberg](http://achinghead.com).

All changes Copyright 2008-2014 The Python Markdown Project

License: [BSD](https://opensource.org/licenses/bsd-license.php)

é   )Ú	Extensioné   )ÚPreprocessoré    NZMARKDOWNz1^[ ]{0,3}(?P<key>[A-Za-z0-9_-]+):\s*(?P<value>.*)z^[ ]{4,}(?P<value>.*)z^-{3}(\s.*)?z^(-{3}|\.{3})(\s.*)?c                   @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚMetaExtensionz* Meta-Data extension for Python-Markdown. c                 C   s(   |  | ¡ || _|j t|ƒdd¡ dS )z, Add MetaPreprocessor to Markdown instance. Úmetaé   N)ZregisterExtensionÚmdÚpreprocessorsÚregisterÚMetaPreprocessor)Úselfr	   © r   ú</tmp/pip-unpacked-wheel-muih9_xp/markdown/extensions/meta.pyÚextendMarkdown#   s    
zMetaExtension.extendMarkdownc                 C   s   i | j _d S ©N)r	   ÚMeta)r   r   r   r   Úreset)   s    zMetaExtension.resetN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r       s   r   c                   @   s   e Zd ZdZdd„ ZdS )r   z Get Meta-Data. c                 C   sô   i }d}|r$t  |d ¡r$| d¡ |rè| d¡}t |¡}| ¡ dksèt |¡rTqè|r¬| d¡ ¡  ¡ }| d¡ ¡ }z||  |¡ W qæ t	k
r¨   |g||< Y qæX q$t
 |¡}|rØ|rØ||  | d¡ ¡ ¡ q$| d|¡ qèq$|| j_|S )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   Úm2r   r   r   Úrun0   s.    



zMetaPreprocessor.runN)r   r   r   r   r+   r   r   r   r   r   -   s   r   c                  K   s
   t f | ŽS r   )r   )Úkwargsr   r   r   ÚmakeExtensionN   s    r-   )r   r   r   r
   r   ÚreÚloggingÚ	getLoggerÚlogÚcompiler   r%   r   r    r   r   r-   r   r   r   r   Ú<module>   s   




!