
    Mg
                     j    S SK J r   S SKrS SKrS SKrS SKJr  S SKJr  \ " S5       " S S5      5       rg)    )pluginN)Fore)urljoinzmarkdown to pdfc                   *    \ rS rSrSrS rS rS rSrg)MarkdownToPDF   z
A tool to convert Markdown files to PDF with images. Allows conversion from anywhere as long as an absolute path is provided
Usage: 'markdown to pdf'
c                 &    U R                  U5        g )N)	md_to_pdf)selfjarvisss      =/Users/admin/workspace/ai/Jarvis/jarviscli/plugins/mdtopdf.py__call__MarkdownToPDF.__call__   s    v    c                    UR                  S5        UR                  S5         UR                  S5      R                  5       nUR                  5       S;   a!  UR                  S[        R
                  5        g [        R                  R                  U5      (       d"  UR                  S[        R                  5        M  UR                  5       R                  S5      (       d"  UR                  S[        R                  5        M   [        US	S
S9 nUR                  5       nS S S 5        [        R                  " W/ SQS9nU R                  U[        R                  R                  [        R                  R!                  U5      5      5      n[        R                  R#                  U5      S   S-   nSS 0n[$        R&                  " 5       n[$        R(                  " XVXxS9  UR                  SU SU S3[        R*                  5        g ! , (       d  f       N= f! [,         a-  n	UR                  SU	 3[        R                  5         S n	A	g S n	A	ff = f)N z7This option will help you convert Markdown files to PDFzCEnter the full path of the Markdown file (or type "quit" to exit): )qquitexitzGoodbye!z*The file does not exist. Please try again.z.mdz'The file must be a Markdown (.md) file.rzutf-8)encoding)fenced_codetablestoc)
extensionsr   z.pdfzenable-local-file-access)optionsconfigurationzConverted 'z' to 'z'.zAn error occurred: )sayinputstriplowerr   CYANospathisfileREDendswithopenreadmarkdownconvert_image_pathsdirnameabspathsplitextpdfkitr   from_stringGREEN	Exception)
r   r   md_filef
md_contenthtml_contentpdf_filer   configes
             r   r
   MarkdownToPDF.md_to_pdf   s   

2

LMll#hiooqG}}"77

:tyy177>>'**

GR==?++E22

DdhhO@'39Q!"J :  (00Hhi  $77bggooVXV]V]VeVefmVnFop77++G4Q7&@ /  --/ ""<7a

[	zDdjjQ - :9(  @

04dhh??@s1   H H!C%H 
HH 
I"#I

Ic                 T   SSK Jn  U" US5      nUR                  S5      nU Hx  nUR                  SS5      nUR	                  S5      (       a  M-  [
        R                  R                  [
        R                  R                  X'5      5      n[        SU5      US'   Mz     [        U5      $ )	z:
Converts relative image paths in HTML to absolute paths.
r   )BeautifulSoupzhtml.parserimgsrcr   )zhttp://zhttps://zdata:zfile:)bs4r=   find_allget
startswithr$   r%   r.   joinr   str)	r   r7   	base_pathr=   soupimagesr>   r?   abs_paths	            r   r,   !MarkdownToPDF.convert_image_paths<   s     	&\=9u%C''%$C>>"BCC77??277<<	+GH$Wh7E
	 
 4yr    N)	__name__
__module____qualname____firstlineno____doc__r   r
   r,   __static_attributes__rK   r   r   r   r      s    
(Tr   r   )	r   r$   r0   r+   coloramar   urllib.parser   r   rK   r   r   <module>rT      s7     	     @ @ @r   