o
    7÷d3  ã                   @   sš   d Z ddlZddlZddlZej d¡Zej e¡Z	ej
 e	¡ e	ejd< e d¡e	_e d¡e	_e	je	_e dej¡e	_e d¡ZG d	d
„ d
e	jƒZdS )aÚ  
Python Markdown

A Python implementation of John Gruber's Markdown.

Documentation: https://python-markdown.github.io/
GitHub: https://github.com/Python-Markdown/markdown/
PyPI: https://pypi.org/project/Markdown/

Started by Manfred Stienstra (http://www.dwerg.net/).
Maintained for a few years by Yuri Takhteyev (http://www.freewisdom.org).
Currently maintained by Waylan Limberg (https://github.com/waylan),
Dmitry Shachnev (https://github.com/mitya57) and Isaac Muse (https://github.com/facelessuser).

Copyright 2007-2020 The Python Markdown Project (v. 1.7 and later)
Copyright 2004, 2005, 2006 Yuri Takhteyev (v. 0.2-1.6b)
Copyright 2004 Manfred Stienstra (the original version)

License: BSD (see LICENSE.md for details).
é    Nzhtml.parserÚ
htmlparserz\?>z&([a-zA-Z][-.a-zA-Z0-9]*);a”  
  <[a-zA-Z][^`\t\n\r\f />\x00]*       # tag name <= added backtick here
  (?:[\s/]*                           # optional whitespace before attribute name
    (?:(?<=['"\s/])[^`\s/>][^\s/=>]*  # attribute name <= added backtick here
      (?:\s*=+\s*                     # value indicator
        (?:'[^']*'                    # LITA-enclosed value
          |"[^"]*"                    # LIT-enclosed value
          |(?!['"])[^`>\s]*           # bare value <= added backtick here
         )
         (?:\s*,)*                    # possibly followed by a comma
       )?(?:\s|/(?!>))*
     )*
   )?
  \s*                                 # trailing whitespace
z^([ ]*\n){2}c                       sØ   e Zd ZdZ‡ fdd„Z‡ fdd„Z‡ fdd„Zedd	„ ƒZd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Z‡ fd$d%„Z‡ fd&d'„Zd(Zd)d*„ Zd+d,„ Z‡  ZS )-ÚHTMLExtractorzÅ
    Extract raw HTML from text.

    The raw HTML is stored in the `htmlStash` of the Markdown instance passed
    to `md` and the remaining text is stored in `cleandoc` as a list of strings.
    c                    s8   d|vrd|d< t dgƒ| _tƒ j|i |¤Ž || _d S )NÚconvert_charrefsFÚhr)ÚsetÚ
empty_tagsÚsuperÚ__init__Úmd)Úselfr
   ÚargsÚkwargs©Ú	__class__© újC:\Users\jesus\OneDrive\Desktop\erpjis_fastapi\backend\jisbackend\Lib\site-packages\markdown/htmlparser.pyr	   H   s
   
zHTMLExtractor.__init__c                    s,   d| _ d| _g | _g | _g | _tƒ  ¡  dS )z1Reset this instance.  Loses all unprocessed data.FN)ÚinrawÚintailÚstackÚ_cacheÚcleandocr   Úreset©r   r   r   r   r   S   s   zHTMLExtractor.resetc                    sv   t ƒ  ¡  t| jƒr | jr| js|  t | j¡¡ n|  | j¡ t| j	ƒr9| j
 | jj d | j	¡¡¡ g | _	dS dS )zHandle any buffered data.Ú N)r   ÚcloseÚlenÚrawdatar   Ú
cdata_elemÚhandle_datar   Úunescaper   r   Úappendr
   Ú	htmlStashÚstoreÚjoinr   r   r   r   r   \   s   



þzHTMLExtractor.closec                 C   sJ   | j dkr#d| jv r#t d | j d ¡| j¡}|r| ¡ S | j d¡S dS )zHReturns char index in `self.rawdata` for the start of the current line. é   Ú
z([^\n]*\n){{{}}}r   )Úlinenor   ÚreÚmatchÚformatÚendÚrfind)r   Úmr   r   r   Úline_offsetk   s   zHTMLExtractor.line_offsetc                 C   s<   | j dkrdS | j dkrdS | j| j| j| j  …  ¡ dkS )z†
        Returns True if current position is at start of line.

        Allows for up to three blank spaces at start of line.
        r   Té   Fr   )Úoffsetr   r-   Ústripr   r   r   r   Úat_line_startx   s
   

 zHTMLExtractor.at_line_startc                 C   s<   | j | j }tj | j|¡}|r| j|| ¡ … S d |¡S )z™
        Returns the text of the end tag.

        If it fails to extract the actual text from the raw data, it builds a closing tag with `tag`.
        z</{}>)r-   r/   r   Ú	endendtagÚsearchr   r*   r)   )r   ÚtagÚstartr,   r   r   r   Úget_endtag_text…   s
   
zHTMLExtractor.get_endtag_textc                 C   sœ   || j v r|  ||¡ d S | j |¡r&| js|  ¡ r&| js&d| _| j d¡ |  	¡ }| jr;| j
 |¡ | j |¡ d S | j |¡ || jv rL|  ¡  d S d S )NTr%   )r   Úhandle_startendtagr
   Úis_block_levelr   r1   r   r   r    Úget_starttag_textr   r   ÚCDATA_CONTENT_ELEMENTSÚclear_cdata_mode)r   r4   ÚattrsÚtextr   r   r   Úhandle_starttag”   s   
 
þzHTMLExtractor.handle_starttagc                 C   sÖ   |   |¡}| jrc| j |¡ || jv r!| jr!| j ¡ |krn| jst| jƒdkrat | j	| j
| j t|ƒ d … ¡rA| j d¡ nd| _d| _| j | jj d | j¡¡¡ | j d¡ g | _d S d S | j |¡ d S )Nr   r%   TFr   ú

)r6   r   r   r    r   Úpopr   Úblank_line_rer(   r   r-   r/   r   r   r
   r!   r"   r#   )r   r4   r=   r   r   r   Úhandle_endtag©   s$   

þ$
ózHTMLExtractor.handle_endtagc                 C   s:   | j r
d|v r
d| _ | jr| j |¡ d S | j |¡ d S )Nr%   F)r   r   r   r    r   ©r   Údatar   r   r   r   Ä   s
   zHTMLExtractor.handle_datac                 C   sÆ   | j s| jr| j |¡ dS |  ¡ r[|r[t | j| j| j	 t
|ƒ d… ¡r+|d7 }nd| _| jr6| jd nd}| d¡sH| d¡rH| j d¡ | j | jj |¡¡ | j d¡ dS | j |¡ dS )z Handle empty tags (`<data>`). Nr%   Téÿÿÿÿr   r?   )r   r   r   r    r1   rA   r(   r   r-   r/   r   r   Úendswithr
   r!   r"   )r   rD   Úis_blockÚitemr   r   r   Úhandle_empty_tagÌ   s   $
zHTMLExtractor.handle_empty_tagc                 C   s   | j |  ¡ | j |¡d d S )N©rG   )rI   r9   r
   r8   )r   r4   r<   r   r   r   r7   ã   s   z HTMLExtractor.handle_startendtagc                 C   ó   | j d |¡dd d S )Nz&#{};FrJ   ©rI   r)   ©r   Únamer   r   r   Úhandle_charrefæ   ó   zHTMLExtractor.handle_charrefc                 C   rK   )Nz&{};FrJ   rL   rM   r   r   r   Úhandle_entityrefé   rP   zHTMLExtractor.handle_entityrefc                 C   rK   )Nz	<!--{}-->TrJ   rL   rC   r   r   r   Úhandle_commentì   rP   zHTMLExtractor.handle_commentc                 C   rK   )Nz<!{}>TrJ   rL   rC   r   r   r   Úhandle_declï   rP   zHTMLExtractor.handle_declc                 C   rK   )Nz<?{}?>TrJ   rL   rC   r   r   r   Ú	handle_piò   rP   zHTMLExtractor.handle_pic                 C   s,   |  d¡rdnd}| jd ||¡dd d S )NzCDATA[z]]>z]>z<![{}{}TrJ   )Ú
startswithrI   r)   )r   rD   r*   r   r   r   Úunknown_declõ   s   zHTMLExtractor.unknown_declc                    ó,   |   ¡ s| jrtƒ  |¡S |  d¡ |d S )Nz<?é   )r1   r   r   Úparse_pir   ©r   Úir   r   r   rY   ù   ó   
zHTMLExtractor.parse_pic                    rW   )Nz<!rX   )r1   r   r   Úparse_html_declarationr   rZ   r   r   r   r]     r\   z$HTMLExtractor.parse_html_declarationNc                 C   s   | j S )z)Return full source of start tag: `<...>`.)Ú_HTMLExtractor__starttag_textr   r   r   r   r9     s   zHTMLExtractor.get_starttag_textc                 C   sê  d | _ |  |¡}|dk r|S | j}|||… | _ g }tj ||d ¡}|s)J dƒ‚| ¡ }| d¡ ¡  | _	}||k r™tj
 ||¡}|sEnT| ddd¡\}	}
}|
sTd }n-|d d… d  krf|dd … ks{n |d d… d  kry|dd … krn n|dd… }|rˆt |¡}| |	 ¡ |f¡ | ¡ }||k s;|||…  ¡ }|d	vrÖ|  ¡ \}}d
| j v rÄ|| j  d
¡ }t| j ƒ| j  d
¡ }n|t| j ƒ }|  |||… ¡ |S | d¡rã|  ||¡ |S || jv rí|  |¡ |  ||¡ |S )Nr   r$   z#unexpected call to parse_starttag()rX   r.   ú'rE   ú")ú>ú/>r%   rb   )r^   Úcheck_for_whole_start_tagr   r   Útagfind_tolerantr(   r*   ÚgroupÚlowerÚlasttagÚattrfind_tolerantr   r    r0   ÚgetposÚcountr   r+   r   rF   r7   r:   Úset_cdata_moder>   )r   r[   Úendposr   r<   r(   Úkr4   r,   ÚattrnameÚrestÚ	attrvaluer*   r&   r/   r   r   r   Úparse_starttag  sX   
&(
ó

ÿ

ý
zHTMLExtractor.parse_starttag)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   Úpropertyr-   r1   r6   r>   rB   r   rI   r7   rO   rQ   rR   rS   rT   rV   rY   r]   r^   r9   rq   Ú__classcell__r   r   r   r   r   @   s2    	
r   )ru   r'   Úimportlib.utilÚ	importlibÚsysÚutilÚ	find_specÚspecÚmodule_from_specr   ÚloaderÚexec_moduleÚmodulesÚcompileÚpicloseÚ	entityrefÚ
incompleteÚVERBOSEÚlocatestarttagend_tolerantrA   Ú
HTMLParserr   r   r   r   r   Ú<module>   s     
ò
