
    zie                        d Z ddl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lmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ erddlmZ ddlmZ  ej        e          Z G d de          ZddZ dS )zSingle HTML builders.    )annotations)path)TYPE_CHECKINGAny)nodes)StandaloneHTMLBuilder)global_toctree_for_doc)__)logging)	darkgreen)progress_message)inline_all_toctrees)Node)Sphinxc                      e Zd ZdZdZ ed          ZdZd*dZd+d,dZ	d+d-dZ
d.dZd/d0dZd1dZd2dZd3d Zd4d$Zd5d&Zd6d'Z e ed(                    d6d)            ZdS )7SingleFileHTMLBuilderzb
    A StandaloneHTMLBuilder subclass that puts the whole document tree on one
    HTML page.
    
singlehtmlzThe HTML page is in %(outdir)s.Freturnstr | list[str]c                    dS )Nzall documents selfs    e/var/www/tmov.alphamb/tmov_inventario/venv/lib/python3.11/site-packages/sphinx/builders/singlehtml.pyget_outdated_docsz'SingleFileHTMLBuilder.get_outdated_docs$   s        Ndocnamestrtyp
str | Nonec                f    || j         j        v r| j        j        | j        z   dz   |z   S || j        z   S )Nz
#document-)envall_docsconfigroot_doc
out_suffix)r   r   r   s      r   get_target_uriz$SingleFileHTMLBuilder.get_target_uri'   sE    dh''';'$/9&' ' T_,,r   from_toc                .    |                      ||          S N)r'   )r   r(   r)   r   s       r   get_relative_uriz&SingleFileHTMLBuilder.get_relative_uri0   s    ""2s+++r   treer   Nonec                "   | j         j        | j        z   }|                    t          j                  D ]Z}d|vr|d         }|                    d          }|dk     r+|                    d|dz             }|dk    r|||d          z   |d<   [d S )Nrefuri#r      )r$   r%   r&   findallr   	referencefind)r   r-   fnamerefnoder0   	hashindexs         r   fix_refurisz!SingleFileHTMLBuilder.fix_refuris4   s    $t6||EO44 		? 		?Gw&&X&FC((I1}}CQ77IA~~$)F9::,>$>!		? 		?r   Tcollapseboolkwargsr   c                   t          |                    d          x}t                    r;|                                dk    rd|d<   n|                                dk    rd|d<   |                    d          dk    r|                    d           t          | j        || fd|i|}||                     |           |                     |          d	         S )
NincludehiddenfalseFtrueTmaxdepth r:   fragment)	
isinstancegetr   lowerpopr	   r"   r9   render_partial)r   r   r:   r<   r>   toctrees         r   _get_local_toctreez(SingleFileHTMLBuilder._get_local_toctreeB   s    vzz/'B'BBmCHH 	/""$$//*/''$$&&&00*.'::j!!R''JJz"""(7D^^8^W]^^W%%%""7++J77r   nodes.documentc                
   | j         j        }| j                            |          }t	          | t                      ||t          |g          }||d<   | j                            |||            |                     |           |S )Nr   )	r$   r%   r"   get_doctreer   setr   resolve_referencesr9   )r   masterr-   s      r   assemble_doctreez&SingleFileHTMLBuilder.assemble_doctreeO   sz    %x##F++"4i&RR Y##D&$777r   %dict[str, dict[str, tuple[int, ...]]]c                    i }| j         j                                        D ]+\  }}|                                D ]\  }}| d| }|||<   ,| j        j        |iS N/)r"   toc_secnumbersitemsr$   r%   )r   new_secnumbersr   secnumsidsecnumaliass          r   assemble_toc_secnumbersz-SingleFileHTMLBuilder.assemble_toc_secnumbersX   s     68 $ 7 = = ? ? 	/ 	/GW%mmoo / /
F"))R))(.u%%/ $n55r   0dict[str, dict[str, dict[str, tuple[int, ...]]]]c                "   i }| j         j                                        D ]a\  }}|                                D ]G\  }}| d| }|                    |i            |                                D ]\  }}|||         |<   Hb| j        j        |iS rT   )r"   toc_fignumbersrW   
setdefaultr$   r%   )	r   new_fignumbersr   
fignumlistfigtypefignumsr\   rZ   fignums	            r   assemble_toc_fignumbersz-SingleFileHTMLBuilder.assemble_toc_fignumbersj   s     AC#'8#:#@#@#B#B 	7 	7GZ$.$4$4$6$6 7 7 "..W..))%444")--// 7 7JB06N5)"--77 $n55r   bodymetatagsdict[str, Any]c                    t          | j        | j        j        | d          }|r3|                     |           |                     |          d         }d}nd}d}g d d d | j        j        d ||g d||dS )NF)r:   rC   TrB   )parentsprevnext	docstitletitlemetarh   ri   rellinks
sourcenametocdisplay_toc)r	   r"   r$   r%   r9   rH   
html_title)r   r   rh   ri   rI   rt   ru   s          r   get_doc_contextz%SingleFileHTMLBuilder.get_doc_context   s    (4;3GX]^^^ 	 W%%%%%g..z:CKKCK[+ &
 
 	
r   ignoredc                   | j         j        }t          t          d                    5  |                     |           d d d            n# 1 swxY w Y   t          t          d                    5  |                                 }|                                 | j         _        |                                 | j         _	        d d d            n# 1 swxY w Y   t          t          d                    5  | 
                    | j        j        |           |                     | j        j        |           d d d            d S # 1 swxY w Y   d S )Nzpreparing documentszassembling single documentwriting)r"   r#   r   r
   prepare_writingrQ   r]   rV   rg   r`   write_doc_serializedr$   r%   	write_doc)r   rx   docnamesdoctrees       r   writezSingleFileHTMLBuilder.write   s   8$b!67788 	+ 	+  ***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ b!=>>?? 	E 	E++--G&*&B&B&D&DDH#&*&B&B&D&DDH#	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
 bmm,, 	: 	:%%dk&:GDDDNN4;/999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s7   AAA2ACCC6AEEEc                   |                                   |                                  |                                  |                                  |                                  |                                  |                                  d S r+   )write_additional_filescopy_image_filescopy_download_filescopy_static_filescopy_extra_fileswrite_buildinfodump_inventoryr   s    r   finishzSingleFileHTMLBuilder.finish   s    ##%%%  """   r   zwriting additional filesc                v   | j         j                                        D ];\  }}t                              d|z   d           |                     |i |           <| j         j        rRt                              dd           t          j        | j	        dd          }|                     di d|           d S d S )	N T)nonlz opensearch_staticzopensearch.xml
opensearch)outfilename)
r$   html_additional_pagesrW   loggerinfohandle_pagehtml_use_opensearchr   joinoutdir)r   pagenametemplatefns       r   r   z,SingleFileHTMLBuilder.write_additional_files   s    
 #'+"C"I"I"K"K 	5 	5HhKKhTK222Xr84444;* 	QKKDK1114;	3CDDB\2/?RPPPPP	Q 	Qr   )r   r   r+   )r   r   r   r    r   r   )r(   r   r)   r   r   r    r   r   )r-   r   r   r.   )T)r   r   r:   r;   r<   r   r   r   )r   rK   )r   rR   )r   r^   )r   r   rh   r   ri   r   r   rj   )rx   r   r   r.   )r   r.   )__name__
__module____qualname____doc__namer
   epilog
copysourcer   r'   r,   r9   rJ   rQ   r]   rg   rw   r   r   r   r   r   r   r   r   r      sb         DR122FJ   - - - - -, , , , ,? ? ? ?8 8 8 8 8   6 6 6 6$6 6 6 6*
 
 
 
4: : : :    bb34455Q Q Q 65Q Q Qr   r   appr   r   rj   c                    |                      d           |                     t                     |                     dd d           ddddS )Nzsphinx.builders.htmlsinglehtml_sidebarsc                    | j         S r+   )html_sidebarsr   s    r   <lambda>zsetup.<locals>.<lambda>   s	    T=O r   htmlbuiltinT)versionparallel_read_safeparallel_write_safe)setup_extensionadd_builderr   add_config_value)r   s    r   setupr      sb    .///OO)***.0O0OQWXXX "#  r   N)r   r   r   rj   )!r   
__future__r   osr   typingr   r   docutilsr   sphinx.builders.htmlr   #sphinx.environment.adapters.toctreer	   sphinx.localer
   sphinx.utilr   sphinx.util.consoler   sphinx.util.displayr   sphinx.util.nodesr   docutils.nodesr   sphinx.applicationr   	getLoggerr   r   r   r   r   r   r   <module>r      so     " " " " " "       % % % % % % % %       6 6 6 6 6 6 F F F F F F             ) ) ) ) ) ) 0 0 0 0 0 0 1 1 1 1 1 1 *######))))))		8	$	$cQ cQ cQ cQ cQ1 cQ cQ cQL
 
 
 
 
 
r   