o $a@sdZddlmZddlmZmZmZmZmZddl m Z ddl m Z ddl mZddlmZddlmZdd lmZdd lmZmZdd lmZdd lmZeeZGd ddeZdedee effddZ!dS)z sphinx.builders.singlehtml ~~~~~~~~~~~~~~~~~~~~~~~~~~ Single HTML builders. :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. )path)AnyDictListTupleUnion)nodes)Node)Sphinx)StandaloneHTMLBuilder)TocTree)__)loggingprogress_message) darkgreen)inline_all_toctreesc @sLeZdZdZdZedZdZdee e e ffddZ d,d e d e de fd d Z d,d e de d e de fddZ deddfddZd-d e dedede fddZdejfddZdee ee eedffffddZdee ee ee eedfffffddZd e d e d!e defd"d#Zd$eddfd%d&Zd.d'd(Zeed)d.d*d+ZdS)/SingleFileHTMLBuilderzb A StandaloneHTMLBuilder subclass that puts the whole document tree on one HTML page. singlehtmlzThe HTML page is in %(outdir)s.FreturncCsdS)Nz all documentsselfrr)rtoc_fignumbersr@ setdefaultrr) rnew_fignumbersr fignumlistfigtypefignumsrErCfignumrrrassemble_toc_fignumbersgs    z-SingleFileHTMLBuilder.assemble_toc_fignumbersbodymetatagsc Csdt|j|jj|d}|r||||d}d}nd}d}gddd|jjd||gd||d S)NFr4T) parentsprevnext docstitletitlemetarOrPrellinks sourcenametoc display_toc)r rr5rrr0r6 html_title)rrrOrPr7rZr[rrrget_doc_context|s( z%SingleFileHTMLBuilder.get_doc_contextignoredcGs|jj}ttd ||Wdn1swYttd|}||j_||j_ Wdn1s@wYttd| |j j || |j j |WddS1sgwYdS)Nzpreparing documentszassembling single documentwriting)rrrr prepare_writingr=rFr?rNrGwrite_doc_serializedrr write_doc)rr^docnamesdoctreerrrwrites  "zSingleFileHTMLBuilder.writecCs<|||||||dSr$)write_additional_filescopy_image_filescopy_download_filescopy_static_filescopy_extra_fileswrite_buildinfodump_inventoryrrrrfinishs zSingleFileHTMLBuilder.finishzwriting additional filescCsv|jjD]\}}tjd|dd||i|q|jjr9tjdddt|j dd}|jdid|ddSdS) N T)nonlz opensearch_staticzopensearch.xml opensearch) outfilename) rhtml_additional_pagesr@loggerinfo handle_pagehtml_use_opensearchrjoinoutdir)rpagenametemplatefnrrrrfsz,SingleFileHTMLBuilder.write_additional_filesr$)T)rN) __name__ __module__ __qualname____doc__namer epilog copysourcerstrrrr!r%r r0boolrr8rdocumentr=rrintrFrNr]rermrrfrrrrrs$ & .  rapprcCs2|d|t|ddddddddS) Nzsphinx.builders.htmlsinglehtml_sidebarscSs|jSr$) html_sidebarsrrrrszsetup..htmlbuiltinT)versionparallel_read_safeparallel_write_safe)setup_extension add_builderradd_config_value)rrrrsetups  rN)"rosrtypingrrrrrdocutilsrdocutils.nodesr sphinx.applicationr sphinx.builders.htmlr #sphinx.environment.adapters.toctreer sphinx.localer sphinx.utilrrsphinx.util.consolersphinx.util.nodesr getLoggerr}rtrrrrrrrs           "