
    %j
                         d dl Z d dlmZmZmZ d dlmZ ddlmZm	Z	 ddl
mZ ddlmZ d	d
gZddgZ G d de          ZdS )    N)AnyBinaryIOOptional)BeautifulSoup   )DocumentConverterDocumentConverterResult)
StreamInfo   )_CustomMarkdownify	text/htmlzapplication/xhtml.htmlz.htmc                   h    e Zd ZdZdedededefdZdededede	fdZ
dd	d
edee         de	fdZdS )HtmlConverterz$Anything with content type text/htmlfile_streamstream_infokwargsreturnc                     |j         pd                                }|j        pd                                }|t          v rdS t          D ]}|                    |          r dS dS )N TF)mimetypelower	extensionACCEPTED_FILE_EXTENSIONSACCEPTED_MIME_TYPE_PREFIXES
startswith)selfr   r   r   r   r   prefixs          m/home/rurouni/.hermes/hermes-agent/venv/lib/python3.11/site-packages/markitdown/converters/_html_converter.pyacceptszHtmlConverter.accepts   s      (.B5577 *0b7799	00041 	 	F""6** tt u    c                    |j         dn|j         }t          |d|          } |ddg          D ]}|                                 |                    d          }d}|r t	          d	i |                    |          }nt	          d	i |                    |          }t          |t                    sJ |                                }t          ||j
        d n|j
        j                  S )
Nutf-8zhtml.parser)from_encodingscriptstylebodyr   )markdowntitle )charsetr   extractfindr   convert_soup
isinstancestrstripr	   r)   string)	r   r   r   r   encodingsoupr%   body_elmwebpage_texts	            r   convertzHtmlConverter.convert)   s    *1977{?R[-xPPP dHg.// 	 	FNN 99V$$ 	K-7777DDXNNLL-7777DDTJJL,,,,,, $))++&!*,$$$*2C
 
 
 	
r!   N)urlhtml_contentr8   c          
           | j         dt          j        |                    d                    t	          ddd|          d|S )z
        Non-standard convenience method to convert a string to markdown.
        Given that many converters produce HTML as intermediate output, this
        allows for easy conversion of HTML to markdown.
        r#   r   r   )r   r   r+   r8   )r   r   r*   )r7   ioBytesIOencoder
   )r   r9   r8   r   s       r   convert_stringzHtmlConverter.convert_stringI   sg     t| 	

<#6#6w#?#?@@"$!	  	
 	
 	
 	
 		
r!   )__name__
__module____qualname____doc__r   r
   r   boolr    r	   r7   r0   r   r>   r*   r!   r   r   r      s        ..   	
 
   $

  
 	

 
!
 
 
 
B :>
 
 

)1#
	 
 
 
 
 
 
r!   r   )r;   typingr   r   r   bs4r   _base_converterr   r	   _stream_infor
   _markdownifyr   r   r   r   r*   r!   r   <module>rI      s    				 * * * * * * * * * *       H H H H H H H H % % % % % % , , , , , ,   
 F
 F
 F
 F
 F
% F
 F
 F
 F
 F
r!   