o
    f                     @   s   d dl Z d dlZd dlZd dlZd dlZdddddddd	d
Zejdejdejdej	dej
dejdejdejdejdi	ZG dd dejZee  dS )    Nz(?smx)
          (?P<match>
            <lilypond
            ( \s+ (?P<options> [^:<>]*? ) )?
            \s* : \s*
            (?P<code> .*? )
            \s* />
          )z(?smx)
          (?P<match>
            <lilypond \s*
            (?P<options> [^:<>]*? )
            \s* >
            (?P<code> .*? )
            </lilypond \s* >
          )z(?smx)
          (?P<match>
            <lilypondfile \s*
            (?P<options> [^:<>]*? )
            \s* >
            \s* (?P<filename> .*? ) \s*
            </lilypondfile \s* >
          )z6(?smx)(?P<match>\s*(?!@c\s+)(?P<code><!--\s.*?!-->)\s)z(?mx)
          (?P<match>
          <musicxmlfile\s*(?P<options>.*?)\s*>
          \s*(?P<filename>.*?)\s*
          </musicxmlfile\s*>)z'(?x)(?P<match>(?P<code><pre>.*?</pre>))z,(?xs)(?P<match>(?P<code><pre>\s.*?</pre>\s))z%(?mx)(?P<match><lilypondversion\s*/>))ZlilypondZlilypond_blockZlilypond_fileZmultiline_commentZmusicxml_fileverbZverbatimZlilypondversionz,<lilypond %(options)s>
%(code)s
</lilypond>
z</a>z<a href="%(base)s%(ext)s">zU
  <img align="middle"
       border="0"
       src="%(image)s"
       alt="%(alt)s">z:<p><tt><a href="%(base)s%(ext)s">%(filename)s</a></tt></p>z <blockquote>%(str)s</blockquote>z<p>%(str)s</p>z<pre>%(verb)s</pre>
z%(program_version)sc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )BookHTMLOutputFormatc                 C   s8   t j|  d| _d| _t| _t| _g d| _	d| _
d S )NZhtml.html)r   z.xmlz.htmlyz\s+)	book_baseBookOutputFormat__init__formatZdefault_extensionHTML_snippet_resZsnippet_resHTML_outputoutputZhandled_extensionsZsnippet_option_separator)self r   ^/home/lily/lilypond-2.24.4/release/binaries/mingw/lilypond/lilypond-2.24.4/python/book_html.pyr   q   s   

zBookHTMLOutputFormat.__init__c                 C   s&   |rt d|}dd |D }|S g S )Nz-[-\w\.-:]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|\S+))?c                 S   s   g | ]	}t d d|qS )z!^([^=]+=\s*)(?P<q>["'])(.*)(?P=q)z
\g<1>\g<3>)resub).0Zoptr   r   r   
<listcomp>~   s    z>BookHTMLOutputFormat.split_snippet_options.<locals>.<listcomp>)r   findall)r   Zoption_stringZoptionsr   r   r   split_snippet_optionsz   s   z*BookHTMLOutputFormat.split_snippet_optionsc                 C   s   d|vr|d7 }|S )Nz-dtall-page-formatsz -dtall-page-formats=eps,png r   )r   cmdr   r   r   adjust_snippet_command   s   z+BookHTMLOutputFormat.adjust_snippet_commandc                 C   s   d}|  }||d< tj|j|d< |j|d< || jtj | 7 }|	 D ])}t

|}||d< tj|\|d< |d< |jtj |d< || jtj | 7 }q&|| jtj | 7 }|S )N basefilenameextimageZalt)get_replacementsospathbasenamer   r   r   book_snippetsBEFOREZ
get_imagescopysplitextoption_dictZALTOUTPUTAFTER)r   r   snippetsrepr   Zrep1r   r   r   output_images   s   

z"BookHTMLOutputFormat.output_imagesc                 C   s   d}||  ||7 }| }d}tj|jv r't| |d< | jtj | }| 	||}tj
|jvr=| jtj d|i }||7 }tj|jv rQ| jtj d|i }||7 }|S )Nr   r   str)Zoutput_print_filenamer   r    VERBATIMr$   r   Zverbatim_htmlZverb_lyr   r*   ZINLINEPARAQUOTE)r   r   r'   r(   r)   ZsubstrZ	subsubstrr   r   r   snippet_output   s   z#BookHTMLOutputFormat.snippet_outputc                 C   s   |  ||||S )N)Zrequired_files_png)r   r'   r   Zfullrequired_filesr   r   r   r0      s   z#BookHTMLOutputFormat.required_filesN)	__name__
__module____qualname__r   r   r   r*   r/   r0   r   r   r   r   r   p   s    		r   )r"   r   r   r   r    r	   ZFILTERr&   r!   r%   ZPRINTFILENAMEr.   r-   r,   ZVERSIONr
   r   r   Zregister_formatr   r   r   r   <module>   s4   


5B