mystx.config#

配置管理模块

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

Attributes#

Classes#

ConfigManager

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

Functions#

thebe_setup(→ None)

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

config_inited_handler(→ None)

config-inited 事件处理器

Module Contents#

mystx.config.logger[源代码]#
class mystx.config.ConfigManager[源代码]#

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

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

app: sphinx.application.Sphinx[源代码]#
config: sphinx.config.Config[源代码]#
logger: sphinx.util.logging.SphinxLoggerAdapter = None[源代码]#
__post_init__() None[源代码]#

初始化日志记录器

load_custom_config() Dict[str, Any] | None[源代码]#

加载自定义配置文件。

Returns:

配置字典,如果文件不存在则返回None

apply_config() None[源代码]#

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

主要处理html_theme_options的合并。

_merge_html_theme_options(custom_config: Dict[str, Any]) None[源代码]#

合并自定义配置到html_theme_options。

mystx.config.thebe_setup(app: sphinx.application.Sphinx, config: sphinx.config.Config) None[源代码]#

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

Args:

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

mystx.config.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配置对象