mystx.config
============

.. py:module:: mystx.config

.. autoapi-nested-parse::

   配置管理模块

   该模块负责处理mystx主题的配置加载、应用和交互式功能设置。



Attributes
----------

.. autoapisummary::

   mystx.config.logger


Classes
-------

.. autoapisummary::

   mystx.config.ConfigManager


Functions
---------

.. autoapisummary::

   mystx.config.thebe_setup
   mystx.config.config_inited_handler


Module Contents
---------------

.. py:data:: logger

.. py:class:: ConfigManager

   配置管理器，负责处理主题相关的配置加载和应用。

   该类提供了从TOML文件加载配置、合并自定义与用户配置
   以及应用配置到Sphinx实例的功能。


   .. py:attribute:: app
      :type:  sphinx.application.Sphinx


   .. py:attribute:: config
      :type:  sphinx.config.Config


   .. py:attribute:: logger
      :type:  sphinx.util.logging.SphinxLoggerAdapter
      :value: None



   .. py:method:: __post_init__() -> None

      初始化日志记录器



   .. py:method:: load_custom_config() -> Optional[Dict[str, Any]]

      加载自定义配置文件。

      Returns:
          配置字典，如果文件不存在则返回None



   .. py:method:: apply_config() -> None

      应用加载的配置到Sphinx配置对象。

      主要处理html_theme_options的合并。



   .. py:method:: _merge_html_theme_options(custom_config: Dict[str, Any]) -> None

      合并自定义配置到html_theme_options。



.. py:function:: thebe_setup(app: sphinx.application.Sphinx, config: sphinx.config.Config) -> None

   配置Sphinx文档的Thebe交互式代码块功能。

   Args:
       app: Sphinx应用实例
       config: Sphinx配置对象


.. py:function:: config_inited_handler(app: sphinx.application.Sphinx, config: sphinx.config.Config) -> None

   config-inited 事件处理器

   在 Sphinx 完成配置对象（Config）初始化后立即触发，让你有机会在构建器（Builder）创建之前，读取或修改配置。

   触发时机:
       - 发生在：conf.py 执行完毕，所有配置变量已收集并封装到 Config 对象中。
       - 早于：builder-inited（构建器初始化）事件。
       - 晚于：扩展加载（extensions 列表中的扩展已导入）。
           - 因为 extensions 已经加载完毕，所以在 config-inited 中修改 extensions 列表不会重新加载扩展。
             如果需要动态加载扩展，应使用 app.setup_extension()。

   Args:
       app: Sphinx应用实例
       config: Sphinx配置对象


