�
K�g�i � �� � d Z ddlmZ ddlZddlZddlmc mZ ddlm Z m
Z
ddlmZ ddl
mZ e rddlmZ ej d � � Zd)d�Z G d� d� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� de� � Z G d� d e� � Z G d!� d"e� � Z G d#� d$e� � Z G d%� d&e� � Z G d'� d(e� � ZdS )*a;
A block processor parses blocks of text and adds new elements to the ElementTree. Blocks of text,
separated from other text by blank lines, may have a different syntax and produce a differently
structured tree than other Markdown. Block processors excel at handling code formatting, equation
layouts, tables, etc.
� )�annotationsN)�
TYPE_CHECKING�Any� )�util)�BlockParser)�Markdown�MARKDOWN�mdr �kwargsr �returnr c � � t | � � }|j � t |� � dd� � |j � t |� � dd� � |j � t |� � dd� � |j � t
|� � dd� � |j � t |� � d d
� � |j � t |� � dd� � |j � t |� � d
d� � |j � t |� � dd� � |j � t |� � dd� � |j � t |� � dd� � |j � t |� � dd� � |S )z2 Build the default block parser used by Markdown. �empty�d �indent�Z �code�P �
hashheader�F �setextheader�<