U
    Sh8                     @   sl   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZ ddlmZ deedd	d
dZdd ZdS )z#The setup for the sphinx extension.    )Any)nodes)Sphinx)depart_container_htmldepart_rubric_htmlvisit_container_htmlvisit_rubric_html)MystWarningsFN)appload_parserreturnc                 C   s  ddl m} ddlm} ddlm}m} ddlm} ddl	m
} |rZ| dd | | | d	|  | d
| | | | jtjdttfd | jtjdttfd |  D ]4\}}	}
d|
jdg kr| jd| |	dtd q| dt | d| dS )zInitialize all settings and transforms in Sphinx.

    :param app: The Sphinx application object.
    :param load_parser: Whether to load the parser.
    r   MdParserConfig)
MystParser)FigureMarkdownSubstitutionReferenceRole)override_mathjax)MystReferenceResolverz.mdmarkdownzsub-refz	figure-mdT)overridehtmlsphinxomitmyst_env)typeszbuilder-initedN)myst_parser.config.mainr   Zmyst_parser.parsers.sphinx_r   Z!myst_parser.sphinx_ext.directivesr   r   Zmyst_parser.sphinx_ext.mathjaxr   Z myst_parser.sphinx_ext.myst_refsr   Zadd_source_suffixZadd_source_parserZadd_roleZadd_directiveZadd_post_transformadd_noder   Zrubricr   r   	containerr   r   	as_triplemetadatagetZadd_config_valuer   connectcreate_myst_config)r
   r   r   r   r   r   r   r   namedefaultfield r'   N/root/rtd-docs/venv/lib/python3.8/site-packages/myst_parser/sphinx_ext/main.pysetup_sphinx   s4    

  r)   c              
      s   ddl m} ddlm} ddlm} ddlm} |t	} fdd| 
 D }z,|f | j_||dd	 | jj W nB ttfk
r } z |d
|jd  |  j_W 5 d}~X Y nX d jjjkr|jddtjjd dS )zCCreate the myst config object and add it to the sphinx environment.r   )logging)bold)__version__r   c                    s6   i | ].\}}}d |j dg kr| jd|  qS )r   r   r   )r    r!   config).0r$   _r&   r
   r'   r(   
<dictcomp>N   s    z&create_myst_config.<locals>.<dictcomp>z	myst v%s:z %szmyst configuration invalid: %sNZattrs_imagezMThe `attrs_image` extension is deprecated, please use `attrs_inline` instead.Zmyst)typesubtype)Zsphinx.utilr*   Zsphinx.util.consoler+   Zmyst_parserr,   r   r   	getLogger__name__r   r   Zmyst_configinfo	TypeError
ValueErrorerrorargsZenable_extensionswarningr	   Z
DEPRECATEDvalue)r
   r*   r+   r,   r   loggervaluesr9   r'   r0   r(   r#   B   s(    

r#   )F)__doc__typingr   Zdocutilsr   Zsphinx.applicationr   Zmyst_parser.parsers.docutils_r   r   r   r   Zmyst_parser.warnings_r	   boolr)   r#   r'   r'   r'   r(   <module>   s   1