
    O&i	
                         d Z ddl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  G d d	e          Zd
e	deeef         fdZdS )zTransforms for HTML builder.    N)AnyDictList)nodes)Sphinx)SphinxPostTransform)NodeMatcherc                   j    e Zd ZdZdZdZ ej        d          ZdZ	de
ddfd	Zd
ee         defdZdS )KeyboardTransforma$  Transform :kbd: role to more detailed form.

    Before::

        <literal class="kbd">
            Control-x

    After::

        <literal class="kbd compound">
            <literal class="kbd">
                Control
            -
            <literal class="kbd">
                x
    i  )htmlz(?<=.)(-|\+|\^|\s+)(?=.)))capslockpagedown)pageup
scrolllock)numr   sysrq	backspacekwargsreturnNc                    t          t          j        dg          }t          | j                            |                    D ]9}| j                            |d                                                   }t          |          dk    s| 
                    |          r^|d                             d           |                                 |r| 
                    |          r%d                    |d d                   }g |d d<   n|                    d	          }|t          j        d|dg          z  }	 |                    d	          }|t          j        |          z  }n# t          $ r Y nw xY w|;d S )
Nkbd)classes   r   compound    r   )r	   r   literallistdocumentfindallpatternsplitastextlenis_multiwords_keyappendpopjoinText
IndexError)selfr   matchernodepartskeyseps          l/home/geonatureadmin/si_en_reseau/tutos/venv/lib/python3.11/site-packages/sphinx/builders/html/transforms.pyrunzKeyboardTransform.run)   s|   emeW=== ..w7788 	 	DL&&tBx'8'899E5zzQ$"8"8"?"?O"":...HHJJJ ))%00 '''%),,C "E"1"II))A,,Cb#w????))A,,CEJsOO+DD!   D  	 	s   >,E++
E87E8r1   c                     t          |          dk    r_|d                                         dk    rA|d                                         |d                                         f}|| j        v rdS dS dS )Nr   r   r   r      TF)r'   striplowermultiwords_keys)r.   r1   names      r4   r(   z#KeyboardTransform.is_multiwords_keyC   sl    u::??uQx~~//2558>>##U1X^^%5%55Dt+++tu5    )__name__
__module____qualname____doc__default_priorityformatsrecompiler$   r:   r   r5   r   strboolr(    r<   r4   r   r      s           Gbj455G)OC D    4tCy T      r<   r   appr   c                 B    |                      t                     ddddS )NbuiltinT)versionparallel_read_safeparallel_write_safe)add_post_transformr   )rH   s    r4   setuprO   N   s1    ,--- "#  r<   )r@   rC   typingr   r   r   docutilsr   sphinx.applicationr   !sphinx.transforms.post_transformsr   sphinx.util.nodesr	   r   rE   rO   rG   r<   r4   <module>rU      s    " " 				 " " " " " " " " " "       % % % % % % A A A A A A ) ) ) ) ) )> > > > >+ > > >Bv $sCx.      r<   