
    L&iv.                        d Z ddlZddlZddlmZ ddlmZmZmZmZm	Z	m
Z
 ddlmZ ddlmZ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 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,  ej-        e.          Z/ ee.d          Z0 ej1         ej2        e3                    Z4 ej5        e4d          Z6i dddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEZ7dSdGe8dHe9dIe8fdJZ: G dK dLej;                  Z< G dM dNe          Z=dOedIe8fdPZ>dQedIee8ef         fdRZ?dS )Tz
    sphinxcontrib.htmlhelp
    ~~~~~~~~~~~~~~~~~~~~~~

    Build HTML help support files.

    :copyright: Copyright 2007-2019 by the Sphinx team, see README.
    :license: BSD, see LICENSE for details.
    N)path)AnyDictListSetTupleType)nodes)ElementNodedocument)addnodes)Sphinx)StandaloneHTMLBuilder)Config)IndexEntries)get_translation)logging)progress_message)copy_asset_file)NodeMatcher)make_filename_from_projectrelpath)SphinxRendererHTMLTranslator)__version__console	templatesca)i  cp1252cs)i  cp1250da)i  r!   de)i  r!   en)	  r!   es)i
  r!   et)i%  cp1257fa)i)  cp1256fi)i  r!   fr)i  r!   hr)i  r#   hu)i  r#   it)i  r!   ja)i  cp932ko)i  cp949lt)i'  r*   lv)i&  r*   )i  r!   )i  r!   )i  r#   )i  r!   )i  zwindows-1251)i  r#   )i$  r#   )i  r!   )i  cp1254)i"  cp1251)i  cp936)i  cp950)nlno_NBplpt_BRruskslsvtruk_UAzh_CNzh_TWTsquotereturnc                 \    t          j        | |          } |                     dd          } | S )a5  
    chm_htmlescape() is a wrapper of html.escape().
    .hhc/.hhk files don't recognize hex escaping, we need convert
    hex escaping to decimal escaping. for example: ``&#x27;`` -> ``&#39;``
    html.escape() may generates a hex escaping ``&#x27;`` for single
    quote ``'``, this wrapper fixes this.
    z&#x27;z&#39;)htmlescapereplace)rH   rI   s     l/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinxcontrib/htmlhelp/__init__.pychm_htmlescaperP   P   s-     	AuA			(G$$AH    c                        e Zd Zdeddf fdZdeddfdZdefdZdeddfd	Z	deddfd
Z
deddfdZdeddfdZdeddfdZdeddfdZdeddfdZ xZS )ToCTreeVisitorr   rJ   Nc                 f    t                                          |           g | _        d| _        d S )Nr   )super__init__bodydepth)selfr   	__class__s     rO   rV   zToCTreeVisitor.__init__^   s-    """	


rQ   textc                 :    | j                             |           d S N)rW   append)rY   r[   s     rO   r^   zToCTreeVisitor.appendc   s    	rQ   c                 6    d                     | j                  S )N
)joinrW   rY   s    rO   astextzToCTreeVisitor.astextf   s    yy###rQ   nodec                     d S r]    rY   rd   s     rO   unknown_visitzToCTreeVisitor.unknown_visiti       rQ   c                     d S r]   rf   rg   s     rO   unknown_departurez ToCTreeVisitor.unknown_departurel   ri   rQ   c                 f    | j         dk    r|                     d           | xj         dz  c_         d S )Nr   z<UL>   rX   r^   rg   s     rO   visit_bullet_listz ToCTreeVisitor.visit_bullet_listo   s2    :>>KK

a



rQ   c                 j    | xj         dz  c_         | j         dk    r|                     d           d S d S )Nrm   r   </UL>rn   rg   s     rO   depart_bullet_listz!ToCTreeVisitor.depart_bullet_listu   s;    

a

:>>KK      >rQ   c                 P    |                      d           | xj        dz  c_        d S )Nz!<LI> <OBJECT type="text/sitemap">rm   )r^   rX   rg   s     rO   visit_list_itemzToCTreeVisitor.visit_list_itemz   s(    7888

a



rQ   c                 &    | xj         dz  c_         d S )Nrm   )rX   rg   s     rO   depart_list_itemzToCTreeVisitor.depart_list_item~   s    

a



rQ   c                     t          |                                d          }|                     d|z             |                     d|d         z             |                     d           t          j        )NTz"    <param name="Name" value="%s">z#    <param name="Local" value="%s">refuriz	</OBJECT>)rP   rc   r^   r
   SkipNode)rY   rd   titles      rO   visit_referencezToCTreeVisitor.visit_reference   sg    t{{}}d3385@AAA9DNJKKKK   nrQ   )__name__
__module____qualname__r   rV   strr^   rc   r   rh   rk   r   ro   rr   rt   rv   r{   __classcell__rZ   s   @rO   rS   rS   ]   sv        d      
3 4    $ $ $ $ $$ 4    d t    g $    !w !4 ! ! ! !
G     W     G         rQ   rS   c            
           e Zd ZdZdZ ed          ZdZg dZdZ	dZ
dZdZdZd% fdZed&d            Zdee         d	d
f fdZdedededed	d
f
dZd%dZdeded	d
f fdZdeded	efdZ e ed                    d%d            Z e ed                    d%d            Z e ed                     d%d!            Zd"ed#ed	d
fd$Z xZS )'HTMLHelpBuilderz
    Builder that also outputs Windows HTML help project, contents and
    index files.  Adapted from the original Doc/tools/prechm.py.
    htmlhelpzDYou can now run HTML Help Workshop with the .htp file in %(outdir)s.F)z	image/pngz	image/gifz
image/jpegTr'   r!   rJ   Nc                     d| _         d| _        t                                                       t                              | j        j                  }||\  | _        | _	        d S d S )N.html)

out_suffixlink_suffixrU   initchm_localesgetconfiglanguagelcidencoding)rY   localerZ   s     rO   r   zHTMLHelpBuilder.init   sY    !"!566'-$DIt}}} rQ   Type[nodes.NodeVisitor]c                     t           S r]   r   rb   s    rO   default_translator_classz(HTMLHelpBuilder.default_translator_class   s
     rQ   docnamesc                 ^    t                                          |           d| j        d<   d S )NFhtml5_doctype)rU   prepare_writingglobalcontext)rY   r   rZ   s     rO   r   zHTMLHelpBuilder.prepare_writing   s.    ))).3?+++rQ   pagenametemplatenamectx	event_argc                     | j         |d<   d S )Nr   )r   )rY   r   r   r   r   s        rO   update_page_contextz#HTMLHelpBuilder.update_page_context   s    -JrQ   c                     |                                   |                                  |                                  |                     | j        | j        j                   d S r]   )copy_stopword_listbuild_project_filebuild_toc_file	build_hhxoutdirr   htmlhelp_basenamerb   s    rO   handle_finishzHTMLHelpBuilder.handle_finish   sY    !!!!!!t{DK$ABBBBBrQ   docnamedoctreec                     |                     t          j                  D ] }|                    d          	d|v rd|d<   !t	                                          ||           d S )Ninternalrx   _blanktarget)traverser
   	referencer   rU   	write_doc)rY   r   r   rd   rZ   s       rO   r   zHTMLHelpBuilder.write_doc   sh    $$U_55 	* 	*Dxx
##+D0@0@!)X'7+++++rQ   namecontextc                 V    t          t                    }|                    ||          S r]   )r   template_dirrender)rY   r   r   templates       rO   r   zHTMLHelpBuilder.render   s#    !,//tW---rQ   zcopying stopword listc                     t          j        t          d          }t          j        | j        | j        j        dz             }t          ||           dS )a  Copy a stopword list (.stp) to outdir.

        The stopword list contains a list of words the full text search facility
        shouldn't index.  Note that this list must be pretty small.  Different
        versions of the MS docs claim the file has a maximum size of 256 or 512
        bytes (including 
 at the end of each line).  Note that "and", "or",
        "not" and "near" are operators in the search language, so no point
        indexing them even if we wanted to.
        zproject.stpz.stpN)r   ra   r   r   r   r   r   )rY   r   filenames      rO   r   z"HTMLHelpBuilder.copy_stopword_list   sH     9\=999T[$+*G&*PQQ(+++++rQ   zwriting project filec           	         g }t          j        | j                  D ]\  }}}|                                 |                                 |                    t          j        | j        d                    }t          |          D ]}|r|                    d          r|                    d          r[t          t          j        ||          | j                  }|
                    |                    t           j        d                     t          j        | j        | j        j        dz             }t          |d| j        d          5 }| j        j        | j        j        | j        j        | j        j        | j        | j        j        | j        z   |d	}	|                     d
|	          }
|                    |
           ddd           dS # 1 swxY w Y   dS )z'Create a project file (.hhp) on outdir._staticz.jsr   \z.hhpwxmlcharrefreplacer   errors)outnamerz   versionprojectr   
master_docfileszproject.hhpN)oswalkr   sort
startswithr   ra   sortedendswithr   r^   rN   sepr   r   openr   
html_titler   r   r   r   r   r   write)rY   project_filesrootdirsr   in_staticdirfnr   fr   rW   s              rO   r   z"HTMLHelpBuilder.build_project_file   s    !#!5!5 	C 	CD$IIKKKJJLLL??49T[)+L+LMMLUmm C C  CU);); CG@T@T C 4!4!4dkBBB!((BFD)A)ABBBC
 9T[$+*G&*PQQ(C$-@STTT 	XY;8/;.;.	"k4tF& G ;;}g66DGGDMMM	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A5GGGzwriting TOC filec                 t   t          j        | j        | j        j        dz             }t          |d| j        d          5 }| j                            | j        j	        | d          }t          |          }t          t          j        d          }|                    |          D ]}|                    |           |                                | j        | j        j        | j        j	        | j        d	}|                    |                     d
|                     ddd           dS # 1 swxY w Y   dS )z#Create a ToC file (.hhp) on outdir.z.hhcr   r   r   F)prune_toctreesT)toctree)rW   suffixshort_titler   domain_indiceszproject.hhcN)r   ra   r   r   r   r   r   envget_and_resolve_doctreer   rS   r   r   compact_paragraphr   	walkaboutrc   r   html_short_titler   r   r   )rY   r   r   r   visitormatcherrd   r   s           rO   r   zHTMLHelpBuilder.build_toc_file   ss    9T[$+*G&*PQQ(C$-@STTT 	9XYh66t{7MtFK 7 M MG$W--G!("<dKKKG((11 ( (w''''  ((/#{;"k4"&"5 G GGDKKw77888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s    C D--D14D1r   r   c                    t                               t          d                     t          | j                                      |           }t          j        ||dz             }t          |d| j	        d          5 
                    d           dt          dt          t          t          t          f                  d	t          t          t          t          t          t          t          f                  f                  d
d ffd|D ]\  }}|D ]\  }\  }}	}
 |||	           
                    d           d d d            d S # 1 swxY w Y   d S )Nzwriting index file...z.hhkr   r   r   z<UL>
rz   refssubitemsrJ   c                 l   dt           dt           dd ffd}t          | d          }                     d            |d|            t          |          dk    r |d	|            njt          |          d
k    r |d|d         d
                    n>t	          |          D ].\  }} |dd||d
         fz              |d|d
                    /                    d           |rJ                    d           |D ]} |d         |d
         g                                d           d S d S )Nr   valuerJ   c                 D    d| d|d}                     |           d S )Nz    <param name="z	" value="z">
)r   )r   r   itemr   s      rO   write_paramzCHTMLHelpBuilder.build_hhx.<locals>.write_index.<locals>.write_param  s*     CG44ODGGDMMMMMrQ   Tz"<LI> <OBJECT type="text/sitemap">
Keywordr   zSee Alsorm   LocalNamez[%d] %sz
</OBJECT>
z<UL> rq   )r   rP   r   len	enumerate)	rz   r   r   r   irefsubitemr   write_indexs	          rO   r   z.HTMLHelpBuilder.build_hhx.<locals>.write_index  s   "c "# "$ " " " " " " 'ud33=>>>Iu---t99>>K
E2222YY!^^Ka4444"+D// 5 53#FICF,CDDD#GSV4444&&& %GGG$$$#+ @ @#GAJ
B????GGG$$$$$	% %rQ   z</UL>
)loggerinfo__r   r   create_indexr   ra   r   r   r   r   r   r   )rY   r   r   indexr   keygrouprz   r   r   key_r   r   s              @@rO   r   zHTMLHelpBuilder.build_hhx	  s   B.//000TX&&33D999VWv%566(C$-@STTT 	XYGGH%3 %d5c?.C %tTYZ]_cdijmorjrds_tZtTuOv %{ % % % % % % %, !& 7 7e5: 7 71E1D(DKtX66667GGI9	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   CEEE)rJ   N)rJ   r   ) r|   r}   r~   __doc__r   r   epilog
copysourcesupported_image_typesadd_permalinksembeddedsearchr   r   r   propertyr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s   @rO   r   r      s_         DR   F JDDD NH FDH. . . . . .    X4C 4T 4 4 4 4 4 4(C (s ( (Z] (bf ( ( ( (C C C C, ,x ,D , , , , , ,.3 . .# . . . . bb01122, , , 32, bb/0011   216 bb+,,--9 9 9 .-9(   c  d                rQ   r   r   c                 0    t          | j                  dz   S )z)Better default htmlhelp_basename setting.doc)r   r   )r   s    rO   default_htmlhelp_basenamer  ,  s    %fn55==rQ   appc                    |                      d           |                     t                     |                     t          t          j        t          d                     |                     dt          d           |                     dd dt          g           |                     dd dt          g           t          ddd	S )
Nzsphinx.builders.htmllocalesr    htmlhelp_file_suffixrL   htmlhelp_link_suffixT)r   parallel_read_safeparallel_write_safe)setup_extensionadd_builderr   add_message_catalogr|   r   ra   package_diradd_config_valuer  r   r   )r  s    rO   setupr  1  s    .///OOO$$$HdiY&G&GHHH,.GLLL/vuEEE/vuEEE "#  rQ   )T)@r   rL   r   r   typingr   r   r   r   r   r	   docutilsr
   docutils.nodesr   r   r   sphinxr   sphinx.applicationr   sphinx.builders.htmlr   sphinx.configr   (sphinx.environment.adapters.indexentriesr   sphinx.localer   sphinx.utilr   r   sphinx.util.fileutilr   sphinx.util.nodesr   sphinx.util.osutilr   r   sphinx.util.templater   sphinx.writers.htmlr   sphinxcontrib.htmlhelp.versionr   	getLoggerr|   r   r   abspathdirname__file__r  ra   r   r   r   boolrP   NodeVisitorrS   r   r  r  rf   rQ   rO   <module>r)     s     				       4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4       2 2 2 2 2 2 2 2 2 2       % % % % % % 6 6 6 6 6 6             A A A A A A ) ) ) ) ) )       ( ( ( ( ( ( 0 0 0 0 0 0 ) ) ) ) ) ) B B B B B B B B / / / / / / . . . . . . 6 6 6 6 6 6 
	8	$	$_Xy))dl<4<1122tyk22 	 		
 	 	 	 	 	 	 	 	 	 	 	  	!" 	#$ 	%& $=  D
 
c 
$ 
# 
 
 
 
) ) ) ) )U& ) ) )X` ` ` ` `+ ` ` `F>f > > > > >
v $sCx.      rQ   