"""预览渲染辅助模块 - 只为超级用户预览命令按插件配置提供渲染器实例。 放在独立模块里,避免 test_command 反向依赖尚未完成初始化的插件包 __init__; 渲染逻辑仍然复用 image_render.ImageRenderer,不在此处重复实现。 """ from typing import Optional from .config import Config from .image_render import ImageRenderer # 渲染器实例缓存:按插件配置构建一次后复用(字体只加载一次) _preview_renderer: Optional[ImageRenderer] = None def get_preview_renderer(config: Config) -> ImageRenderer: """ 获取通知卡片渲染器 Args: config: 插件配置对象 Returns: 缓存的 ImageRenderer 实例 """ global _preview_renderer if _preview_renderer is None: _preview_renderer = ImageRenderer( width=config.ImageWidth, font_size=config.ImageFontSize, padding=config.ImagePadding, line_spacing=config.ImageLineSpacing, bg_color=config.ImageBgColor, text_color=config.ImageTextColor, font_paths=config.FontPaths, ) return _preview_renderer