
    h                     t    S SK JrJrJrJrJrJrJrJr  SSK	J
r
  SSKJrJr  SSKJr  SSKJr   " S S5      rg	)
    )AnyCallableDictIterableListOptionalTupleUnion   )BlockParser)BaseRenderer
BlockState)InlineParser)Pluginc                      \ rS rSrSr    SS\\   S\\   S\\   S\\	\
      4S jjrS	\
S
S4S jrS\S
\\\\\\4      4   4S jrS\	\\\4      S\S
\	\\\4      4S jrSS\S\\   S
\\\\\\\4      4   \4   4S jjr SS\S\S\\   S
\\\\\\\4      4   \4   4S jjrS\S
\\\\\\4      4   4S jrSrg)Markdown	   a  Markdown instance to convert markdown text into HTML or other formats.
Here is an example with the HTMLRenderer::

    from mistune import HTMLRenderer

    md = Markdown(renderer=HTMLRenderer(escape=False))
    md('hello **world**')

:param renderer: a renderer to convert parsed tokens
:param block: block level syntax parser
:param inline: inline level syntax parser
:param plugins: mistune plugins to use
Nrendererblockinlinepluginsc                     Uc
  [        5       nUc
  [        5       nXl        X l        X0l        / U l        / U l        / U l        U(       a  U H  nU" U 5        M     g g N)r   r   r   r   r   before_parse_hooksbefore_render_hooksafter_render_hooks)selfr   r   r   r   plugins         cC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\mistune/markdown.py__init__Markdown.__init__   sc     =ME>!^F "'
$*RTRT   	 !t "     r   returnc                     U" U 5        g r    )r   r   s     r   useMarkdown.use2   s	    tr"   statec                     U R                  UR                  U5      nU R                  (       a  U R                  X!5      $ [        U5      $ r   )_iter_rendertokensr   list)r   r(   datas      r   render_stateMarkdown.render_state5   s8      u5====--Dzr"   r+   c              #     #    U Hv  nSU;   a$  U R                  US   U5      n[        U5      US'   OESU;   a?  UR                  S5      nU R                  UR	                  S5      UR
                  5      US'   Uv   Mx     g 7f)Nchildrentextz 
	)r*   r,   popr   stripenv)r   r+   r(   tokr1   r2   s         r   r*   Markdown._iter_render;   sv     CS ,,S_eD"&x.J3wwv #'++djj.Euyy"QJI s   A>B sc                    Uc  U R                   R                  5       nUR                  SS5      nUR                  SS5      nUR                  S5      (       d  US-  nUR	                  U5        U R
                   H  nU" X5        M     U R                   R                  U5        U R                   H  nU" X5        M     U R                  U5      nU R                   H  nU" XU5      nM     XR4$ )zParse and convert the given markdown string. If renderer is None,
the returned **result** will be parsed markdown tokens.

:param s: markdown string
:param state: instance of BlockState
:returns: result, state
z

)
r   	state_clsreplaceendswithprocessr   parser   r.   r   )r   r8   r(   hookhook2resulthook3s          r   r@   Markdown.parseG   s     =JJ((*E IIfd#IIdD!zz$IAa++D , 	

--E$ . ""5),,E4/F -}r"   filepathencodingc                    Uc  U R                   R                  5       nXR                  S'   [        US5       nUR	                  5       nS S S 5        WR                  U5      nU R                  Xc5      $ ! , (       d  f       N0= f)N__file__rb)r   r<   r5   openreaddecoder@   )r   rF   rG   r(   fr8   s2s          r   rL   Markdown.readh   sk     =JJ((*E (		*(D!QA " XXhzz"$$	 "!s   A33
Bc                 4    Uc  SnU R                  U5      S   $ )Nr:   r   )r@   )r   r8   s     r   __call__Markdown.__call__u   s    9Azz!}Qr"   )r   r   r   r   r   r   )NNNNr   )zutf-8N)__name__
__module____qualname____firstlineno____doc__r   r   r   r   r   r   r    r&   r   r
   strr   r   r   r.   r*   r	   r@   rL   rR   __static_attributes__r%   r"   r   r   r   	   s     ,0'+)-.2<( $ &	
 (6*+4& T * sDc3h<P7P1Q 
8DcN#; 
J 
S[\`adfiai\jSk 
s 8J#7 5sTXY]^acf^fYgThOhIikuIuCv D UY%%'*%=Ej=Q%	uS$tCH~../;	<% #  %T$sCx.-A(A"B  r"   r   N)typingr   r   r   r   r   r   r	   r
   block_parserr   corer   r   inline_parserr   r   r   r   r%   r"   r   <module>r_      s&    N N N % * ' o  o r"   